2021云+数:Java安装及Hadoop完全分布式集群搭建

来自CloudWiki
跳转至: 导航搜索

实训目标

(1) 掌握在Linux下安装Java。

(2) 掌握配置Hadoop完全分布式集群。

(3) 掌握Hadoop集群的启动与关闭。

实训环境

(1) 使用CentOS6.10以上版本的Linux操作系统虚拟节点3个。

(2) 使用1.8的JDK。

(3) 使用2.6.4版本的Hadoop安装包。

实训内容

(1) 在Linux下安装Java。

(2) 修改Hadoop配置文件。

(3) 启动关闭Hadoop集群。

实训步骤

前置步骤

(1) 在Linux终端执行命令“initnetwork”,或者双击桌面上名称为“初始化网络”的图标,初始化实训平台网络。

(2) 在Linux终端执行命令“wget -P /opt/software http://datasrc.tipdm.net:81/bigdata/hadoop/software/jdk-8u151-linux-x64.rpm”,下载jdk-8u151-linux-x64.rpm到Linux本地/opt/software目录。

(3) 在Linux终端执行命令“wget -P /opt/software http://datasrc.tipdm.net:81/bigdata/hadoop/software/hadoop-2.6.4.tar.gz”,下载hadoop-2.6.4.tar.gz到Linux本地/opt/software目录。

(4) 在Linux终端执行如代码 4-1所示命令,将Java安装包发送到子节点上。

代码 4-1 远程发送Java安装包

ssh slave1 "mkdir /opt/software"

ssh slave2 "mkdir /opt/software"

scp /opt/software/jdk-8u151-linux-x64.rpm slave1:/opt/software/

scp /opt/software/jdk-8u151-linux-x64.rpm slave2:/opt/software/

在Linux下安装Java

(1) 在命令终端输入命令“java -version”查看当前环境下是否有安装Java,若如图 4-1所示,则当前环境并没有安装Java。若如图 4-2所示,则表明当前环境已完成安装,为保证集群各节点的Java版本一致,此时可通过命令“rpm -e $(rpm -qa |grep java-1.8.0) --nodeps”将已有包卸载。

图 4-1 查看Java版本1

图 4-2查看Java版本2

(2) 使用命令“cd /opt/software/”进入/opt/software目录,执行命令“rpm –ivh jdk-8u151-linux-x64.rpm”安装JDK,如图 4-2所示。

图 4-4安装JDK

(3) 通过命令“vi /etc/profile”编辑/etc/profile文件,按G跳到文件末尾,按o进入编辑状态,在/etc/profile文件末尾添加Java的环境变量,如图 4-3所示。

图 4-5 配置Java环境变量

(4) 先按Esc,后输入“:wq”回车进行保存退出,回到终端,执行命令“source /etc/profile”使配置即时生效。

(5) 验证JDK是否配置成功,执行命令“java -version”,如图 4-4所示说明JDK配置成功。

图 4-6验证JDK配置成功

(6) 进入节点slave1配置Java,通过“ssh slave1”进入slave1节点,按照步骤(1)-(5)安装。

(7) 进入节点slave2配置Java,先通过“exit”退出slave1,回到master,再通过“ssh slave2”进入slave2节点,按照步骤(1)-(5)安装。

(8) 安装完毕后,通过命令“exit”退出slave2,回到master节点。

修改Hadoop配置文件

以下步骤均在之前创建的虚拟机master上操作。

(1) 在/opt/software有Hadoop的安装包,执行命令“tar -zxf /opt/software/hadoop-2.6.4.tar.gz -C /usr/local”将Hadoop安装包解压到虚拟机master的/usr/local目录下。

(2) 进入/usr/local/hadoop-2.6.4/etc/hadoop目录,

(3) 使用命令“vi”修改相关的配置的文件。

修改core-site.xml文件,添加如表 4-1所示的内容。

表 4-1 修改core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>  

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

  </property>  

<property>

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

  <value>/var/log/hadoop/tmp</value>

</property>

</configuration>

修改hadoop-env.sh文件,该文件是Hadoop运行基本环境的配置,需要修改为JDK的实际位置。故在该文件中修改JAVA_HOME值为本机安装位置,如表 4-2所示。

表 4-2 修改hadoop-env.sh

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

修改yarn-env.sh,在该文件中修改JAVA_HOME值为本机安装位置,如表 4-3所示。

表 4-3 修改yarn-env.sh文件

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

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

修改mapred-site.xml,该文件是从mapred-site.xml.template文件复制得到的,复制命令为“cp mapred-site.xml.template mapred-site.xml”,修改内容如表 4-4所示。

表 4-4 修改mapred-site.xml

<configuration>

<property>

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

    <value>yarn</value>

</property>

<!-- jobhistory properties -->

<property>

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

    <value>master:10020</value>

</property>

<property>

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

     <value>master:19888</value>

</property>

</configuration>

修改yarn-site.xml文件,修改内容如表 4-5所示。

表 4-5 修改yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

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

    <value>master</value>

  </property>    

  <property>

    <name>yarn.resourcemanager.address</name>

    <value>${yarn.resourcemanager.hostname}:8032</value>

  </property>

  <property>

    <name>yarn.resourcemanager.scheduler.address</name>

    <value>${yarn.resourcemanager.hostname}:8030</value>

  </property>

  <property>

    <name>yarn.resourcemanager.webapp.address</name>

    <value>${yarn.resourcemanager.hostname}:8088</value>

  </property>

  <property>

    <name>yarn.resourcemanager.webapp.https.address</name>

    <value>${yarn.resourcemanager.hostname}:8090</value>

  </property>

  <property>

    <name>yarn.resourcemanager.resource-tracker.address</name>

    <value>${yarn.resourcemanager.hostname}:8031</value>

  </property>

  <property>

    <name>yarn.resourcemanager.admin.address</name>

    <value>${yarn.resourcemanager.hostname}:8033</value>

  </property>

  <property>

    <name>yarn.nodemanager.local-dirs</name>

    <value>/hadoop/yarn/local</value>

  </property>

  <property>

    <name>yarn.log-aggregation-enable</name>

    <value>true</value>

  </property>

  <property>

    <name>yarn.nodemanager.remote-app-log-dir</name>

    <value>/tmp/yarn/logs</value>

  </property>

<property>

<name>yarn.log.server.url</name>

<value>http://master:19888/jobhistory/logs/</value>

<description>URL for job history server</description>

</property>

<property>

   <name>yarn.nodemanager.vmem-check-enabled</name>

    <value>false</value>

  </property>

<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.nodemanager.resource.memory-mb</name>  

        <value>2048</value>  

 </property>  

 <property>  

        <name>yarn.scheduler.minimum-allocation-mb</name>  

        <value>512</value>  

 </property>   

 <property>  

        <name>yarn.scheduler.maximum-allocation-mb</name>  

        <value>4096</value>  

</property>

<property>

    <name>mapreduce.map.memory.mb</name>

    <value>2048</value> 

</property>

<property>

    <name>mapreduce.reduce.memory.mb</name>

    <value>2048</value> 

</property>

<property>

    <name>yarn.nodemanager.resource.cpu-vcores</name>

    <value>1</value> 

</property>

</configuration>

修改slaves文件,该文件里面保存有slave节点的信息,在slaves文件里面删除原先的localhost,添加如表 4-6所示的内容。

表 4-6 修改slaves文件

slave1

slave2

修改hdfs-site.xml文件,修改内容如表 4-7所示。

表 4-7 修改hdfs-site.xml文件

<configuration>

<property>

    <name>dfs.namenode.name.dir</name>

    <value>file:///hadoop/hdfs/name</value>

</property>

<property>

    <name>dfs.datanode.data.dir</name>

    <value>file:///hadoop/hdfs/data</value>

</property>

<property>

     <name>dfs.namenode.secondary.http-address</name>

     <value>master:50090</value>

</property>

<property>

     <name>dfs.replication</name>

     <value>2</value>

</property>

</configuration>

除了上述的7个文件,还需要修改/etc/hosts文件,该文件配置的是主机名与IP地址的映射。本次搭建的集群共有3个节点,其主机名及IP地址在实训环境中已配置完成,且各节点时间已同步。

启动关闭集群

配置环境变量

在master上修改/etc/profile文件,在文件末尾修改如表 4-10所示内容,文件修改完保存退出,执行命令“source /etc/profile”使配置生效。

表 4-10 设置环境变量

export HADOOP_HOME=/usr/local/hadoop-2.6.4

export PATH=$HADOOP_HOME/bin:$PATH

(2) 执行代码 4-1所示代码,将Hadoop安装包、/etc/profile文件复制传输到slave1、slave2节点。

代码 4-2 发送安装包到子节点

scp -r /usr/local/hadoop-2.6.4 slave1:/usr/local

scp -r /usr/local/hadoop-2.6.4 slave2:/usr/local

scp /etc/profile slave1:/etc/profile

scp /etc/profile slave2:/etc/profile

ssh slave1 "source /etc/profile"

ssh slave2 "source /etc/profile"

(3) 在master上执行命令“hdfs namenode -format”进行格式化,若出现“Storage directory hadoop/hdfs/name has been successfully formatted”提示,则格式化成功,如图 4-9所示。

图 4-8格式化成功提示

(4) 启动集群

在master节点,进入Hadoop安装目录,分别执行如代码 4-2所示的命令。

代码 4-3 启动集群

cd $HADOOP_HOME  // 进入Hadoop安装目录

sbin/start-dfs.sh     // 启动HDFS相关服务

sbin/start-yarn.sh     // 启动YARN相关服务

sbin/mr-jobhistory-daemon.sh start historyserver // 启动日志相关服务

集群启动之后,在主节点master,子节点slave1,slave2分别执行jps,出现如图 4-10所示的信息,说明集群启动没问题。

图 4-9 jps查看进程

(5) 同理,关闭集群也只需要在master节点,直接进入Hadoop安装目录,分别执行如代码 4-3所示的命令。

代码 4-4关闭集群

cd $HADOOP_HOME  // 进入Hadoop安装目录

sbin/stop-yarn.sh     // 关闭YARN相关服务

sbin/stop-dfs.sh     // 关闭HDFS相关服务

sbin/mr-jobhistory-daemon.sh stop historyserver // 关闭日志相关服务