Hadoop2.7.3在CentOS 6.5中的集群搭建

来源:互联网 发布:威客网络兼职可靠吗 编辑:程序博客网 时间:2024/06/06 02:20

我这边给出我的集群环境是由一台主节点cetiti12和两台从节点cetiti13,cetiti14组成:

192.168.10.12 cetiti12

192.168.10.13 cetiti13

192.168.10.14 cetiti14

申明:我搭建的这个集群是在普通用户Hadoop,部分操作都是在超级用户root上。

一、虚拟机的安装

2) 修改IP地址并设置为静态IP,修改机器名分别为cetiti12,cetiti13,cetiti14

3) 增加IP与主机映射:

vi /etc/hosts

增加以下内容:

192.168.10.12 cetiti12(对应配置文件中的主节点名称)

192.168.10.13 cetiti13

192.168.10.14 cetiti14

注意:注释掉所有节点上/etc/hosts中的 127.0.0.1 和 ::1 两行

4)在完成以上步骤后reboot重启四台虚拟机:

三、集群ssh免密码登录

在cetti12中输入:ssh cetiti13、ssh cetiti14是否需要密码,如果不需要,则ssh免密码配置成功,另两台同理。

四、添加hadoop用户,赋予sudo权限,修改visudo,将%wheel ALL=(ALL) NOPASSWD: ALL改为 hadoop ALL=(ALL) NOPASSWD: ALL
五、jdk安装

六、Hadoop2.7.3的解压安装

a) 我们从官网下载Hadoop-2.7.3

版本的压缩包

b) 在cetiti12节点中,解压Hadoop压缩包到/home/hadoop/中:

tar –xzvf hadoop-2.7.3.tar.gz

七、集群环境Hadoop的配置

在cetiti中,进入到Hadoop的配置目录:

cd /home/hadoop/hadoop-2.7.3/etc/hadoop

a) slaves的配置:

vi slaves

删除localhost,增加三个从节点:

cetiti13

cetiti14

b) core-site.xml的配置:

在此之前,需要在Hadoop目录下创建/home/hadoop/hadoop-tmp:

mkdir -p /home/hadoop/hadoop-tmp

在/home/hadoop/hadoop-2.7.3/etc/hadoop下:

cat core-site.xml的配置:

<property><name>fs.defaultFS</name><value>hdfs://cetiti12:9000</value></property><property>    <name>io.file.buffer.size</name>    <value>131072</value></property><property>    <name>hadoop.tmp.dir</name>    <value>file:/home/hadoop/hadoop-tmp</value>    <description>Abase for other temporary   directories.</description></property><property>    <name>hadoop.proxyuser.root.hosts</name>    <value>*</value></property><property>    <name>hadoop.proxyuser.root.groups</name>    <value>*</value></property>

c) cat hdfs-site.xml的配置:

 <property>    <name>dfs.replication</name>    <value>3</value> </property> <property>    <name>dfs.namenode.name.dir</name>    <value>file:///home/hadoop/dfs/name</value></property><property>    <name>dfs.datanode.data.dir</name>    <value>file:///home/hadoop/dfs/data</value></property><property>    <name>dfs.namenode.secondary.http-address</name>    <value>cetiti12:9001</value></property><property>    <name>dfs.webhdfs.enabled</name>    <value>true</value></property><property>    <name>dfs.permissions</name>    <value>false</value></property>

e) yarn-site.xml的配置:

<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>cetiti12:8032</value></property><property>    <name>yarn.resourcemanager.scheduler.address</name>    <value>cetiti12:8030</value></property><property>    <name>yarn.resourcemanager.resource-tracker.address</name>    <value>cetiti12:8035</value></property><property>    <name>yarn.resourcemanager.admin.address</name>    <value>cetiti12:8033</value></property><property>    <name>yarn.resourcemanager.webapp.address</name>    <value>cetiti12:8088</value></property>

f)将hadoop-env.sh文件的;”>改成实际路径:echo $JAVA_HOME的结果

export JAVA_HOME=/usr/Java/jdk1.8.0_121

将yarn-env.sh文件的;”>改成实际路径:echo $JAVA_HOME的结果–/usr/java/jdk1.8.0_121

export JAVA_HOME=/usr/java/jdk1.8.0_121

g) 配置好cetiti12中的Hadoop后,将Hadoop复制到各个节点对应位置上:

scp –r /home/hadoop/hadoop-2.7.3 cetiti13:/home/hadoop/

scp –r /home/hadoop/hadoop-2.7.3 cetiti14:/home/hadoop/

八、启动hadoop(只需要启动主节点,从节点自动启动,可以sh start-all.sh)

a)在主节点cetiti12的hadoop的目录下:

bin/hdfs namenode –format

sbin/start-dfs.sh

sbin/start-yarn.sh

然后在主节点cetiti12输入jps可以查看到NameNode,SecondaryNameNode,Jps和ResourceManager四个进程。

在从节点slave输入jps可以查看到Jps,NodeManager和DataNode三个进程。

b) 出现以上进程提示,恭喜你,你的hadoop的环境搭建完成!

注:hadoop安装目录下的文件属主需要是hadoop。cetiti12的hosts中 127.0.0.1和1都需要注释掉,只需要

192.168.10.12 cetiti12(对应配置文件中的主节点名称)

192.168.10.13 cetiti13

192.168.10.14 cetiti14

netstat -an | grep 8020 检查是否都改成ip了,如果是127.0.0.1子节点namenodemanger则起不来。

问题1.
java.net.BindException: Port in use: localhost:0
Caused by: java.net.BindException: Cannot assign requested address

netstat -tulpn | grep 0

tcp 0 0 0.0.0.0:12182 0.0.0.0:* LISTEN 8424/nc
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 937/sshd
tcp 0 0 0.0.0.0:65534 0.0.0.0:* LISTEN 8421/nc
tcp 0 0 :::22 :::* LISTEN 937/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 8865/dhclient

kill -9 8424 8421 8865

再重启

查看开发端口
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)