hadoop 配置文件部分

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop 配置文件部分相关的知识,希望对你有一定的参考价值。

参考技术A 9000端口:是fileSystem默认的端口号:
50070端口: 50070是hdfs的web管理页面的端口 (50070端口也可以查看hdfs 的总存储 以及用了多少等情况),如下图

8020端口: namenode 节点下active的端口

添加配置文件,即可解决问题

集群配置,hadoop部分完整配置过程,细节满满!

做一个hadoop的配置流程的全记录,把遇到的问题和细节全都记录了下来。

文章中安装包的导入位置opt/software

          安装包的安装位置/usr/local/src

1.安装前准备

首先在开始安装hadoop前,准备好需要的相关安装包和配置

安装vim编辑器:
yum install -y vim
安装rsync远程同步工具
yum install -y rsync

(1)jdk,hadoop安装包:

我这里使用jdk 1.8 版本,hadoop 3.3.4版本

这是jdk的下载地址

https://www.oracle.com/java/technologies/downloads/#java8

 选择符合你电脑的版本(正常使用Windows的选择最下方即可)

hadoop的下载地址

https://hadoop.apache.org/releases.html

 选择下载hadoop的版本,下载对应版本的binary安装包

(2)如果你的集群虚拟机已经都创建完成,且确保网络,ssh密钥登陆 都做好了后,就可以开始安装jdk和hadoop了

如果网络还没有完成,可以看我的另一篇文章,把网络配置文件确保配置完成。

(后续会写)

如果ssh密钥连接还没有做好,可以参考我的另一篇文章。这一步是集群配置的关键

(后续会写)

2.开始安装jdk,hadoop

导入安装包到opt/software中解压

tar -zxvf  opt/software/jdk-8u341-linux-x64.tar.gz -C /usr/local/src

tar -zxvf /opt/software/hadoop-3.3.4.tar.gz -C /usr/local/src/

解压安装包到/usr/local/src

进入安装目录,修改对应安装包文件名,改成jdk,hadoop

(注意如果不修改文件名注意配置环境变量文件中对应文件名也要更改) 

修改jdk,hadoop文件用户所属

修改jdk,hadooop所在目录的所属用户
chown -R hadoop:hadoop /usr/local/src

 (1)配置jdk 环境变量,添加对应环境变量

#JAVA_HOME
export JAVA_HOME=/usr/local/src/jdk1
export PATH=$PATH:$JAVA_HOME/bin
保存后退出
:wq

(2)配置hadoop环境变量,添加对应环境变量

#HADOOP_HOME
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后退出
:wq

重启配置文件,使其生效

source /etc/profile

(3)测试安装是否成功

如果没有打错字符的话不应该出错

java -version  #测试jdk

hadoop version   #测试hadoop

 3.hadoop 集群配置文件

(1) hadoop的部署规划,我使用3台虚假机搭建集群,

NameNode和SecondaryNameNode不要安装在同一台服务器(因为都耗内存)

ResourceManager很消耗内存,不要和NameNode,SecondaryNameNode配置在同一台机器上。

masterslave1slave2

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode
YARN

NodeManager

ResourceManager

NodeManager

NodeManager

(2)配置文件,

/usr/local/src/hadoop/etc/hadoop 中的对应配置文件中加入下面的相关参数

core-site.xml

<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>

    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/src/hadoop/data</value>
    </property>

    <!-- 配置HDFS网页登录使用的静态用户为hadoop -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>hadoop</value>
    </property>

hdfs-site.xml

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

yarn-site.xml

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

    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>slave1</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>

mapred-site.xml

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

(3)配置workers文件 (也在/usr/local/src/hadoop/etc/hadoop

(如果没有创建即可)

(注意不要有空行,最后一行不要留有空格)

4.创建xsync集群群发脚本

(1)选择你hadoop的安装虚拟机

在根目录中创建xsync脚本文件

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in master slave1 slave2
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)

                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

(2)修改xsync脚本权限

#我这图省事直接赋予了777权限
chmod 777 xsync

5.同步jdk,hadoop到集群

xsync /etc/profile  #同步环境变量
xsync /usr/local/src  #同步jdk,hadoop

6.启动hadoop,测试集群

因为我们把namenodeResourceManager放在了不同的虚拟机上

所以start-all.sh启动hadoop集群时,会发现slave1上的ResourceManager无法启动

#在master虚拟机上启动namenode
start-dfs.sh
#在slave1虚拟机上启动ResourceManager
start-yarn.sh

或者 

#在master启动所有
start-all.sh
#在slave1上重新启动yarn配置文件
start-yarn.sh

制作不易,您的支持是我最大的动力。

 

以上是关于hadoop 配置文件部分的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop配置文件

Hadoop配置信息处理

hadoop 配置文件放到哪里

怎么修改ambari中的hadoop配置文件

Hadoop集群配置

hadoop2.7配置文件在哪个目录