Centos下部署Hadoop2.6.5
一、Hadoop简介
说到Hadoop,就必须先说说大数据,我们知道,大数据包括了以Hadoop和Spark为代表的基础大数据框架,其中又包括了实时数据处理、离线数据处理、数据分析、数据挖掘、机器算法、进行预测分析等技术。
那么Hadoop简单的说就是开源的大数据框架和分布式计算的解决方案(HDFS和MapReduce)
hdfs:
1.数据块:以块为存储单元(屏蔽了文件的概念,抽象),便于备份。
2.NameNode:管理文件系统的命名空间,存放数据元数据。
3.DataNode: 存储并检索数据块,向NameNode更新存储块列表。
优点:
1.适合大文件存储,支持TB、PB级的数据存储
2.可以构建在廉价的机器上,并有一定的容错和恢复机制
3.支持流式数据访问,一次写入,多次读取
缺点:
1.不适合大量小文件存储
2.不适合并发写入,不支持文件随机修改
3.不支持随机读取等低延时的访问方式
在说MapReduce之前,先说说YARN
YARN
YARN是Hadoop2.x之后版本的资源管理器,负责资源的管理和调度,所有的MapReduce程序都需要通过YARN来进行调度。
ResourceManager
- 分配和调度任务
- 启动并监控ApplicationManager
- 监控NodeManager
ApplicationManager
- 为MR类型的程序申请资源,并分配个内部任务
- 负责数据的切分
- 监控任务的执行和容错
NodeManager
- 管理单个节点的资源
- 处理 来自ResourceManager和ApplicationManager和命令
MapReduce 编程模型
输入一个大文件,通过split之后,将其分为多个分片,每个文件分片由单独的机器去处理,这就是Map方法;将各个机器计算的结果进行汇总并得到的最终的结果,这就是Reduce方法。
二、搭建Hadoop集群
1.环境
- 系统:Centos6.5
- 软件版本:Hadoop-2.6.5
集群架构:
master(NameNode):192.168.239.138
slave1(DataNode):192.168.239.139
slave2(DataNode):192.168.239.140ssh:主节点免密连接从节点
- jdk:java-1.8.0
2.Hadoop安装
建立hadoop用户:
groupadd hadoop
useradd -g hadoop hadoop
passwd hadoop
安装jdk:
yum install -y java-1.8*
java -version
编辑/etc/profile,将JAVA_HOME加入环境变量,不然后面启动hadoop会报错
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
保存后退出
source /etc/profile
下载和安装:
去Hadoop官网下载Hadoop-2.6.5,并解压到/usr/local:
tar xvf hadoop-2.6.5.tar.gz -C /usr/local/
修改目录的所有者和所属组:
chown -R hadoop.hadoop hadoop-2.6.5/
ln -s hadoop-2.6.5/ hadoop
接下来将hadoop目录下的bin加入到环境变量中:
export PATH=/usr/local/hadoop/bin:$PATH
source /etc/profile
测试hadoop 命令:
hadoop version