hadoo集群搭建

Hadoop

1. 集群环境搭建

Jdk的安装与配置

1:安装虚拟机VMware,并安装一个Linux系统(比如CentOS64);

2:安装Hadoop之前先安装jdk(因为hadoop是用java写的,所以需要java的编译环境);

   --|下载linux版本的jdk到安装目录例如:/home/user/resources/jdk-1.8.0.tar.gz

   --|解压缩到当前目录下$> tar -zxvf jdk.1.8.0 ./

   --|创建符号链接$>ln -s /home/user/resources/jdk-1.8.0 jdk

   --|配置环境变量 $>sudo nano /etc/profile

                    ....

                    export JAVA_HOME=/home/user/resourcces/jdk

            exprot PATH=$PATH:$JAVA_HOME/bin

   --|是配置的环境变量立即生效$>source /etc/profile

   --|测试jdk是否配置成功,进入任意目录$>java -version

Hadoop的安装与配置  

1:下载LinuxHadoop源码包到resources目录下

2:解压缩源码包到当前目录$>tar -zxvf hadoop-2.7.2.tar.gz ./

3:移动该解压后的文件到/soft/(本人习惯问题,你也可以不移动或放到你想放的

)$>mv ./hadoop-2.7.2 /soft/

4:创建符号链接$>ln -s /soft/hadoop-2.7.2 hadoop

5:配置hadoop的环境变量$>sudo  nano /ect/profile

                        .......

                        export HADOOP_HOME=/soft/hadoop

                export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

6:让配置立即生效$>source /etc/profile

7:验证配置是否成功,进入任意目录测试$>hadoop

8:在hadoop中指定jdk安装路径

   $>sudo nano /soft/hadoop/etc/hadoop/hadoop-env.sh

   找到# The java implementation to use.

export JAVA_HOME=${JAVA_HOME}

改为

export JAVA_HOME=/home/user/resources/jdk

保存退出

 

配置hadoop核心文件

进入核心配置文件所在的位置$>ls /soft/hadoop/etc/hadoop

1core-site.xml

编辑$>sudo core-site.xml

<configuration>

<!--默认文件系统的名称,根据自己的文件系统名称填写-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://master/</value>

</property>

    <!--hadoop临时文件目录所在的位置,属性名固定为hadoop.tmp.dir,属性值用户可以自己填写指定的位置-->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/szg/hadoop</value>

</property>

</configuration>

2hdfs-site.xml

   编辑$>sudo nano hdfs-site.xml

<configuration>

<!--文件副本数,默认是3最大也是3-->

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

</configuration>

3mapred-site.xml

   这个稍微特殊一点,这个文件是没有的需要手动创建(复制一个改一下名称即可)

   $>sudo cp ./mapred-site.xml.template mapred-site.xml

   编辑$>sudo nano mapred-site.xml

   <configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

4:yarn-site.xml

  编辑$>sudo nano yarn-site.xml

  <configuration>

<!--名称节点所在的主机名 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

至此四大核心文件配置完成。。。

节点名称和网络配置

首先网络请选NAT模式

1Linux系统默认主机名称为localhost因为要配置hadoop集群所以要修改主机名称

--|$>sudo nano /etc/sysconfig/network

      编辑NETWORKING=yes

           HOSTNAME=master

保存退出

--|使用$>hostname master确认修改生效

--|以上配置会在下次启动是复原,为了避免复原需要继续配置

  编辑$>sudo nano /etc/hostname

  添加master

  保存退出即可便永久修改主机名

2:网络配置

 配置静态ip

   $>sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

   编辑

DEVICE="eth0"
BOOTPROTO="static" #将原来的值“dhcp”改为“static”
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"

//这个不用改
UUID="b68b1ef8-13a0-4d11-a738-1ae704e6a0a4"
IPADDR=192.168.1.10    #你需要定义的IP地址

#以下两个的值如果不清楚的话,可以打开你本地的电脑,--》控制面板\所有控制面板项\网络和共享中心\本地连接\详细信息
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.1.1    #默认网关,

保存退出

重启网络服务

$>sudo service network restart

3ip关联主机名

   --|$>sudo nano /etc/resolv.conf

      添加你的网关servername 192.168.1.1保存退出。

4:关闭防火墙

至此网络配置完成。。。

集群搭建工作

以操作都是在master上操作,下面开始搭建集群

1:将master虚拟机克隆三份供练习(以上配置的副本数量为3)

2:将克隆的3台虚拟机ip分别修改为192.168.1.11,192.168.1.12192.168.1.13

3:修改名称为slave01,slave02,slave03

----------------------------------以上操作同master-------------------------------------

4:masterslave中配置虚拟机

 $>sudo nano /etc/hosts

   编辑192.168.1.10 master

        192.168.1.11 slave01

        192.168.1.12 slave02

        192.168.1.13 slave03

  保存退出

设置免密钥登录

1.删除所有主机上的/home/user/.ssh/*

 

2.master主机上生成密钥对

$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

 

3.master的公钥文件id_rsa.pub远程复制到202 ~ 204主机上。

并放置/home/centos/.ssh/authorized_keys

$>scp id_rsa.pub szg@master:/home/user/.ssh/authorized_keys

$>scp id_rsa.pub szg@slave01:/home/user/.ssh/authorized_keys

$>scp id_rsa.pub szg@slave02:/home/user/.ssh/authorized_keys

$>scp id_rsa.pub szg@slave03:/home/user/.ssh/authorized_keys

Hadoop集群的启动和停止

1:格式化nameNode

  $>hadoop namenode -format

2:启动hadoop集群

   $>start-all.sh(建议使用start-dfs.shstrat-yarn.sh)

3:停止hadoop集群

   $>stop-all.sh(建议使用stop-dfs.shstop-yarn.sh)

验证Hadoop

方式1:在master节点使用jps查看进程,应该有以下四个进程

        3588 SecondaryNameNode

5975 Jps

3389 NameNode

3743 ResourceManager

slave节点使用jps查看进程,应该有以下三个进程

4054 Jps

2633 DataNode

2733 NodeManager

 

 

方式2:使用webUI

       在火狐浏览器地址栏中输入192.168.1.10:50070(masterIP+50070端口)访问

       Datanodes中会出现我们配置的slave01,slave02,slave03节点

方式3:执行mapreduce程序

       以上两种方式验证不一定说明开发环境搭建成功,能执行一个程序才算成功!

       执行程序第一个mapreduce程序,验证开发环境

       $>cd /soft/hadoop/etc/share /hadoop/mapreduce

       $> ls 会看到hadoop-mapreduce-examples-2.7.2.jar

       执行该程序

       $>hadoop jar hadoop-mapreduce-examples-2.7.2.jar pi 10 10

       结果是3.2000000000000000000000000

如果执行成功就说明hadoop集群搭建成功

 

问题总结

1:如果进程正常启动但在webUI中看不到服役的DataNode节点

   解决办法:

检查防火墙是否关闭

$>sudo service iptables status

$>sudo service iptables stop

 

2CentOS重启后/etc/resolv.conf被还原

解决办法:

1停止Network Manager服务

$>sudo service NetworkManager stop

2:重启网络服务

$>/etc/init.d/network restart

3:彻底废掉Network Manager

$>sudo Chkconfig NetworkManager off 

      

 

 

 

 

 

 

 

 

 

  

猜你喜欢

转载自blog.csdn.net/Shenzgang/article/details/80386040