1.引言
Hadoop2.X
版本和Hadoop1.X
版本有着很大的区别,其中主要的区别有:
Hadoop1.X
主要组成为:HDFS
+MapReduce
,Hadoop2.X
主要组成是:HDFS
+YARN
,其中Yarn
是用来控制资源的,也可以说是一个平台,只要实现了Yarn
接口框架都可以跑在Yarn
上,其中MapReduce
就是在Yarn
上运行Hadoop2.X
中可以配置两个NameNode
,两个NameNode
通过journalNode
数据同步,Hadoop1.X
只能配置一个NameNode
Hadoop2.X
可以通过使用Zookeeper
实现NameNode
的自动切换- 在
Hadoop2.X
中引入了联盟的概念,也就是说多个集群可以组成一个联盟(NameNode
不共用,DataNode
共用)
在学习Hadoop的过程中,一般是搭建一个伪分布环境,在本篇博客中主要介绍一下,如何在Linux操作系统中搭建Hadoop2.6.1
的伪分布,在本篇博客中使用的环境为:
- 操作系统为:
Centos6.7
64位 - Java环境:JDK1.7 (
jdk
的安装路径为:/usr/local/jdk
) - Hadoop版本为:2.6.1
- 使用
SecureCRT&&SecureFX
连接Linux服务器 - 使用
zlr
用户(普通用户)安装Hadoop
的伪分布 - Hadoop的安装路径为:
/home/zlr/hadoop
2.安装Java环境
- 如何安装
Java JDK
环境请参考博客:Linux安装Java环境
3.SSH 免密码登录
因为是伪分布环境,所以ssh
的免密码登录是登录本机(即:ssh localhost
)
- 生成
ssh
私钥和公钥文件
//输入命令,然后一直点确定
ssh-keygen -t rsa
- 将公钥添加到认证用户
//输入localhost意味着本身,这个命令注意两个地方
// 1. 确定连接本身(输入yes)
// 2. 输入本机的密码
ssh-copy-id localhost
- 测试
ssh
免密码是否成功
//如果不需要输入密码,就说明成功了
ssh localhost
4 . 安装配置Hadoop2.6.1 伪分布
4.1 将Hadoop安装包解压
- 执行命令将压缩包解压
//将hadoop文件夹解压
tar -zxvf hadoop-2.6.1.tar.gz
//将hadoop文件改名(为了方便)
mv hadoop-2.6.1 hadoop
4.2 修改Hadoop配置文件
4.2.1 修改etc/hadoop/hadoop-env.sh
配置文件
//操作hadoop-env.sh文件
vim hadoop/etc/hadoop/hadoop-env.sh
//修改jdk的路径,注意去掉前面的#号,#号代表注释
export JAVA_HOME=/usr/local/jdk
4.2.2 修改配置文件 etc/hadoop/yarn-env.sh
配置文件
//操作yarn-env.sh文件
vim hadoop/etc/hadoop/yarn-env.sh
//修改jdk的路径,注意去掉前面的#号,#号代表注释
export JAVA_HOME=/usr/local/jdk
4.2.3 修改etc/hadoop/mapred-env.sh
配置文件
//操作mapred-env.sh文件
vim hadoop/etc/hadoop/mapred-env.sh
//修改jdk的路径,注意去掉前面的#号,#号代表注释
export JAVA_HOME=/usr/local/jdk
4.2.4 修改文件etc/hadoop/core-site.xml
<!--
hadoop.tmp.dir
代表hadoop的secondNameNode目录
value:一般是hadoop的安装目录+tmp,我的是/home/zlr/hadoop/tmp,注意tmp文件夹不要自己创建
fs.default.name
hdfs的访问路径
value:默认填写hdfs://localhost:9000
-->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/zlr/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
4.2.5 修改文件etc/hadoop/hdfs-site.xml
<!--
dfs.namenode.name.dir:
存放NameNode信息的文件夹
value:一般是hadoop的安装目录+hdfs/name,我的是:/home/zlr/hadoop/hdfs/name
dfs.datanode.data.dir:
存放DataNode信息的文件夹
value:一般是hadoop的安装目录+hdfs/data,我的是:/home/zlr/hadoop/hdfs/data
dfs.replication:
代表存放的副文本数
value:默认为3
-->
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/zlr/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/zlr/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
4.2.6 修改文件etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>Yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>Yarn.resourcemanager.address</name>
<value>localhost:18040</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>Yarn.resourcemanager.scheduler.address</name>
<value>localhost:18030</value>
</property>
<property>
<description>The address of the RM web application.</description>
<name>Yarn.resourcemanager.webapp.address</name>
<value>localhost:18088</value>
</property>
<property>
<description>The address of the resource tracker interface.</description>
<name>Yarn.resourcemanager.resource-tracker.address</name>
<value>localhost:8025</value>
</property>
</configuration>
4.2.7 修改文件etc/hadoop/mapred-site.xml
- 在
Hadoop2.X
中是不存在mapred-site.xml
文件的,但是Hadoop2.X
提供了一个模版文件,首先我们将模版文件改名为mapred-site.xml
//将mapred-site.xml.template修改为mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
- 修改
mapred-site.xml
文件内容,让mapreduce
运行在Yarn
平台上
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>Yarn</value>
</property>
</configuration>
4.3 格式化NameNode
- 输入命令格式化NameNode
bin/hadoop namenode -format
- 出现如图所示便格式化成功
4.4 启动Hadoop(查看Hadoop伪分布是否成功)
- 使用命令启动HDFS
//启动hdfs,出现进程NameNode,DataNode,SecondaryNameNode
sbin/start-dfs.sh
- 使用命令启动yarn
//启动yarn,出现进程ResourceManager,NodeManager
sbin/start-yarn.sh
- 输入命令jps查看进程,如果出现以下进程便安装成功