任务5:安装并配置Hadoop

任务描述

知识点

  • 掌握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目录下,配置内容如下:


      
          fs.defaultFS
          hdfs://master:9000
      

      
          hadoop.tmp.dir
          file:/home/hadoop/tmp
      

      
           io.file.buffer.size
           131702
       
 
  • 配置 hdfs-site.xml 文件,该文件存放在/home/hadoop/hadoop-2.9.2/etc/hadoop目录下,配置内容如下:


      
          dfs.namenode.name.dir
          file:/home/hadoop/hdfs/name
      
  
      
          dfs.datanode.data.dir
          file:/home/hadoop/hdfs/data
      

      
          dfs.replication
          2
      

       
           dfs.namenode.secondary.http-address
           master:9001
       

      
          dfs.webhdfs.enabled
          true
      

      
        dfs.permissions.enabled
        false
    
 
  • 配置 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文件,配置内容如下:



       
           dfs.permissions
           false
       

       
           mapreduce.jobhistory.address
           master:10020
       
 
		
			mapreduce.job.tracker
			hdfs://master:8001
			true
		
 
  • 配置yarn-site.xml文件,该文件存放在/home/hadoop/hadoop-2.9.2/etc/hadoop目录下,配置内容如下:


       
           yarn.nodemanager.aux-services
           mapreduce_shuffle
       

       
           yarn.nodemanager.auxservices.mapreduce.shuffle.class
           org.apache.hadoop.mapred.ShuffleHandler
       

       
           yarn.resourcemanager.address
           master:8032
       

       
			yarn.nodemanager.resource.memory-mb
			4096
		
  • 配置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

你可能感兴趣的:(hadoop,大数据,分布式)