1. 下载Hadoop

1.1 官网下载Hadoop

http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz

打开上述链接,进入到下图,可以随意下载一个完整的hadoop-2.9.0版本,如下图所示:

 

dock 安装hadoop hadoop安装文档_hadoop

2. 安装单机版Hadoop

详情参考:

3. 安装集群版Hadoop

把hadoop-2.9.0.tar.gz文件进行操作,分三大步骤:

  • 配置前的准备,包括上传到主节点,解压缩并迁移到/opt/app目录,在hadoop目录下创建tmp、name和data目录;
  • 配置,包括hadoop-env.sh、yarn-env.sh(前两者为启动文件的JAVA_HOME和PATH配置)、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、Slaves(后面5个文件为核心组件和集群配置),共7个文件需要配置。配置完成需要向另外的集群机器节点分发hadoop程序;
  • 启动部署,包括格式化NameNode、启动HDFS、启动YARN。

3.1 准备

3.1.1 上传并解压Hadoop安装包

1. 把hadoop-2.9.0.tar.gz通过Xfpt工具上传到主节点的/opt/uploads目录下

 

dock 安装hadoop hadoop安装文档_xml_02

2. 在主节点上解压缩,如果解压缩出来的文件拥有者和用户组不是hadoop,则需要使用sudo chown -R hadoop:hadoop hadoop-2.9.0命令

 # cd /opt/uploads/

# tar -zxvf  hadoop-2.9.0.tar.gz

dock 安装hadoop hadoop安装文档_hdfs_03

dock 安装hadoop hadoop安装文档_xml_04

有时解压出来的文件夹,使用命令 ll 查看用户和用户组有可能不是hadoop时,即上图绿框显示,则需要使用如下命令更换为hadoop用户和用户组:

# sudo chown hadoop:hadoop hadoop-2.9.0

 3. 把hadoop-2.9.0目录移到/opt/app目录下

# mv hadoop-2.9.0 /opt/app/

# ll /opt/hadoop

dock 安装hadoop hadoop安装文档_dock 安装hadoop_05

3.1.2 在Hadoop目录下创建子目录

以hadoop用户在/opt/app/hadoop-2.9.0目录下创建tmp、name和data目录。tmp为缓存文件,name用于NameNode存放文件,data用于DataNode存放文件

# cd /opt/app/hadoop-2.9.0/

# mkdir tmp && mkdir name && mkdir data

# ll

dock 安装hadoop hadoop安装文档_hdfs_06

3.2 配置7大文件

3.2.1 配置hadoop-env.sh

1. 以hadoop用户打开配置文件hadoop-env.sh

# cd /opt/app/hadoop-2.9.0/etc/hadoop

# vi hadoop-env.sh

 

dock 安装hadoop hadoop安装文档_hdfs_07

2. 加入配置内容,设置JAVA_HOME和PATH路径

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

export PATH=$PATH:/opt/app/hadoop-2.9.0/bin

dock 安装hadoop hadoop安装文档_xml_08

3. 编译配置文件hadoop-env.sh,并确认生效

# source hadoop-env.sh

# hadoop version

dock 安装hadoop hadoop安装文档_hadoop_09

 3.2.2 配置yarn-env.sh

1. 以hadoop用户在/opt/app/hadoop-2.9.0/etc/hadoop打开配置文件yarn-env.sh

# cd /opt/app/hadoop-2.9.0/etc/hadoop   如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令

# vi yarn-env.sh

dock 安装hadoop hadoop安装文档_xml_10

2. 加入配置内容,在如下位置设置JAVA_HOME路径

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

dock 安装hadoop hadoop安装文档_xml_11

 3. 编译配置文件yarn-env.sh,并确认生效

source yarn-env.sh

dock 安装hadoop hadoop安装文档_hdfs_12

3.2.3 配置core-site.xml

1. 以hadoop用户,使用如下命令打开core-site.xml配置文件

# cd /opt/app/hadoop-2.9.0/etc/hadoop/     如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令

# vi core-site.xml

dock 安装hadoop hadoop安装文档_hdfs_13

2. 在配置文件中,按照如下内容进行配置

配置的点有fs默认名字、默认FS、IO操作的文件缓冲区大小、tmp目录、代理用户hosts、代理用户组,共6点。

<configuration>
    <property>
           <name>fs.default.name</name>
           <value>hdfs://hadoop1:9000</value>
   </property>
   <property>
        <name>fs:defaultFS</name>
        <value>hdfs://hadoop1:9000</value>
   </property>
   <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
   </property>
   <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/opt/app/hadoop-2.9.0/tmp</value>
   </property>
   <property>
        <name>hadoop.proxyuser.hduser.hosts</name>
        <value>*</value>
   </property>
   <property>
       <name>hadoop.proxyuser.hduser.groups</name>
       <value>*</value>
   </property>
</configuration>

 

dock 安装hadoop hadoop安装文档_hdfs_14

3.2.4 配置hdfs-site.xml

1. 使用如下命令打开hdfs-site.xml配置文件

# cd /opt/app/hadoop-2.9.0/etc/hadoop/     如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令

# vi hdfs-site.xml

 

dock 安装hadoop hadoop安装文档_hadoop_15

2. 在配置文件中,按照如下内容进行配置

hdfs-site.xml配置的点有namenode的secondary、name目录、data目录、备份数目、开启webhdfs,共5点
<configuration>
   <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop1:9001</value>
   </property>
   <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/app/hadoop-2.9.0/name</value>
   </property>
   <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:/opt/app/hadoop-2.9.0/data</value>
   </property>
   <property>
       <name>dfs.replication</name>
       <value>2</value>
   </property>
   <property>
       <name>dfs.webhdfs.enabled</name>
       <value>true</value>
   </property>
</configuration>

【注意】:namenode的hdfs-site.xml是必须将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS、LISTFILESTATUS等需要列出文件、文件夹状态的命令,因为这些信息都是由namenode来保存的。

3.2.5 配置mapred-site.xml

 1.  默认情况下不存在mapred-site.xml文件,可以从模板拷贝一份。然后,使用vi命令打开mapred-site.xml配置文件

# cd /opt/app/hadoop-2.9.0/etc/hadoop/如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# cp mapred-site.xml.template mapred-site.xml
# vi hdfs-site.xml

dock 安装hadoop hadoop安装文档_dock 安装hadoop_16

2. 在配置文件中,按照如下内容进行配置

mapred-site.xml配置的点有mapreduce的框架、jobhistory的地址、jobhistory的webapp地址,共3点。

<configuration>
   <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
   </property>
   <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop1:10020</value>
   </property>
   <property>
       <name>mapreduce.jobhistory.webapp.address</name>
       <value>hadoop1:19888</value>
   </property>
</configuration>

 

dock 安装hadoop hadoop安装文档_hdfs_17

3.2.6 配置yarn-site.xml

 1. 使用如下命令打开yarn-site.xml配置文件

# cd /opt/app/hadoop-2.9.0/etc/hadoop/ 如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# vi hdfs-site.xml

dock 安装hadoop hadoop安装文档_dock 安装hadoop_18

2. 在配置文件中,按照如下内容进行配置

yarn-site.xml配置的点有①nodemanager的aux-services及其类;②resourcemanager的地址、其sheduler地址、其resource-tracker地址、其admin地址以及webapp地址,共7点。

<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.address</name>
          <value>hadoop1:8032</value>
     </property>
     <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>hadoop1:8030</value>
     </property>
     <property>
          <name>yarn.resourcemanager.resource-tracker.address</name>
          <value>hadoop1:8031</value>
     </property>
     <property>
          <name>yarn.resourcemanager.admin.address</name>
          <value>hadoop1:8033</value>
     </property>
     <property>
          <name>yarn.resourcemanager.webapp.address</name>
          <value>hadoop1:8088</value>
      </property>
</configuration>

dock 安装hadoop hadoop安装文档_hdfs_19

3.2.7 配置Slaves文件

1. 使用# vi slaves打开从节点配置文件

# cd /opt/app/hadoop-2.9.0/etc/hadoop/如果不在/opt/app/hadoop-2.9.0/etc/hadoop目录下,则使用该命令
# vi slaves


dock 安装hadoop hadoop安装文档_dock 安装hadoop_20

2. 在配置文件中加入如下内容:

hadoop1
hadoop2
hadoop3

dock 安装hadoop hadoop安装文档_xml_21

3.2.8 向各节点分发Hadoop程序

1. 在hadoop1机器/opt/app/hadoop-2.9.0使用如下命令把hadoop文件夹复制到hadoop2和hadoop3机器

# cd /opt/app
# scp -r hadoop-2.9.0 hadoop@hadoop2:/opt/app/
# scp -r hadoop-2.9.0 hadoop@hadoop3:/opt/app/

dock 安装hadoop hadoop安装文档_hadoop_22

dock 安装hadoop hadoop安装文档_hdfs_23

2. 在从节点查看是否复制成功

dock 安装hadoop hadoop安装文档_hdfs_24

dock 安装hadoop hadoop安装文档_hdfs_25

3.3 启动部署

启动部署,包括格式化NameNode、启动HDFS、启动YARN。

3.3.1 格式化NameNode

# cd /opt/app/hadoop-2.9.0
# ./bin/hdfs namenode -format

dock 安装hadoop hadoop安装文档_hadoop_26

dock 安装hadoop hadoop安装文档_hadoop_27

3.3.2 启动HDFS

1. 使用如下命令启动HDFS:

# cd /opt/app/hadop-2.9.0/sbin   如果不在/opt/app/hadoop-2.9.0/sbin目录下,则使用该命令

# ./start-dfs.sh

dock 安装hadoop hadoop安装文档_hdfs_28

2. 验证HDFS启动

 此时在hadoop1上面运行的进程有:NameNode、SecondaryNameNode和DataNode

dock 安装hadoop hadoop安装文档_hadoop_29

hadoop2和hadoop3上面运行的进程有:NameNode和DataNode

dock 安装hadoop hadoop安装文档_hadoop_30

dock 安装hadoop hadoop安装文档_hadoop_31

【注意】:jps命令出现—— xxxx--process information unavailable解决方法(有可能出现)

解决方法:根目录/tmp中找到hsperfdata_前缀的目录,并找出PID(即xxxx)对应的文件并且删除即可。如果/tmp文件不重要的话,全部删除也行。

3.3.3 启动YARN

1. 使用如下命令启动YARN

# cd /opt/app/hadoop-2.9.0/sbin

# ./start-yarn.sh

dock 安装hadoop hadoop安装文档_hadoop_32

2. 验证YARN启动

此时在hadoop1上运行的进程有:NameNode、SecondaryNameNode、DataNode、NodeManager和ResourceManager

dock 安装hadoop hadoop安装文档_xml_33

hadoop2和hadoop3上面运行的进程有:NameNode、DataNode和NodeManager

dock 安装hadoop hadoop安装文档_dock 安装hadoop_34

dock 安装hadoop hadoop安装文档_xml_35

4. 总结