登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

hadoop3.x集群部署-配置

介绍

$HADOOP_HOME/etc/hadoop 目录下,有以下4个配置文件:

  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml
  • mapred-site.xml

用户可以根据项目需求进行修改配置

登录 hadoop1 虚拟机

登录 hadoop1 虚拟机,执行下面操作

修改 hadoop-env.sh

hadoop-env.sh 配置了 hadoop 的环境

进入 hadoop目录

cd /program/hadoop-3.0.3/etc/hadoop/

设置 JAVA_HOME(可略)

指定 java 绝对路径,否则 启动 NameNode 和 DataNode 会报错

使用 vim 编辑该文件:

vim hadoop-env.sh

找到 export JAVA_HOME ,如果该行前面有 # ,就去掉 #,改成

export JAVA_HOME=/program/jdk1.8.0_202

可通过下面命令显示 java 绝对路径:

echo $JAVA_HOME

设置 root用户

如果用 root 用户部署、启动hadoop,需要配置 root 用户,否则 执行 start-dfs.sh 命令,报错如下:

Starting namenodes on [hadoop1]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop3]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

hadoop-env.sh 文件的 最下面 添加下面配置:

export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

配置 core-site.xml

进入 hadoop目录

cd /program/hadoop-3.0.3/etc/hadoop/

修改文件

vim core-site.xml

配置 NameNode

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop1:8020</value>
</property>

解释: NameNode 部署在 hadoop1 上,所以使用 hadoop18020 端口

有的配置为 9000 端口

设置HDFS存储文件的位置

<property>
    <name>hadoop.tmp.dir</name>
    <value>/program/hadoop-3.0.3/data/tmp</value>
</property>

当上传文件到 HDFS 后,HDFS 中的文件保存在:

/program/hadoop-3.0.3/data/tmp/dfs/data/current/BP-生成的数字/current/finalized/subdir0/subdir0/

配置HDFS网页登录的静态用户

<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

配置 hdfs

进入 hadoop目录

cd /program/hadoop-3.0.3/etc/hadoop/

vim文件

vim hdfs-site.xml

namenode web服务

namenode 部署在 hadoop1

<!-- nn web端访问地址-->
<property>
    <name>dfs.namenode.http-address</name>
    <value>hadoop1:9870</value>
</property>

secondarynamenode web服务

secondarynamenode 部署在 hadoop3

<!-- 2nn web端访问地址-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop3:9868</value>
</property>

配置副本数(可略)

默认副本数是:3,上传文件后,会有 3 个副本

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

配置 yarn

进入 hadoop目录

cd /program/hadoop-3.0.3/etc/hadoop/

修改 yarn-site.xml

vim yarn-site.xml

增加内容

<!-- 指定MRshuffle -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 指定ResourceManager的地址-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop2</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_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>

<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

解释:

  • yarn.nodemanager.vmem-check-enabled:不配置此项,执行 mr 程序时,可能会报下面错误:
    Current usage: 106.2 MB of 1 GB physical memory used; 2.1 GB of 2.1 GB virtual memory used
    

配置 MapReduce

进入 hadoop目录

cd /program/hadoop-3.0.3/etc/hadoop/

修改 mapred-site.xml

vim mapred-site.xml

增加内容

<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

配置 works

启动集群时,会读取 works文件的主机名,然后访问这些主机

进入 hadoop目录

cd /program/hadoop-3.0.3/etc/hadoop/

vim文件

vim works

修改内容

配置主机名称,内容如下:

hadoop1
hadoop2
hadoop3

注意:

  • 主机名 前后不允许有空格
  • 不允许有空行

同步文件

更新配置文件目录

同步到 hadoop2

rsync -av /program/hadoop-3.0.3/etc/ root@hadoop2:/program/hadoop-3.0.3/etc

同步到 hadoop3

rsync -av /program/hadoop-3.0.3/etc/ root@hadoop3:/program/hadoop-3.0.3/etc

验证文件是否正确

登录 hadoop2 查看 core-site.xml 文件是否正确

登录 hadoop3 查看 core-site.xml 文件是否正确


原文出处:http://malaoshi.top/show_1IX1tjXoC8D2.html