2.hadoop-3.1.3 安装和配置

2020-08-13  本文已影响0人  Rex_2013

Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

1.hadoop 安装

1.1 解压安装

[root@node09 ~]#   cd /opt/software/
[root@node09 software]#  tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

1.2 将Hadoop添加到环境变量

[root@node09 hadoop-3.1.3]# sudo vim /etc/profile.d/my_env.sh

##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
[root@node09 hadoop-3.1.3]# source /etc/profile.d/my_env.sh

1.3 测试是否安装成功

[root@node09 hadoop-3.1.3]# hadoop version

2.完全分布式模式 配置

2.1集群部署规划

注意:NameNode和SecondaryNameNode不要安装在同一台服务器
注意:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

节点 node06 node07 node08 node09 node10
hdfs DataNode DataNode DataNode NameNode DataNode SecondaryNameNode DataNode
yarn NodeManager NodeManager NodeManager NodeManager ResourceManager NodeManager ResourceManager

2.2 配置集群

(1)核心配置文件 core-site.xml

[root@node09 hadoop-3.1.3]# cd /opt/module/hadoop-3.1.3/etc/hadoop/
[root@node09 hadoop]# vim core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node09:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>
    <property>
        <name>hadoop.proxyuser.glory.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.glory.groups</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>glory</value>
    </property>
</configuration>

(2)HDFS配置文件 hdfs-site.xml

[root@node09 hadoop]# vim hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node10:9868</value>
    </property>
    <!-- 指定HDFS副本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

(3)YARN配置文件 yarn-site.xml

[root@node09 hadoop]# vim yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node09</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</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>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
    </property>
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

(4)MapReduce配置文件 mapred-site.xml

[root@node09 hadoop]# vim mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

(4)workers配置文件

[root@node09 hadoop]# vim mapred-site.xml
node06
node07
node08
node09
node10

(5)分发hadoop 到各节点

[root@node09 module]# xsync /opt/module/hadoop-3.1.3

2.3 启动集群

2.3.1 注意点

(1)如果集群是第一次启动需要在master节点格式化NameNode

[root@node09 hadoop-3.1.3]$ bin/hdfs namenode -format

(2)如果使用的是root用户需要修改dfs 和yarn 相关的启动关闭脚本

对于start-dfs.sh和stop-dfs.sh文件,添加下列参数:

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

对于start-yarn.sh和stop-yarn.sh文件,添加下列参数:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

2.4 hadoop 常用配置和调优

2.4.1 配置历史服务器

为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:

[root@node09 hadoop]#  vim mapred-site.xml
<!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node09:10020</value>
    </property>

    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node09:19888</value>
    </property>
[root@node09 hadoop]#  xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
[root@node09 hadoop]#  mapred --daemon start historyserver
[root@node09 hadoop]#  jps

2.4.2 配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。

开启日志聚集功能具体步骤如下:

[root@node09 hadoop]# vim yarn-site.xml
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<property>  
    <name>yarn.log.server.url</name>  
    <value>http://${yarn.timeline-service.webapp.address}/applicationhistory/logs</value>
</property>
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>
<property>
    <name>yarn.timeline-service.enabled</name>
    <value>true</value>
</property>
<property>
    <name>yarn.timeline-service.hostname</name>
    <value>${yarn.resourcemanager.hostname}</value>
</property>
<property>
    <name>yarn.timeline-service.http-cross-origin.enabled</name>
    <value>true</value>
</property>
<property>
    <name>yarn.resourcemanager.system-metrics-publisher.enabled</name>
    <value>true</value>
</property>
[root@node09 hadoop]# xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml
[root@node09 hadoop]# stop-yarn.sh
[root@node09 hadoop]# mapred --daemon stop historyserver
[root@node09 hadoop]# start-yarn.sh
[root@node09 hadoop]# yarn --daemon start timelineserver
[root@node09 hadoop]# mapred --daemon start historyserver

2.4.3 HDFS存储多目录

<property>
 <name>dfs.datanode.data.dir</name
 <value>file:///${hadoop.tmp.dir}/dfs/data1,file:///hd2/dfs/data2,file:///hd3/dfs/data3,file:///hd4/dfs/data4</value>
</property>
bin/start-balancer.sh –threshold 10

对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。

停止数据均衡命令:

bin/stop-balancer.sh

2.4.4 支持LZO压缩配置

[root@node09 common]# pwd
/opt/module/hadoop-3.1.3/share/hadoop/common
[root@node09 common]# ls
hadoop-common-3.1.3.jar  hadoop-common-3.1.3-tests.jar  hadoop-kms-3.1.3.jar  hadoop-lzo-0.4.20.jar  hadoop-nfs-3.1.3.jar  jdiff  lib  sources  webapps
[root@node09 common]# xsync hadoop-lzo-0.4.20.jar
    <property>
        <name>io.compression.codecs</name>
        <value>
        org.apache.hadoop.io.compress.GzipCodec,
        org.apache.hadoop.io.compress.DefaultCodec,
        org.apache.hadoop.io.compress.BZip2Codec,
        org.apache.hadoop.io.compress.SnappyCodec,
        com.hadoop.compression.lzo.LzoCodec,
        com.hadoop.compression.lzo.LzopCodec
        </value>
    </property>

    <property>
        <name>io.compression.codec.lzo.class</name>
        <value>com.hadoop.compression.lzo.LzoCodec</value>
    </property>
[root@node09 hadoop]# xsync core-site.xml
[root@node09 hadoop]# stop-dfs.sh
[root@node09 hadoop]# stop-yarn.sh

[root@node09 hadoop]# start-dfs.sh
[root@node09 hadoop]# start-yarn.sh 

2.4.5 HDFS参数调优hdfs-site.xml

The number of Namenode RPC server threads that listen to requests from clients. If dfs.namenode.servicerpc-address is not configured then Namenode RPC server threads listen to requests from all nodes.
NameNode有一个工作线程池,用来处理不同DataNode的并发心跳以及客户端并发的元数据操作。对于大集群或者有大量客户端的集群来说,通常需要增大参数dfs.namenode.handler.count的默认值10。设置该值的一般原则是将其设置为集群大小的自然对数乘以20,即20logN,N为集群大小。

dfs.namenode.handler.count=20 * log2(Cluster Size),比如集群规模为8台时,此参数设置为60

2.4.6 YARN参数调优yarn-site.xml

单个任务申请的内存
根据输入的数据大小
map
128M 需要一个maptask 1G内存
1G 需要八个maptask 8G内存
2G 需要十六个maptask 16G内存
reduce
看需要reduce的任务

2.4.7 Hadoop宕机

参考 关于hadoop3.1.3 root 用户启动报错问题

上一篇 下一篇

猜你喜欢

热点阅读