Hadoop之基础篇

一、初识Hadoop
1.Hadoop是什么?
   开源的Apache+分布式存储+分布式计算平台
2.组成
   包括两个核心组成:
    HDFS:分布式文件系统,存储海量的数据
    MapReduce:并行处理框架,实现任务分解和调度
3.Hadoop可以用来做什么?
搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。
4.hadoop的优势:高性能,低成本,成熟的生态圈
已经成为业界大数据平台的首选
5.生态系统和版本
常用的软件:
HDFS,MapReduce,HIVE(小蜜蜂,降低了人们使用Hadoop的门槛)
HBASE(存储结构化数据的分布式数据库)与传统的关系型数据库相比:Hbase放弃事务特性,追求更高的扩展。
 与HDFS相比:Hbase提供数据的随机读写和实时访问,实现对表数据的读写功能。
zookeeper:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
版本:Version1.X:稳定
 Version2.X:不稳定
二、Hadoop安装
1.安装步骤
step1准备Linux环境
step2安装JDK   参考:http://jingyan.baidu.com/article/91f5db1bdb7ee41c7e05e373.html
step3配置Hadoop
安装1.2版本的Hadoop 
修改配置文件有四个:
path:hadoop-1.2.1/conf
1、hadoop-env.sh文件中的java_home要配置成jdk目录,不能是jre;
export JAVA_HOME=/mnt/software/jdk1.7.0_07
2、core-site.xml文件
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop</value>
</property>


<property>
<name>dfs.name.dir</name>
<value>/hadoop/name</value>
</property>


<property>
<name>fs.default.name</name>
<value>hdfs://iZ234znod84Z:9000</value>
</property>
</configuration>
3、hdfs-site.xml文件
<configuration>


<property>
<name>dfs.data.dir</name>
<value>/hadoop/data</value>
</property>


</configuration>
4、mapred-site.xml文件
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>iZ234znod84Z:9001</value>
</property>


</configuration>
格式化文件系统:
#hadoop namenode -format
启动
#start-all.sh
查看Hadoop下有哪些进程,是否正常运行:
#jps
查看Hadoop下有哪些文件:
#hadoop fs -ls /
三、基本概念
HDFS:Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
块:HDFS的文件被分成块进行存储
   HDFS块的默认大小是64MB
   块是文件存储处理的逻辑单元
NameNode是管理节点,存放文件元数据
①文件与数据块的映射表
②数据块与数据节点的映射表
DateNode是HDFS的工作节点,存放数据块的
每个数据块有3个副本,分布在两个机架内的两个节点
DateNode定期向NameNode发送心跳检测


HDFS读取文件的流程
①客户端向NameNode文件读取请求
②NameNode返回数据,告知客户端从那个Blocks(块)中获取数据
③读取Blocks

HDFS写入文件的流程
①文件拆分成块
②客户端向NameNode发起请求,返回DateNodes
③写入Blocks
④流水线复制
⑤更新数据
HDFS特点
①数据冗余,硬件容错(所谓容错是指在故障存在的情况下计算机系统不失效,仍然能够正常工作的特性)
②流式的数据访问
③存储大文件
适用性和局限性:
适合数据批量读写,吞吐量高;
不适合交互式应用,低延迟很难满足
适合一次写入多次读取,顺序读写
不支持多用户并发写相同文件
【注】对“流式的数据访问”的理解:就是处理的数据是过来一点就存储一点,而不是全部收到数据以后再处理,这样会导致延迟很大,消耗大量内存。

MapReduce:框架
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。


定义:分而治之,一个大的任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值