hadoop集群搭建
系统及软件版本
- ubuntu server 16.10
- jdk 1.8.0_111
- hadoop 2.7.3
集群配置
IP及域名分配
主机名 | ip |
---|---|
master | 192.168.2.100 |
slave1 | 192.168.2.101 |
slave2 | 192.168.2.102 |
集群搭建在VM虚拟机上,各虚拟机采用nat方式连接,子网ip:192.168.2.0
,主机名配置在各虚拟机host文件中。(提示:一台机器配置好后,复制三份即可)
使用虚拟机的时候,注意要将虚拟机改为静态ip,避免重启后ip改变,导致host配置失效。
用户
单独建立hadoop用户,用于运行hadoop进程
软件安装
jdk 和 Hadoop安装
jdk安装路径:/usr/bin/java/jdk1.8.0_111
Hadoop安装路径:/home/hadoop/hadoop/hadoop-2.7.3
(hadoop用户的主目录即可)
在/etc/profile
文件中追加以下代码:
1
2
3
4export JAVA_HOME=/usr/bin/java/jdk1.8.0_111
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/home/hadoop/hadoop/hadoop-2.7.3
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin
Hadoop配置
Hadoop的配置文件都在$HADOOP_HOME/etc/hadoop
目录下,以下操作均在该目录下执行。
hadoop-env.sh
找到该文件里的JAVA_HOME配置项,并指定jdk的绝对路径
(必须是绝对路径):
1
export JAVA_HOME=/usr/bin/java/jdk1.8.0_111
core-site.xml
1
2
3
4
5
6
7
8
9
10<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
hdfs-site.xml
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<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50070</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file:/home/hadoop/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
mapred-site.xml
该文件在原始压缩文件里没有,可以通过mv mapred-site.xml.template mapred-site.xml
创建。
1
2
3
4
5
6
7
8
9
10
11
12
13
14<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-service</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-service.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
masters
该文件用于配置主节点信息,每行配置一个主机名称。该文件在原始压缩文件里没有,需要新建一个。
1
slave1
slaves
该文件用于配置从节点信息,每行配置一个主机名称。
1
2slave1
slave2
以上配置结束后,就可以将虚拟机复制两份,并将ip,分别指定为
192.168.2.101
和192.168.2.102
。
ssh配置
生成ssh密钥,执行以下命令,一路回车即可。
1
ssh-keygen -t rsa
将公钥拷贝到其它机器上,实现免密码登录:
1
2
3ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
这样会在每台机器的hadoop用户主目录下的.ssh目录下生成一个authorized_keys文件,该文件就记录了刚才生成的公钥内容。
启动
使用hadoop用户登录。
第一次启动需要格式化,在$HADOOP_HOME
目录下执行:
1
./bin/hdfs namenode -format
启动hdfs:
1
./sbin/start-dfs.sh
启动hdfs命令执行结果显示如下:
1
2
3
4
5
6Starting namenodes on [master]
master: starting namenode, logging to /home/hadoop/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-namenode-ubuntu.out
slave1: starting datanode, logging to /home/hadoop/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-datanode-ubuntu.out
slave2: starting datanode, logging to /home/hadoop/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-datanode-ubuntu.out
Starting secondary namenodes [slave1]
slave1: starting secondarynamenode, logging to /home/hadoop/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-secondarynamenode-ubuntu.out
启动yarn:
1
./sbin/start-yarn.sh
启动yarn命令执行结果显示如下:
1
2
3
4starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop/hadoop-2.7.3/logs/yarn-hadoop-resourcemanager-ubuntu.out
slave1: starting nodemanager, logging to /home/hadoop/hadoop/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-ubuntu.out
slave2: starting nodemanager, logging to /home/hadoop/hadoop/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-ubuntu.out
使用jps
命令查看进程是否启动,显示以下内容表示启动成功:
1
2
31257 NameNode
1530 ResourceManager
1787 Jps
通过浏览器查看hdfs:192.168.2.100:50070
通过浏览器查看yarn:192.168.2.100:8088
结束。