说在前面的话
在安装Hadoop集群的时候,需要先配置好JDK环境,配置很简单,教程参见:Linux安装JDK环境
1、环境准备
事先准备好三台虚拟机(当然一台也无妨)主机名和ip分别为:
lantingshuxu –> ip:192.168.77.128【此主机作为主节点】
mini1 –> ip:192.168.77.129
mini2 –> ip:192.168.77.130
【注意,这三台机器的环境要保证一样(JDK安装目录、用户名等环境必须一样)】
可以通过一下的命令去修改主机名【主机名和下面的hosts配置的域名必须要一致!】1
2
3
4
5
6vi /etc/sysconfig/network
#配置如下
NETWORKING=yes
# 需要修改的主机名,重启后生效
HOSTNAME=lantingshuxu
修改了主机名后,修改本地host1
2
3
4
5
6vim /etc/hosts
#配置添加内容如下
192.168.77.128 lantingshuxu
192.168.77.129 mini1
192.168.77.130 mini2
关闭防火墙 or 为防火墙添加白名单1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
#--------------------
出于安全考虑,我们也可以只添加防火墙白名单,需要添加的端口为9000, 50070, 50010, 8088, 8032
【补充,除了上面的端口外,好像还会有其他的端口,在跑MapReduce的时候如果是关闭了防火墙可以正常运行,但是白名单却不能正常运行】
# 添加端口白名单的命令如下:
/sbin/iptables -I(大写的i) INPUT -p tcp --dport 端口号 -j ACCEPT
/etc/rc.d/init.d/iptables save #将该设置添加到防火墙的规则中
注意本地时间,需要同步各个主机的本地时间,如果不一致,运行MapReduce时会出异常1
2#设置本地时间
date -s "2010-10-10 10:10:00"
2、下载Hadoop并解压
下载Hadoop
64位机器下载链接: https://pan.baidu.com/s/10ESl1QlK2rHscI-MZXv16w 密码: rkr4
32位机器下载链接:链接: https://pan.baidu.com/s/1pDECG9l_D-DbooMzhLrw4A 密码: ejpw。
下载到本地后,我们可以通过scp或者sftp工具(scp可以使用 git的gitbash命令工具,sftp可以使用 filezilla),将该tar.gz包上传到Linux上(假设我们上传到了/home/lanting/hadoop/下)然后解压。1
2
3
4
5
6
7#scp上传命令
scp 本地文件 远程用户名@远程ip:/远程文件路径
#例如:
scp cenos-6.5-hadoop-2.6.4.tar.gz root@192.168.77.128:/home/lanting/hadoop/cenos-6.5-hadoop-2.6.4.tar.gz
# 解压命令
tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz
3、配置Hadoop
假设经过前面几步,我们已经将 hadoop-2.6.4.tar.gz 解压在了 /home/lanting/hadoop/hadoop-2.6.4 下,我们使用cd命令cd /home/lanting/hadoop/hadoop-2.6.4
,进入此文件夹下,然后接着向下的步骤走。
然后再进入 hadoop-2.6.4 下的 etc/hadoop 下 cd etc/hadoop
有几个配置文件需要修改,如下:
1)修改 hadoop-env.sh1
2
3
4vi hadoop-env.sh
#第27行 这里修改为自己的jdk路径
export JAVA_HOME=/home/lanting/java/jdk1.8.0_172
2)修改 core-site.xml,在configuration标签中添加下面的配置1
2
3
4
5
6
7
8
9
10
11
12
13
14<configuration>
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<!-- lantingshuxu为主节点主机名 -->
<value>hdfs://lantingshuxu:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/lanting/hadoop-2.4.1/tmp</value>
</property>
</configuration>
3)修改hdfs-site.xml(可选,不改也可以)在configuration标签中添加下面的配置1
2
3
4
5
6
7<configuration>
<!-- 指定HDFS副本的数量,默认3 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
4)修改mapred-site.xml,在configuration标签中添加下面的配置1
2
3
4
5
6
7
8
9
10
11
12
13#拷贝一份模板,并在模板上进行修改
cp mapred-site.xml.template mapred-site.xml
#编辑模板
vi mapred-site.xml
#在configuration标签内添加如下内容
<configuration>
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5)修改yarn-site.xml,在configuration标签中添加下面的配置1
2
3
4
5
6
7
8
9
10
11
12
13
14<configuration>
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<!-- lantingshuxu为主节点主机名 -->
<value>lantingshuxu</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<configuration>
4、将Hadoop配置到环境变量
1 | vim /etc/proflie |
5、格式化namenode
1 | hdfs namenode -format |
6、将配置复制给其他节点(如果只有一台,忽略此步骤)
以上的操作均在主节点主机 lantingshuxu 上操作,由于 mini1 和 mini2 也需要做相同的配置,并且 mini1 和 mini2 的环境和 lantingshuxu 相同,因此,我们只需要将配置好的配置文件直接复制过去即可。1
2
3
4
5
6
7
8
9
10
11
12
13
14# 复制 hosts 到另外两台机器
scp /etc/hosts root@mini1:/etc/hosts
scp /etc/hosts root@mini2:/etc/hosts
# 复制profile(环境变量)到另外两台机器
scp /etc/profile root@mini1:/etc/profile
scp /etc/profile root@mini2:/etc/profile
#分别另外两台机器mini1 , mini2 上执行下面命令,使环境变量生效
source /etc/profile
# 复制hadoop到另外两台机器
scp -r /home/lanting/hadoop lanting@mini1:/home/lanting/hadoop
scp -r /home/lanting/hadoop lanting@mini2:/home/lanting/hadoop
7、配置“一键启动”
由于hadoop会有一个namenode和多个datanode,如果我们一个个去启动hadoop是非常麻烦的,我们可以在我的主节点上配置到另外几台的免密登录,直接通过脚本即可一次性启动,免密登录配置很简单,我的博客也有写详情见:Linux SSH免密登录配置。
免密登录配置成功后,我们可以在hadoop安装目录下的etc/hadoop下的slaves中添加我们需要启动的机器1
2
3
4
5
6
7
8
9# 进入hadoop配置文件目录
cd /home/lanting/hadoop/hadoop-2.6.4/etc/hadoop
#编辑“一键启动”主机列表
vi slaves
#添加主机内容
mini1
mini2
8、启动
配置好后,我们就可以启动服务了。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37# 启动dfs服务和yarn服务
start-dfs.sh
start-yarn.sh
#停止服务
stop-dfs.sh
stop-yarn.sh
#查看启动情况
jps
输出如下:
3009 Jps
2758 ResourceManager
2617 SecondaryNameNode
2442 NameNode
# 网页后台管理
http://主节点ip:50070 (HDFS管理界面)
http://主节点ip:8088 (MR管理界面)
------------
也可以通过下面的方式一个个服务器上去启动
#先启动HDFS
hadoop-daemon.sh start namenode(或者datanode)
#关闭hdfs
hadoop-daemon.sh stop namenode(或者datanode)
#再启动YARN
sbin/start-yarn.sh
9、进入网页查看
启动成功后,我们可以通过浏览器 http://主节点ip:50070 (HDFS管理界面) 去查看我们的hdfs。