[关闭]
@DFFuture 2017-03-04T07:49:51.000000Z 字数 5433 阅读 9602

Hadoop集群安装配置教程——Hadoop 2.7.3_Ubuntu 16.04

Ubuntu Hadoop


准备

  • 操作系统:Ubuntu 16.04
  • 软件包:hadoop-2.7.3.tar.gz, jdk-7u80-linux-x64.tar.gz
  • 硬件: 3台Dell Precison Tower 7810,1台交换机

集群规划

主机连接交换机,这样主机在同一个局域网下
集群规划如下表1所示

主机名 IP地址 进程
hadoop01 192.168.1.11 ResourceManager, DataNode, NodeManager, WebAppProxyServer
hadoop02 192.168.1.12 NameNode, DataNode, NodeManager,JobHistoryServer
hadoop03 192.168.1.13 SencodaryNameNode, DataNode, NodeManager

网络配置

下面以hadoop01为例配置网络
Alt + Ctrl + T调出终端Terminal
输入以下命令查看主机名是否和标签上的主机名一致

  1. # 查看主机名
  2. hostname

如果不一致,修改主机名,重启

  1. # 修改主机名
  2. sudo vim /etc/hostname
  3. # 重启
  4. reboot

[注] Ubuntu不自带Vim编辑器,需要另外安装(也可以用gedit进行编辑)

  1. # 更新源
  2. sudo apt-get update
  3. # 安装vim
  4. sudo apt-get install -y vim

查看网络配置,结果如下图所示

  1. ifconfig

网络配置
enp0s25代表第一块网卡,为这个网卡配置静态IP
打开并编辑/etc/network/interfaces

  1. sudo vim /etc/network/interfaces

追加以下内容,注意IP地址与上面表1中地址一一对应,再reboot重启是该配置生效

  1. auto enp0s25
  2. # 静态IP
  3. iface enp0s25 inet static
  4. # IP地址
  5. address 192.168.1.11
  6. # 子网掩码
  7. netmask 255.255.255.0
  8. # 网关
  9. gateway 192.168.1.1
  10. # DNS
  11. dns-nameservers 202.120.111.3

打开并编辑/etc/hosts

  1. sudo vim /etc/hosts

删除127.0.1.1那一行,再加入以下内容(和表1的对应关系一致)

  1. 192.168.1.11 hadoop01
  2. 192.168.1.12 hadoop02
  3. 192.168.1.13 hadoop03

重启,hadoop02,hadoop03的网络配置类似,只是主机名、ip地址和hadoop01的不一样

都配置完后,查看是否配置成功
查看IP是否正确

  1. ifconfig

主机之间是否能ping通

  1. ping hadoop01 -c 3
  2. ping hadoop02 -c 3
  3. ping hadoop03 -c 3

下图说明可以ping通hadoop01(ping通其他主机结果类似)
PING通

SSH无密码登陆节点

默认情况下,Ubuntu是没有安装ssh服务端,所以先安装openssh-server

  1. sudo apt-get install -y openssh-server

3台主机都安装openssh-server后,再进行以下步骤
仍以hadoop01为例,hadoop02和hadoop03配置类似
生成ssh公钥

  1. # 如果没有~/.ssh目录,通过下面命令会自动生成该目录
  2. ssh localhost
  3. # 进入.ssh目录
  4. cd ~/.ssh
  5. # 如果之前生成过密钥,先删除以前的密钥
  6. rm ./id_rsa*
  7. # 生成密钥
  8. ssh-keygen -t rsa -P "" #一直按回车就可以了
  9. # 将公钥添加到autorized_keys中
  10. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

将公钥传输到其他节点上(需要输入密码)

  1. scp ~/.ssh/id_rsa.pub hadoop@hadoop02:~
  2. scp ~/.ssh/id_rsa.pub hadoop@hadoop03:~

进入hadoop02和hadoop03的主目录,ls可以看到公钥id_rsa.pub,将公钥添加到authorized_keys中,然后删除公钥

  1. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  2. rm -rf id_rsa.pub

如果都能无密码登陆,说明配置成功(第一次ssh登录需要输入yes

  1. ssh hadoop01
  2. ssh hadoop02
  3. ssh hadoop03

这样通过SSH连接,在一台主机就可以登录所有的主机进行管理

安装JDK和Hadoop

在根目录下创建local文件夹,JAVA和Hadoop等软件将安装在这个目录下

  1. # 创建目录
  2. sudo mkdir /local/
  3. # 修改目录拥有者
  4. sudo chown hadoop:hadoop /local

进入软件包所在目录,将hadoop-2.7.3.tar.gz,jdk-7u80-linux-x64.tar.gz解压并移到/local/目录下

  1. # 解压移动JAVA软件包
  2. tar -zxvf jdk-7u80-linux-x64.tar.gz
  3. sudo mv jdk1.7.0_80 /local/jdk1.7
  4. # 解压移动Hadoop软件包
  5. tar -zxvf hadoop-2.7.3.tar.gz
  6. sudo mv hadoop-2.7.3 /local/hadoop

软件在hadoop01上安装好后,可以通过scp软件复制到其他主机上,这里先复制Java,等配置完Hadoop后,再复制Hadoop

  1. scp -r /local/jdk1.7 hadoop@hadoop02:/local/
  2. scp -r /local/jdk1.7 hadoop@hadoop03:/local/

环境变量配置

打开并编辑配置文件~/.bashrc(不是/etc/profile)

  1. # 编辑bashrc
  2. vim ~/.bashrc

如下图所示,输入以下变量

  1. export JAVA_HOME=/local/jdk1.7
  2. export HADOOP_HOME=/local/hadoop
  3. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

环境变量
保存后执行source ~/.bashrc使配置生效

查看环境变量配置是否成功,如下图所示,说明配置成功

  1. # 查看JAVA版本
  2. java -version
  3. # 查看Hadoop版本
  4. hadoop version

JAVA/Hadoop版本

配置集群/分布式环境

集群/分布式模式需要修改 /local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明: slaves、core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml

配置DataNode主机(slaves文件)

slaves文件中记录的主机都会作为DataNode使用,根据表1所示,3台主机都有DataNode,所以将3台主机的主机名都写入该文件中,配置如下

  1. hadoop01
  2. hadoop02
  3. hadoop03

基础配置(core-site.xml)

配置如下:

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://hadoop02:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/local/hadoop/tmp</value>
  9. </property>
  10. <property>
  11. <name>fs.trash.interval</name>
  12. <value>10080</value>
  13. </property>
  14. </configuration>

HDFS配置(hdfs-site.xml)

配置如下:

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>3</value>
  5. </property>
  6. <property>
  7. <name>dfs.permissions.enabled</name>
  8. <value>false</value>
  9. </property>
  10. <property>
  11. <name>dfs.namenode.http-address</name>
  12. <value>hadoop02:50070</value>
  13. </property>
  14. <property>
  15. <name>dfs.namenode.secondary.http-address</name>
  16. <value>hadoop03:50090</value>
  17. </property>
  18. </configuration>

MapReduce配置(mapred-site.xml)

配置如下:

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>hadoop02:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>hadoop02:19888</value>
  13. </property>
  14. <property>
  15. <name>mapreduce.job.ubertask.enable</name>
  16. <value>true</value>
  17. </property>
  18. </configuration>

Yarn配置(yarn-site.xml)

配置如下:

  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. <property>
  7. <name>yarn.resourcemanager.hostname</name>
  8. <value>hadoop01</value>
  9. </property>
  10. <property>
  11. <name>yarn.web-proxy.address</name>
  12. <value>hadoop01:8888</value>
  13. </property>
  14. <property>
  15. <name>yarn.log-aggregation-enable</name>
  16. <value>true</value>
  17. </property>
  18. <property>
  19. <name>yarn.log-aggregation.retain-seconds</name>
  20. <value>604800</value>
  21. </property>
  22. </configuration>

格式化NameNode

先格式化NameNode

  1. hadoop namenode -format

再将Hadoop复制到其他主机中

  1. scp -r /local/hadoop hadoop@hadoop02:/local/
  2. scp -r /local/hadoop hadoop@hadoop03:/local/

启动服务

进入hadoop02启动dfs和jobhistory

  1. start-dfs.sh
  2. mr-jobhistory-daemon.sh start historyserver

进入hadoop01启动yarn和防护进程

  1. start-yarn.sh
  2. yarn-daemon.sh start proxyserver

进入各个主机通过以下命令查看进程

  1. jps

各节点进程如下图所示,说明hadoop集群启动成功
hadoop01:
hadoop01进程
hadoop02:
hadoop02进程
hadoop03:
hadoop03进程

通过浏览器访问 192.168.1.11:8088 和 182.168.1.12:50070 可以查看Yarn和HDFS相关信息
yarn界面:
yarn browser
hdfs界面:
hdfs browser

测试Hadoop集群

通过执行一个简单的分布式实例来测试Hadoop集群

  1. ## 上传profile文件
  2. hdfs dfs -put /etc/profile /profile
  3. ## 执行wordcount样例
  4. hadoop jar /local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /profile /out

访问http://192.168.1.11:8088/cluster,可以看到多了一个应用,如下图所示
Yarn Applications

访问http://192.168.1.12:50070/explorer.html#/查看Browse Directory,如下图所示
Browse Directory

  1. ## 查看WordCount的统计结果
  2. hdfs dfs -cat /out/part-r-00000

如果实例执行成功,说明集群配置正确

关闭Hadoop集群

在hadoop01上关闭Yarn相关进程

  1. stop-yarn.sh

在hadoop02上关闭HDFS相关进程

  1. stop-dfs.sh
  2. mr-jobhistory-daemon.sh stop historyserver

参考

[1] Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS
[2] Hadoop 集群安装

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注