任务5:安装并配置Hadoop

发布时间:2024年01月15日

任务描述

知识点

  • 掌握Hadoop集群的搭建

重? 点

  • 掌握Linux基础命令
  • 在Linux系统下使用命令安装Hadoop集群

内? 容

  • 安装配置Hadoop集群
  • 配置Hadoop环境变量
  • 修改Hadoop配置文件
  • 部署Hadoop集群

任务指导

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。任务主要内容:下载安装Hadoop包,配置环境变量,配置Hadoop集群

Hadoop集群搭建过程

1. 创建Hadoop目录

2. 解压Hadoop安装包

3. 创建Hadoop数据存放的目录(例如:tmp、hdfs、hdfs/data、hdfs/name等目录)

4. 配置Hadoop环境变量

5. 修改Hadoop配置文件

  • 配置core-site.xml文件
  • 配置 hdfs-site.xml?文件
  • 配置 mapred-site.xml?文件
  • 配置yarn-site.xml文件
  • 配置hadoop-env.sh、yarn-env.sh、mapred-env.sh文件的JAVA_HOME变量
  • 配置slaves文件
  • 将配置好的Hadoop复制到其他节点对应位置上

任务实现

1. 安装Hadoop(在master服务器解压并配置完成后,再复制到slave服务器)

  • 创建Hadoop安装目录/home/hadoop(可以自已指定路径)
[ root@master ~]# mkdir /home/hadoop
  • 下载安装包“hadoop-2.9.2.tar.gz”,当前项目已经提供安装文件,位于/home/software目录下,可直接使用。
  • 进入/home/software目录
[ root@master ~]# cd /home/software/
  • 解压安装Hadoop到/home/hadoop目录中
[ root@master software ]# tar -zxvf /home/software/hadoop-2.9.2.tar.gz -C /home/hadoop/
  • 在/home/hadoop目录下分别创建tmp、hdfs/data、hdfs/name 等目录,用于存放Hadoop集群的元数据等信息。
[ root@master software ]# cd ~
[ root@master ~]# mkdir -p /home/hadoop/tmp
[ root@master ~]# mkdir -p /home/hadoop/hdfs/data 
[ root@master ~]# mkdir -p /home/hadoop/hdfs/name 

2. 配置Hadoop环境变量,修改系统配置文件/etc/profile。

  • 编辑/etc/profile文件,配置Hadoop环境变量
[ root@master ~]# vim /etc/profile
  • 在/etc/profile文档最后,添加如下内容:
export HADOOP_HOME=/home/hadoop/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 使用【# source /etc/profile】使配置文件生效。
[ root@master ~]# source /etc/profile

3. 配置Hadoop配置文件?

  • 进入Hadoop配置文件所在目录
[ root@master ~]# cd /home/hadoop/hadoop-2.9.2/etc/hadoop/
  • 配置core-site.xml文件。该文件存放在/home/hadoop/hadoop-2.9.2/etc/hadoop目录下,配置内容如下:
<configuration>
<!-- 指定NameNode的HDFS协议的文件系统通讯地址 -->
??????<property>
??????????<name>fs.defaultFS</name>
??????????<value>hdfs://master:9000</value>
??????</property>
<!-- 临时数据存放的位置 -->
??????<property>
??????????<name>hadoop.tmp.dir</name>
??????????<value>file:/home/hadoop/tmp</value>
??????</property>
<!-- 指定文件IO缓冲区的大小 -->
??????<property>
???????????<name>io.file.buffer.size</name>
???????????<value>131702</value>
???????</property>
?</configuration>
  • 配置 hdfs-site.xml 文件,该文件存放在/home/hadoop/hadoop-2.9.2/etc/hadoop目录下,配置内容如下:
<configuration>
<!-- 指定NameNode数据存储的节点位置 -->
??????<property>
??????????<name>dfs.namenode.name.dir</name>
??????????<value>file:/home/hadoop/hdfs/name</value>
??????</property>
<!-- 指定DataNode数据存储的节点位置 -->??
??????<property>
??????????<name>dfs.datanode.data.dir</name>
??????????<value>file:/home/hadoop/hdfs/data</value>
??????</property>
<!-- 定义文件副本数 -->
??????<property>
??????????<name>dfs.replication</name>
??????????<value>2</value>
??????</property>
<!-- secondaryNameNode的访问地址 -->
???????<property>
???????????<name>dfs.namenode.secondary.http-address</name>
???????????<value>master:9001</value>
???????</property>
<!-- 是否开启WebHDFS -->
??????<property>
??????????<name>dfs.webhdfs.enabled</name>
??????????<value>true</value>
??????</property>
<!-- 是否启用hdfs权限,当值为false时,代表关闭 -->
??????<property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
?</configuration>
  • 配置 mapred-site.xml 文件,首先,输入【# cp mapred-site.xml.template mapred-site.xml】命令从mapred-site.xml.template模板复制一个名为mapred-site.xml的文件。

然后开始配置/home/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml文件,配置内容如下:

<configuration>
<!-- 关闭hdfs权限检测 -->
       <property>
           <name>dfs.permissions</name>
           <value>false</value>
       </property>
<!-- 配置MapReduce的jobhistory,可以查看我们所有运行完成的任务情况 -->
       <property>
           <name>mapreduce.jobhistory.address</name>
           <value>master:10020</value>
       </property>
<!-- 指定job.tracker运行地址 默认在本地--> 
		<property>
			<name>mapreduce.job.tracker</name>
			<value>hdfs://master:8001</value>
			<final>true</final>
		</property>
 </configuration>
  • 配置yarn-site.xml文件,该文件存放在/home/hadoop/hadoop-2.9.2/etc/hadoop目录下,配置内容如下:
<configuration>
<!-- 配置节点管理器上运行的附加服务 -->
???????<property>
???????????<name>yarn.nodemanager.aux-services</name>
???????????<value>mapreduce_shuffle</value>
???????</property>
<!-- MapReduce运行需要设置的shuffle服务 -->
???????<property>
???????????<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
???????????<value>org.apache.hadoop.mapred.ShuffleHandler</value>
???????</property>
<!-- 指定ResourceManager运行在哪台机器上面 -->
???????<property>
???????????<name>yarn.resourcemanager.address</name>
???????????<value>master:8032</value>
???????</property>
<!-- 设置Yarn可使用的物理内存总量 -->
???????<property>
			<name>yarn.nodemanager.resource.memory-mb</name>
			<value>4096</value>
		</property>
</configuration>
  • 配置hadoop-env.sh、yarn-env.sh、mapred-env.sh文件,文件存放在/home/hadoop/hadoop-2.9.2/etc/hadoop目录下,配置这些文件的JAVA_HOME变量。如果不设置,集群可能无法正常启动。

1)输入【vim? hadoop-env.sh】打开准备修改的配置文件hadoop-env.sh,加入JAVA_HOME环境变量。

……
#?The?java?implementation?to?use.
export?JAVA_HOME=/home/java/jdk1.8.0_221
#?The?jsvc?implementation?to?use.?Jsvc?is?required?to?run?secure?datanodes
#?that?bind?to?privileged?ports?to?provide?authentication?of?data?transfer
#?protocol.??Jsvc?is?not?required?if?SASL?is?configured?for?authentication?of
#?data?transfer?protocol?using?non-privileged?ports.
#export?JSVC_HOME=${JSVC_HOME}
export?HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
……

2)输入【vim? yarn-env.sh】打开准备修改的配置文件修改配置文件yarn-env.sh,加入JAVA_HOME环境变量。

……
#?User?for?YARN?daemons
export?HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
#?resolve?links?-?$0?may?be?a?softlink
export?YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}"
#?some?Java?parameters
export?JAVA_HOME=/home/java/jdk1.8.0_221
……

3)输入【vim? mapred-env.sh】打开准备修改的配置文件mapred-env.sh,加入JAVA_HOME环境变量。

……
#?See?the?License?for?the?specific?language?governing?permissions?and
#?limitations?under?the?License.
export?JAVA_HOME=/home/java/jdk1.8.0_221
export?HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export?HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
#export?HADOOP_JOB_HISTORYSERVER_OPTS=
……
  • 配置slaves文件,该文件存在在/home/hadoop/hadoop-2.9.2/etc/hadoop目录下,删除默认的localhost,增加2个从节点的IP地址或host主机名。
slave1
slave2
  • 将安装配置好的Hadoop以及环境变量配置文件(/etc/profile)分发到集群其他服务器节点对应位置上,通过scp命令发送。
[ root@master hadoop ]# scp -rq /home/hadoop/ root@slave1:/home/
[ root@master hadoop ]# scp -rq /home/hadoop/ root@slave2:/home/
[ root@master hadoop ]# scp -rq /etc/profile root@slave1:/etc/profile
[ root@master hadoop ]# scp -rq /etc/profile root@slave2:/etc/profile
  • 文件分发发完成后,在集群所有服务器中使用【# source /etc/profile】命令,使环境变量配置文件生效。例如:
[ root@master ~]#  source /etc/profile
文章来源:https://blog.csdn.net/bangbinbing/article/details/135541233
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。