暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Hadoop保姆级部署手册-3-部署hadoop集群

闵栋 2022-11-29
932

2、  hadoop101安装Hadoop

2.0hadoop重要目录说明

1bin目录:存放对Hadoop相关服务(hdfsyarnmapred)进行操作的脚本

2etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件

3lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)

4sbin目录:存放启动或停止Hadoop相关服务的脚本

5share目录:存放Hadoop的依赖jar包、文档、和官方案例

2.1、传输hadoop

XShell文件传输工具将hadoop-3.3.3.tar.gz导入到opt目录下面的software文件夹下面

2.2、解压hadoop

#进入到hadoop安装包路径下

cd opt/software/

 

#解压文件到/opt/module下面

tar -zxvf hadoop-3.3.3.tar.gz -C opt/module/

 

#查看是否解压成功

ls opt/module/hadoop-3.3.3

2.3、将hadoop添加到环境变量

#打开/etc/profile.d/my_env.sh文件

vim etc/profile.d/my_env.sh

 

#my_env.sh文件末尾添加如下内容

#HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-3.3.3

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

#保存并退出 :wq!

#让修改后的文件生效

source etc/profile

 

2.4、验证是否安装成功

执行命令 hadoop version

看到下面展示即为成功

2.5、重启服务器

reboot

、部署hadoop集群(完全分布式运行模式)

3.0、配置文件说明

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

自定义配置文件:

core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。

3.1hadoop集群规划


hadoop101

hadoop102

hadoop104

HDFS

NameNode

DataNode

 

DataNode

SecondaryNameNode

DataNode

YARN

 

NodeManager

ResourceManager

NodeManager

 

NodeManager

JobHistoryServer

NameNode不可和SecondaryNameNode放在一台服务器上;另外ResourceManager也很消耗内存,不要和NameNodeSecondaryNameNode配置在同一台机器上。

3.2、在hadoop102hadoop103上安装hadoop

参考章节2

3.3、配置集群

3.3.1、核心配置文件

配置core-site.xml文件

cd $HADOOP_HOME/etc/hadoop

vim core-site.xml

<configuration></configuration>中间添加下面内容

  <!--指定NameNode的地址-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://hadoop101:8020</value>

</property>

<!--指定hadoop数据的存储目录-->

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/module/hadoop-3.3.3/data</value>

</property>

<!--配置HDFS网页登录使用的静态用户为nps1900-->

<property>

<name>hadoop.http.staticuser.user</name>

<value>nps1900</value>

        </property> 

3.3.2HDFS配置文件

配置hdfs-site.xml

vim hdfs-site.xml

<configuration></configuration>中间添加下面内容

    <!--nn  web端访问地址-->

        <property>

            <name>dfs.namenode.http-address</name>

            <value>hadoop101:9870</value>

        </property>

   

    <!--指定2nn web端访问地址-->

        <property>

       <name>dfs.namenode.secondary.http-address</name>

            <value>hadoop103:9870</value>

        </property>


3.3.3YARN配置文件

配置yarn-site.xml

vim yarn-site.xml

<configuration></configuration>中间添加下面内容

    <!--指定MRshuffle-->

        <property>

            <name>yarn.nodemanager.aux-services</name>

            <value>mapreduce_shuffle</value>

        </property>

   

    <!--指定resourcemanager的地址-->

        <property>

            <name>yarn.resourcemanager.hostname</name>

            <value>hadoop102</value>

        </property>

   

    <!--环境变量的继承-->

        <property>

            <name>yarn.nodemanager.env-whitelist</name>

            <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HDOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>

        </property>

3.3.4MapReduce配置文件

配置mapred-site.xml

vim mapred-site.xml

<configuration></configuration>中间添加下面内容

    <!--指定MapReduce程序运行在yarn-->

        <property>

            <name>mapreduce.framework.name</name>

            <value>yarn</value>

        </property>

3.3.5、分发配置文件

xsync opt/module/hadoop-3.3.3/etc/hadoop/

或者手工在hadoop102hadoop103执行3.3.1-3.3.4章节

3.3.6、查看文件分发情况

hadoop 102hadoop103机器上查看文件分发情况

cat /opt/module/hadoop-3.3.3/etc/hadoop/core-site.xml

cat /opt/module/hadoop-3.3.3/etc/hadoop/hdfs-site.xml

cat /opt/module/hadoop-3.3.3/etc/hadoop/yarn-site.xml

cat /opt/module/hadoop-3.3.3/etc/hadoop/mapred-site.xml

注:查看新增的配置内容是否存在。

3.4、启动集群

3.4.1、配置workers

执行下面命令:

vim /opt/module/hadoop-3.3.3/etc/hadoop/workers

在该文件中增加如下内容:

hadoop101

hadoop102

hadoop103

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空格

同步所有节点配置文件

xsync /opt/module/hadoop-3.3.3/etc

3.4.2、启动集群

3.4.2.1、格式化namenode

注意:如果集群是第一次启动,需要在hadoop101(配置的namenode节点服务器)节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNodeDataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenodedatanode进程,并且要删除所有机器的datalogs目录,然后再进行格式化。)

hdfs namenode -format

3.4.2.2、启动hdfs

进入hadoopsbin文件夹下,执行命令

cd /opt/module/hadoop-3.3.3/sbin

./start-dfs.sh

备注:在执行该命令前,可以先按照下面更新完善该sh文件。

#HDFS格式化后启动dfs出现以下错误:

# ./start-dfs.sh

Starting namenodes on [master]

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 [slave1]

ERROR: Attempting to operate on hdfs  secondarynamenode as root

ERROR: but there is no HDFS_SECONDARYNAMENODE_USER  defined. Aborting operation.

解决方案如下:

/opt/module/hadoop-3.3.3/sbin路径下:
start-dfs.shstop-dfs.sh两个文件顶部添加以下参数

HDFS_DATANODE_USER=root

HADOOP_SECURE_DN_USER=root

HDFS_NAMENODE_USER=root

HDFS_SECONDARYNAMENODE_USER=root

还有,start-yarn.shstop-yarn.sh顶部也需添加以下:

YARN_RESOURCEMANAGER_USER=root

HADOOP_SECURE_DN_USER=yarn

YARN_NODEMANAGER_USER=root

修改后重新执行下面命令,成功

cd /opt/module/hadoop-3.3.3/sbin

./start-dfs.sh

3.4.2.3、启动yarn

在配置了ResourceManager的节点hadoop102,

进入hadoopsbin文件夹下,执行命令

cd /opt/module/hadoop-3.3.3/sbin

./start-yarn.sh

3.4.2.4web端查看HDFSNameNode

浏览器中输入:http://hadoop101:9870

3.4.2.5web端查看yarnResourceManager

浏览器中输入:http://hadoop102:8088


3.4.2.6、查看YARN上运行的job信息

执行jpsall效果如下:

3.5、集群优化配置

3.5.1、配置历史服务器

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

进入hadoop配置文件路径

cd /opt/module/hadoop-3.3.3/etc/hadoop/

编辑配置文件 mapred-site.xml

vim mapred-site.xml

在该文件里面增加如下配置。

<!-- 历史服务器端地址 -->

<property>

     <name>mapreduce.jobhistory.address</name>

     <value>hadoop103:10020</value>

</property>

 

<!-- 历史服务器web端地址 -->

<property>

     <name>mapreduce.jobhistory.webapp.address</name>

     <value>hadoop103:19888</value>

</property>

#将配置文件分发到其他服务器上(hadoop102hadoop103

xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml

注:也可通过ftp工具上传到相应的服务器上

#hadoop103服务器上启动historyserver,并用jps命令查看historserver是否启动


mapred --daemon start historyserver


#查看JobHistory webui界面

3.5.2、配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。日志聚集功能好吃:可以方便的查看程序运行详情,方便开发调试。

注意:开启日志聚集功能,需要重新启动NodeManagerResourceManagerHistoryServer

#配置yarn-site.xml

进入配置文件所在路径(hadoop安装路径),编辑 yarn-site.xml

cd /opt/module/hadoop-3.3.3/etc/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://hadoop103:19888/jobhistory/logs</value>

</property>

<!-- 设置日志保留时间为7 -->

<property>

     <name>yarn.log-aggregation.retain-seconds</name>

     <value>604800</value>

</property>

#分发配置文件到其他服务器上

xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml

#关闭NodeManager ResourceManagerHistoryServer

stop-yarn.sh

mapred  --daemon stop historyserver

备注:分别在对应的服务器上面执行上面命令

#启动NodeManager ResourceManagerHistoryServer

start-yarn.sh

mapred  --daemon start historyserver

备注:分别在对应的服务器上面执行上面命令

#删除HDFS 上已经存在的输出文件

hadoop  fs -rm -r /output

#执行wordcount程序

cd /opt/module/hadoop-3.3.3/

hadoop  jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.3.jar wordcount  /input /output

#查看日志

历史服务器地址
http://hadoop103:19888/jobhistory

历史任务列表

查看任务执行历史

运行日志详情


文章转载自闵栋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论