您的位置:首页 > 运维架构 > Linux

Centos 6.5搭建Hadoop-2.7.3分布式集群

2017-09-05 07:47 405 查看
9月,按照计划开始深入大数据,今天抽时间把Centos 6.5搭建Hadoop-2.7.3分布式集群的过程做个记录,主要分为如下几步:

0. 准备阶段
1. 安装jdk1.8.0_111
2. 安装配置hadoop-2.7.3
3. 格式化NameNode
4. 启动Hadoop
5. 查看Hadoop运行情况
6. 通过example测试Hadoop分布式集群功能是否正常

开始前,请准备好jdk1.8.0_111.tar.gz以及hadoop-2.7.3.tar.gz压缩安装包。

0. 准备阶段

0.1 准备Linux环境

0.1.0 

点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.8.0 子网掩码:255.255.255.0 -> apply -> ok

回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.8.100 子网掩码:255.255.255.0 -> 点击确定
在虚拟软件上 --My Computer -> 选中虚拟机 -> 右键 -> settings -> network adapter -> host only -> ok
0.1.1 修改主机名
vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=master
 
0.1.2 修改IP

两种方式:

第一种:通过Linux图形界面进行修改
进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.8.118 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply

第二种:修改配置文件方式

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:3C:BF:E7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
IPADDR=192.168.8.118
NETMASK=255.255.255.0
GATEWAY=192.168.8.1
DNS1=192.168.8.1
DNS2=114.114.114.114

0.1.3 修改主机名和IP的映射关系

vim /etc/hosts

192.168.8.118 master

0.1.4 关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off

0.1.5 重启Linux
reboot


0.2 创建用户组和用户

[root@master~]$ useradd hadoop & echo hadoop | passwd --stdin hadoop


0.3 设置新创建的用户为sudo权限用户

[root@master~]$ echo "hadoopALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers


0.4 切换用户角色

[root@master~]$ su hadoop


0.5 配置ssh免登陆

#生成ssh免登陆密钥
#进入到我的home目录
cd ~/.ssh

ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)将公钥拷贝到要免登陆的机器上
ssh-copy-id localhost


博主习惯在linux系统的/usr/local/share/applications/目录下安装软件。接下来,默认各位已经把jdk和hadoop安装包移动到了/usr/local/share/applications目录下,开始安装:

1. 安装jdk1.8.0_111

[hadoop@master applications]$ tar -zxvf jdk1.8.0_111.tar.gz
[hadoop@master applications]$ vim ~/.bash_profile


按I键进入编辑状态,做如下编辑:

JAVA_HOME=/usr/local/share/applications/jdk1.8.0_111
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME
export CLASSPATH
export PATH


编辑完成,Shift + : + wq + Enter键保存退出。通过如下命令使修改立即生效:

[hadoop@master applications]$ source ~/.bash_profile


验证jdk是否安装配置完成:

[hadoop@master applications]$ java -version
[hadoop@master applications]$ javac -version


2. 安装配置hadoop-2.7.3

2.1 安装hadoop-2.7.3

新建一个目录hadoop以及hadoop需要用到的数据目录tmp,解压hadoop-2.7.3.tar.gz压缩包,并把解压好的hadoop-2.7.3文件夹移动到新建的hadoop目录下:

[hadoop@master applications]$ mkdir hadoop
[hadoop@master applications]$ mkdir hadoop/tmp
[hadoop@master applications]$ tar -zxvf hadoop-2.7.3.tar.gz
[hadoop@master applications]$ mv hadoop hadoop-2.7.3 /hadoop


配置hadoop环境变量:

[hadoop@master applications]$ vim ~/.bash_profile


做如下编辑:

HADOOP_HOME=/usr/local/share/applications/hadoop/hadoop-2.7.3
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

export HADOOP_HOME
export PATH


同理,编辑完成,Shift + : + wq + Enter键保存退出。通过如下命令使修改立即生效:

[hadoop@master applications]$ source ~/.bash_profile

2.2 配置hadoop-2.7.3

hadoop2.x的配置文件所在目录:$HADOOP_HOME/etc/hadoop

总共需要配置7个文件。首先进入到$HADOOP_HOME/etc/hadoop目录下:(我们当前在/usr/local/share/applications目录下)

[hadoop@master applications]$ cd /hadoop/hadoop-2.7.3/etc/hadoop


2.2.1 配置hadoop-env.sh

把文件中的 export JAVA_HOME=${JAVA_HOME} 替换掉:

在Terminal终端执行 vim hadoop-env.sh 命令编辑文件:

export JAVA_HOME=/usr/local/share/applications/jdk1.8.0_111

2.2.2 配置yarn-env.sh

把文件中的 export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 替换掉:

在Terminal终端执行 vim yarn-env.sh 命令编辑文件:

export JAVA_HOME=/usr/local/share/applications/jdk1.8.0_111/


2.2.3 配置core-site.xml

在Terminal终端执行 vim core-site.xml 命令编辑文件:

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/share/applications/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.jangz.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.jangz.groups</name>
<value>*</value>
</property>
</configuration>


2.2.4 配置hdfs-site.xml

在Terminal终端执行 vim hdfs-site.xml 命令编辑文件:

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
<description>view HDFS status by web page</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/share/applications/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>/usr/local/share/applications/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>Every block has 2 backup</description>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>


2.2.5 配置mapred-site.xml

首先通过如下命令复制一份mapred-site.xml文件:

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

在mapred-site.xml文件中做如下配置:

在Terminal终端执行 vim mapred-site.xml 命令编辑文件:

<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>


2.2.6 配置yarn-site.xml

在Terminal终端执行 vim yarn-site.xml 命令编辑文件:

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18041</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>18192</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>



2.2.7 配置slaves文件

把所有的slave节点主机名加入进入即可,比如说我有三个slave节点,如下:

[hadoop@master hadoop]$ cat slaves
slave1
slave2
slave3


需要做如下配置:

vim slaves

slave #写上你自己的节点主机名即可,前提是在/etc/hosts文件中已经配置了IP和主机名的映射关系


比如说我的/etc/hosts文件中有如下内容:

[hadoop@master hadoop]$ cat /etc/hosts
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.211.55.100 master
10.211.55.101 slave1
10.211.55.102 slave2
10.211.55.103 slave3
10.211.55.104 slave4


2.2.8 复制hadoop文件到所有的slave从节点

我们需要复制的内容是完整的hadoop目录,不只是hadoop-2.7.3目录

[hadoop@master appliciations]$ scp -r hadoop slave:/usr/local/share/applications/


3. 格式化NameNode
在Terminal终端执行如下命令:

[hadoop@master applications]$ hdfs namenode -format

格式化期间,在终端打印出来的信息没有报错就表示格式化成功。

4. 启动Hadoop

因为我们之前已经配置过环境变量,直接在任意位置都可以执行hadoop命令了。

两种方式启动Hadoop。

方式一:(强烈推荐)

[hadoop@master applications]$ start-dfs.sh
[hadoop@master applications]$ start-yarn.sh

方式二:(不推荐)

[hadoop@master applications]$ start-all.sh

5. 查看Hadoop运行情况

5.1 查看进程运行情况

[hadoop@master applications]$ jps
17170 Jps
2003 NameNode
2597 ResourceManager
2255 SecondaryNameNode

如果可以看到NameNode、ResourceManager、SecondaryNameNode三个进程,就表示进程启动成功。



5.2 WEB UI查看集群是否成功启动

在 HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入输入 http://master:50070/,检查namenode和datanode是否正常。UI页面如下图所示。 


在 HadoopMaster 上启动 Firefox 浏览器,在浏览器地址栏中输入输入 http://master:18088/,检查Yarn 是否正常,页面如下图所示。 





6. 通过example测试Hadoop分布式集群功能是否正常

[hadoop@master applications]$ cd /hadoop/hadoop-2.7.3/share/hadoop/mapreduce
[hadoop@master mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.3.jar pi 10 10


会看到如下结果:



得出最终的结果如下:



以上3个验证步骤都没有问题,说明集群正常启动。

好了,Centos 6.5搭建Hadoop-2.7.3分布式集群就完成了。博主设计,仅供参考!



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息