Hadoop 集群搭建 (三):Hadoop

Hadoop:我好了你们再上

664px-Hadoop_logo.svg

Hadoop 安装配置

Ps:除非特别指出仅在 Master,则在所有节点配置 # 安装 Hadoop

  • cd /mnt/hgfs/Hadoop
  • cp hadoop-2.8.5.tar.gz /usr/local/src/
  • cd /usr/local/src
  • tar zxvf hadoop-2.8.5.tar.gz
  • rm -rf hadoop-2.8.5.tar.gz

配置 Hadoop 环境变量:

  • vim ~/.bashrc
# 添加如下信息
# SET HADOOP PATH
export HADOOP_HOME=/usr/local/src/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
  • source ~/.bashrc

Hadoop 配置文件

  • cd hadoop-2.8.5

创建临时目录和文件目录:

  • mkdir -p /usr/local/src/hadoop-2.8.5/dfs/name
  • mkdir -p /usr/local/src/hadoop-2.8.5/dfs/data
  • mkdir -p /usr/local/src/hadoop-2.8.5/tmp/dfs
  • cd etc/hadoop

仅在 Client 配置 (若无可跳过此步骤):

  • vim core-site.xml
# 添加如下信息

<configuration>
<property>
<!-- 指定Hadoop所使用的文件系统Schema -->
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
  • mv mapred-site.xml.template mapred-site.xml
  • vim mapred-site.xml
# 添加如下信息

<configuration>
<property>
<!-- 指定MapReduce程序运行在Yarn上 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
  • vim yarn-site.xml
# 添加如下信息

<configuration>
<property>
<!-- 指定ResourceManager地址 -->
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>

修改 Hadoop 配置文件:

  • vim hadoop-env.sh
# 添加如下信息
export JAVA_HOME=/usr/local/src/jdk1.8.0_212
  • vim yarn-env.sh
# 添加如下信息
export JAVA_HOME=/usr/local/src/jdk1.8.0_212
  • vim slaves
# 添加如下信息
slave1
slave2
  • vim core-site.xml
# 添加如下信息

<configuration>
<property>
<!-- 指定Hadoop所使用的文件系统Schema -->
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<!-- 指定HDFS本地临时存放目录 -->
<name>hadoop.tmp.dir</name>
<value>/usr/local/src/hadoop-2.8.5/tmp</value>
</property>
</configuration>
  • vim hdfs-site.xml
# 添加如下信息

<configuration>
<property>
<!-- 指定SecondaryNamenode端口地址 -->
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<!-- 指定HDFS本地Namenode存放目录 -->
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/src/hadoop-2.8.5/dfs.name</value>
</property>
<property>
<!-- 指定HDFS本地Datanode存放目录 -->
<name>dfs.datanode.name.dir</name>
<value>file:/usr/local/src/hadoop-2.8.5/dfs.data</value>
</property>
<property>
<!-- HDFS副本数量(小于等于从节点的数量) -->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
  • vim mapred-site.xml
# 添加如下信息

<configuration>
<property>
<!-- 指定MapReduce程序运行在Yarn上 -->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置JHS -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/usr/local/src/hadoop-2.8.5/tmp/hadoop-yarn/staging</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
</property>
<property>
<name>mapreduce.jobhistory.cleaner.enable</name>
<value>true</value>
</property>
<property>
<name>mapreduce.jobhistory.cleaner.interval-ms</name>
<value>86400000</value>
</property>
<property>
<name>mapreduce.jobhistory.max-age-ms</name>
<value>604800000</value>
</property>
<property>
<name>mapreduce.jobhistory.move.interval-ms</name>
<value>180000</value>
</property>
</configuration>
  • vim yarn-site.xml
# 添加如下信息

<configuration>
<property>
<!-- 指定reducer获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!-- 指定reducer获取数据所需的类-->
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<!-- 指定ResourceManager地址 -->
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8035</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>
</configuration>

启动集群

仅在 Master

初始化 NameNode:

  • hadoop namenode -format

启动 Hadoop 集群:

  • start-dfs.sh
  • start-yarn.sh

WEB 监控页面:

  • HDFS:http://ip:50070
  • YARN:http://ip:8088