Hadoop 环境搭建

说明

搭建的是伪分布式的 Hadoop 开发环境

安装 JDK

搭建之前请确保已经安装了 Java8 的环境

参考 Java8 的安装

安装 ssh

安装命令

1
yum install ssh

生成 ssh 的 key

1
2
3
4
5
6
7
8
9
10
11
12
13
# 生成 ssh 的 key

ssh-keygen -t rsa

用 ls -la 命令找到隐藏文件 .ssh 并 cd 进去

# 备份 id_rsa.pub

cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

# 在 .ssh 目录下查看 authorized_keys

cat authorized_keys

验证

1
2
3
4
5
6
7
# 免密码登陆

ssh localhost

# 退出

exit

Hadoop 环境配置

下载、上传、解压 Hadoop 安装包

Hadoop 安装包 hadoop-2.6.0-cdh5.7.0.tar.gz 下载地址

用 Xftp 把下载好的安装包上传到 /abs/software 目录下

解压到指定目录

1
tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C /abs/app/

配置 Hadoop 环境变量

配置系统环境变量

1
2
3
4
vi ~/.bash_profile

export HADOOP_HOME=/abs/app/hadoop-2.6.0-cdh5.7.0
export PATH=$HADOOP_HOME/bin:$PATH

让配置生效

1
source  ~/.bash_profile

在命令行中输入 hadoop 验证。

配置 HDFS

修改配置文件

/abs/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop 下修改配置文件

hadoop-env.sh

1
2
3
#注释掉 export JAVA_HOME=${JAVA_HOME} 并添加如下:

export JAVA_HOME=/abs/app/jdk1.8.0_161

core-site.xml

1
2
3
4
5
6
7
8
9
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop:8020</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/abs/app/tmp</value>
</property>

hdfs-site.xml

1
2
3
4
<property>
<name>dfs.replication</name>
<value>1</value>
</property>

slaves

1
2
3
4
vi slaves

# 把 localhost 改为你设定的主机名
hadoop

启动 HDFS

格式化 hdfs (PS: 仅第一次执行)

/abs/app/hadoop-2.6.0-cdh5.7.0/bin 目录下执行

1
./hdfs namenode -format

/abs/app/hadoop-2.6.0-cdh5.7.0/sbin 目录下执行以下脚本启动 hdfs

1
./start-dfs.sh

验证是否启动 HDFS

方法一:

1
2
3
4
5
6
7
jps

# 出现以下三个进程则为正常启动

NameNode
DataNode
SecondaryNameNode

方法二:

CentOS7 关闭防火墙,出于安全和方便的考虑,这里采用暂时关闭防火墙,实际应用时应设定相应的防火墙规则。

外部物理机应该在 hosts 文件中加入一条 “虚拟机主机名   ip 地址”的解析。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#查看防火墙的状态
systemctl status firewalld.service

# 开启防火墙
systemctl start firewalld.service

# 关闭防火墙
systemctl stop firewalld.service

#开机启用防火墙
systemctl enable firewalld.service

#开机禁用防火墙
systemctl disable firewalld.service

通过在物理机的浏览器地址栏输入以下访问 WebUI

1
http://虚拟机的主机名:50070

停止 HDFS

sbin 目录下执行以下脚本停止 hdfs

1
./stop-dfs.sh

配置 YARN

修改配置文件

/abs/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop 目录下拷贝 mapred-site.xml

1
cp mapred-site.xml.template mapred-site.xml

修改 mapred-site.xml

1
2
3
4
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

修改 yarn-site.xml

1
2
3
4
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

启动 YARN

/abs/app/hadoop-2.6.0-cdh5.7.0/sbin 目录执行以下脚本启动 yarn

1
./start-yarn.sh

验证是否启动 YARN

方法一:

1
2
3
4
5
6
jps

# 出现以下两个进程则为正常启动

ResourceManager
NodeManager

方法二:

CentOS7 关闭防火墙,出于安全和方便的考虑,这里采用暂时关闭防火墙,实际应用时应设定相应的防火墙规则。

外部物理机应该在 hosts 文件中加入一条 “虚拟机主机名   ip 地址”的解析。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#查看防火墙的状态
systemctl status firewalld.service

# 开启防火墙
systemctl start firewalld.service

# 关闭防火墙
systemctl stop firewalld.service

#开机启用防火墙
systemctl enable firewalld.service

#开机禁用防火墙
systemctl disable firewalld.service

通过在物理机的浏览器地址栏输入以下访问 WebUI

1
http://虚拟机的主机名:8088

停止 YARN

sbin 目录下执行以下脚本停止 yarn

1
./stop-yarn.sh

测试

测试 HDFS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看根目录下有什么
hadoop fs -ls /

# 创建目录
hadoop fs -mkdir /data

# 传入一个文件
hadoop fs -put anaconda-ks.cfg /data/

# 验证是否传输成功
hadoop fs -ls /data

# 查看传输内容
hadoop fs -text /data/anaconda-ks.cfg

测试 YARN

1
2
3
4
# 在 /abs/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce 目录中输入以下命令
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3

# 得出 Estimated value of Pi is 4.00000000000000000000

以上完成了 Hadoop 开发环境的搭建

------ 本文结束------
如果对您有帮助的话请我喝瓶水吧!