1  安装并配置jdk和hadoop


1.1 安装文件传输软件



    安装文件传输软件SSHSecureShellClient3.2.9软件



ubuntu 集群部署 zookeeper_hadoop

ubuntu 集群部署 zookeeper_hadoop_02

  通过“SSH Secure File Transfer Client”向linux虚拟机传送hadoop-2.7.1.tar.gz和jdk-8u60-linux-x64.tar.gz。

ubuntu 集群部署 zookeeper_xml文件_03

ubuntu 集群部署 zookeeper_xml文件_04

ubuntu 集群部署 zookeeper_xml文件_05

ubuntu 集群部署 zookeeper_xml_06



在linux虚拟机上,运行ls命令,可以看到,我们上传的两个压缩文件。

ubuntu 集群部署 zookeeper_hadoop_07

1.2  解压jdk和hadoop


      在linux虚拟机上解压文件,并通过mv命令重命名文件夹名称为hadoop和jdk8。

      #tar–xzvf hadoop-2.7.1.tar.gz

      #tar–xzvf jdk-8u60-linux-x64.tar.gz

      #mv jdk1.8.0_60 jdk1.8

      #mv hadoop-2.7.1 hadoop

                                

     解压hadoop:

 


ubuntu 集群部署 zookeeper_xml_08


ubuntu 集群部署 zookeeper_xml文件_09

ubuntu 集群部署 zookeeper_xml文件_09


   解压jdk: 


ubuntu 集群部署 zookeeper_hadoop_11

ubuntu 集群部署 zookeeper_xml文件_12



 重命名:


ubuntu 集群部署 zookeeper_xml文件_13



1.3 配置/etc/profile中的环境变量

     执行#sudo vi /etc/profile,并添加下列内容:

     export  JAVA_HOME=/home/hadoop/jdk1.8

     export  JRE_HOME =/home/hadoop/jdk1.8/jre

     export  HADOOP_HOME = /home/hadoop/hadoop

     export  CLASSPATH =$ {JAVA_HOME}/lib: $ {JRE_HOME}/lib

     export PATH=${HADOOP_HOME}/bin: ${HADOOP_HOME}/sbin:${JAVA_HOME}/bin:$PATH

 

     执行vi命令,打开/etc/profile文件:

ubuntu 集群部署 zookeeper_hadoop_14

   使用sudo命令时,需要输入hadoop用户的密码。

     进入/etc/profile文件,添加export语句内容后,按下esc键,输入:wq命令,保存并推出/etc/profile文件。


ubuntu 集群部署 zookeeper_hadoop_15



1.4  修改hadoop环境参数


      修改hadoop/etc/hadoop下的hadoop-env.sh、mapred-env.sh、yarn-env.sh中的内容:

      export JAVA_HOME=/home/hadoop/jdk8

 

     首先,通过#cd  hadoop/etc/hadoop,进入文件所在目录,可通过ls命令查看目录下的文件;然后,#vi hadoop-env.sh:


ubuntu 集群部署 zookeeper_xml文件_16



      在文件中,找到export  JAVA_HOME行内容,修改后保存退出(Esc,  :wq)。


ubuntu 集群部署 zookeeper_xml_17



     同理,编辑mapred-env.sh、yarn-env.sh中的对应内容:


ubuntu 集群部署 zookeeper_hadoop_18

ubuntu 集群部署 zookeeper_hadoop_18



1.5 建立文件目录

      #mkdir  /home/hadoop/hadoop/tmp

      #mkdir  /home/hadoop/hadoop/dfs

      #mkdir  /home/hadoop/hadoop/dfs/name

      #mkdir  /home/hadoop/hadoop/dfs/data

 

ubuntu 集群部署 zookeeper_xml_20



      注:cd命令的使用

     (1)直接使用cd,不带任何参数,表示回到当前用户的主目录。针对hadoop用户,它的主目录是/home/hadoop。

     (2)cd hadoop,表示进入当前目录下的hadoop子目录。

     (3)cd .. ,表示回到从当前目录切换到上一级目录。

     Cd命令通常会结合pwd、ls等命令一起使用。

     pwd命令用于显示当前的目录路径信息;ls命令用于查看当前目录中的文件和子目录情况。


1.6 修改hadoop的xml配置文件

1.6.1.

      修改hadoop的xml配置文件的方法与修改hadoop环境参数的方法类似,都是先通过 cd命令进入配置文件所在的目录,然后通过vi编辑器进行xml文件的编辑。

      注:

中文注释,在进行配置时,需要去掉,否则会因为编码格式问题,导致hadoop启动时不能正确解析xml的情况出现。

     (2)core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml四个xml配置文件都位于/home/hadoop/hadoop/etc/hadoop目录下。

     (3)如果嫌vi编辑器编辑文本麻烦的话,可以通过SSH Secure File Transfer软件将四个xml文件(mapred-site.xml默认情况下不存在,只有mapred-site.xml.template文件存在,拷贝该文件后重命名即可)拷贝到windows环境下,通过文本编辑器进行配置修改后(具体参加后面的具体配置内容),再拷贝回Linux的/home/hadoop/hadoop/etc/hadoop目录,覆盖原文件即可。

ubuntu 集群部署 zookeeper_hadoop_21

ubuntu 集群部署 zookeeper_xml文件_22

1.6.2 配置core-site.xml文件

   修改hadoop/etc/hadoop下的core-site.xml

         <configuration>

         <property>

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

                   <value>/home/hadoop/hadoop/tmp</value>

         </property>

         <property>

                   <name>fs.defaultFS</name>

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

         </property>

         </configuration>


ubuntu 集群部署 zookeeper_xml_23

ubuntu 集群部署 zookeeper_hadoop_24



1.6.3 配置hdfs-site.xml文件

      修改hadoop/etc/hadoop下的hdfs-site.xml

         <configuration>

<!--配置文件的副本数,副本数不能大于datanode数目-->

   

<property>
                   <name>dfs.replication</name>
                   <value>3</value>
         </property>
         <property>
                   <name>dfs.namenode.secondary.http-address</name>
                   <value>master:9001</value>
         </property>
         <property>
                   <name>dfs.datanode.name.dir</name>
                   <value>file:/home/hadoop/hadoop/dfs/name</value>
         </property>
         <property>
                   <name>dfs.datanode.data.dir</name>
                   <value>file:/home/hadoop/hadoop/dfs/data</value>
         </property>
         <property>
                   <name>dfs.webhdfs.enabled</name>
                   <value>true</value>
         </property>
<!--防止出现不允许远程读写hdfs,不建议使用
         <property>
                   <name>dfs.permissions.enabled</name>
                   <value>false</value>
         </property>
 -->
<!--namenode每3秒发一个心跳信号-->
         <property>
                   <name>dfs.heartbeat.interval</name>
                   <value>3</value>
         </property>
<!--心跳机制recheck的间隔,当某个节点在35000/1000*2+3*10即100s内无响应,则集群将其标记为dead-->
         <property>
                   <name>dfs.namenode.heartbeat.recheck-interval</name>
                   <value>35000</value>
         </property>
</configuration>

ubuntu 集群部署 zookeeper_xml文件_25

ubuntu 集群部署 zookeeper_xml_26


1.6.4  配置mapred-site.xml文件

修改hadoop/etc/hadoop下的mapred-site.xml

         <configuration>

         <property>

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

                   <value>yarn</value>

         </property>

<!--history要手动启动,启动命令为:mr-jobhistory-daemon.sh starthistoryserver,这样在web上就可以访问master:19888端口了,这是查看job的history信息的端口-->

         <property>

                   <name>mapreduce.jobhistory.address</name>

                   <value>master:10020</value>

         </property>

         <property>

                   <name>mapreduce.jobhistory.webapp.address</name>

                   <value>master:19888</value>

         </property>

</configuration>

 

ubuntu 集群部署 zookeeper_xml_27

ubuntu 集群部署 zookeeper_xml_28

1.6.5  配置yarn-site.xml文件

修改hadoop/etc/hadoop下的yarn-site.xml
<configuration>
<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.scheduler.address</name>
                   <value>master:8030</value>
         </property>
<property>
                  <name>yarn.resourcemanager.resource-tracker.address</name>
                   <value>master:8031</value>
         </property>
         <property>
                   <name>yarn.resourcemanager.address</name>
                   <value>master:8032</value>
         </property>
         <property>
                   <name>yarn.resourcemanager.admin.address</name>
                   <value>master:8033</value>
         </property>
         <property>
                   <name>yarn.resourcemanager.webapp.address</name>
                   <value>master:8088</value>
         </property>
         <property>
                   <name>yarn.resourcemanager.hostname</name>
                   <value>master</value>
         </property>
</configuration>


ubuntu 集群部署 zookeeper_xml文件_29




ubuntu 集群部署 zookeeper_xml文件_30



1.7  修改masters和slaves

      修改hadoop/etc/hadoop下的masters和slaves两个文件。

      在masters中增加内容:

      master




ubuntu 集群部署 zookeeper_hadoop_31





ubuntu 集群部署 zookeeper_hadoop_32



     在slaves中增加内容:

     master

     slave1

ubuntu 集群部署 zookeeper_xml文件_33

ubuntu 集群部署 zookeeper_xml_34


注:masters中的配置表示secondarynamenode所在的节点机,默认没有该文件,通过vi编辑保存后自动创建了该文件;slaves中的配置表示datanode节点机。

1.8  关闭linux虚拟机

  在命令行下输入下列命令,关闭虚拟机。

      #sudo  init  0

ubuntu 集群部署 zookeeper_xml文件_35

1.9    克隆master虚拟机

     通过Vmware克隆master虚拟机为slave1虚拟机。

     Vmware->虚拟机->管理->克隆,克隆时选择“完全克隆”。


ubuntu 集群部署 zookeeper_hadoop_36

ubuntu 集群部署 zookeeper_hadoop_37

ubuntu 集群部署 zookeeper_xml文件_38

ubuntu 集群部署 zookeeper_xml_39

ubuntu 集群部署 zookeeper_hadoop_40

ubuntu 集群部署 zookeeper_hadoop_41

ubuntu 集群部署 zookeeper_xml_42


1.10  配置slave1虚拟机

1.10.1 启动虚拟机

    启动虚拟机slave1

ubuntu 集群部署 zookeeper_hadoop_43

1.10.2 修改主机名

     将slave1的主机名由master修改为slave1。

     #sudo vi  /etc/hostname

     slave1

ubuntu 集群部署 zookeeper_xml_44

ubuntu 集群部署 zookeeper_xml_45

1.10.3  修改IP地址

     修改slave1的ip地址为192.168.10.11

     #sudo vi /etc/network/interfaces

     auto eth0

     iface eth0 inet static

     address 192.168.10.11

    netmask 255.255.255.0

    gateway 192.168.10.1

ubuntu 集群部署 zookeeper_hadoop_46

ubuntu 集群部署 zookeeper_hadoop_47

1.10.4 重启虚拟机

     通过命令#sudo reboot重启虚拟机slave1。

1.11     无密钥登录ssh

1.11.1  启动master虚拟机

ubuntu 集群部署 zookeeper_xml文件_48

1.11.2  生成密钥文件对

     在master上运行命令

     #ssh-keygen–t rsa

    一路回车,创建一对密钥文件(公钥和私钥,其中id_rsa.pub是公钥,id_rsa为私钥)。

    进入.ssh目录,可以看到生成的密钥对文件id_rsa.pub和id_rsa。

ubuntu 集群部署 zookeeper_hadoop_49

ubuntu 集群部署 zookeeper_xml文件_50

1.11.3  拷贝公钥文件

      在master上运行命令

      #ssh-copy-idhadoop@master

ubuntu 集群部署 zookeeper_xml_51

      上面的命令执行过程中,建立连接提示时,选“yes”,回车。之后输入master主机hadoop的密码。执行完后,输入命令#ssh master,正常的应该出现如下的界面(即,不需要输入master的hadoop用户密码,就可以通过ssh登录master主机了)。

 

ubuntu 集群部署 zookeeper_xml_52

     在命令行输入#exit退出ssh登录,回到.ssh目录。

ubuntu 集群部署 zookeeper_xml_53

    在master上运行命令

    #ssh-copy-idhadoop@slave1

ubuntu 集群部署 zookeeper_xml文件_54

      上面的命令执行过程中,建立连接提示时,选“yes”,回车。之后输入slave1主机hadoop的密码。执行完后,输入命令#ssh slave1,正常的应该出现如下的界面(即,不需要输入slave1的hadoop用户密码,就可以通过ssh登录slave1主机了)。

ubuntu 集群部署 zookeeper_xml文件_55

     输入#exit退出slave1的ssh登录。

ubuntu 集群部署 zookeeper_hadoop_56

2     启动Hadoop

2.1     格式化HDFS文件系统

     在master主机上执行下述命令,用于格式化HDFS文件系统。

    #hadoop namenode –format

ubuntu 集群部署 zookeeper_hadoop_57

    执行结果如下所示,表示HDFS文件系统格式化成功。

ubuntu 集群部署 zookeeper_xml文件_58

2.2 启动Hadoop

    在master主机上执行下述命令,用于格式化HDFS文件系统。

    #start-all.sh

ubuntu 集群部署 zookeeper_xml_59

    启动命令执行完成后的界面如上图所示。

2.3 查看进程

    在master主机上执行#jps,查看进程信息应该有如下进程:

    NodeManager

    NameNode

    Jps

    DataNode

    SecondaryNameNode

    ResourceManager

ubuntu 集群部署 zookeeper_xml_60

       用#ssh slave1登录到slave1,执行#jps,查看进程信息应该有如下进程:

      Jps

      NodeManager

      DataNode

ubuntu 集群部署 zookeeper_xml_61

      在浏览器中输入IP地址:192.168.10.10:50070,会出现如下界面:

ubuntu 集群部署 zookeeper_hadoop_62

      至此,说明整个Hadoop系统安装成功。