Java大数据开发(三)Hadoop(5)-彻底分布式集群搭建

2021年11月21日 阅读数:109
这篇文章主要向大家介绍Java大数据开发(三)Hadoop(5)-彻底分布式集群搭建,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
导读:经过两个案例的执行,咱们也算是认识了大数据,至少知道,大数据能够帮咱们从一批文件里找到咱们须要的文本,能够帮咱们统计每一个单词出现的个数,类比到生产中,实际就是对日志的分析,工欲善其事,必先利其器,想要使用hadoop,那就先来搭建一个hadoop集群吧。


hadoop彻底分布式集群搭建javascript


集群规划css



Hadoop100java

hadoop101node

hadoop102web

HDFSbash

 

NameNode服务器

DataNode微信

 

DataNode分布式

SecondaryNameNodeoop

DataNode

YARN

 

NodeManager

ResourceManager

NodeManager

 

NodeManager

注意:

HDFS的NameNode和SecondaryNameNode不能在一个服务器上。

Yarn的ResourceManager不能和HDFS的NameNode和SecondaryNameNode在一个服务器上。


修改配置文件

注意:配置文件的修改,在hadoop安装目录下的etc目录下的hadoop目录下。


一、编辑core-site.xml,添加以下内容

<!-- 指定HDFS中NameNode的地址 -->  <property>    <name>fs.defaultFS</name>        <value>hdfs://hadoop100:9000</value>  </property>  <!-- 指定hadoop运行时产生文件的存储目录 -->  <property>    <name>hadoop.tmp.dir</name>    <value>/opt/dev/hadoop-2.7.2/data/tmp</value>  </property>


二、HDFS配置文件类修改


(1)hadoop-env.sh,修改JAVA_HOME目录为安装目录

[root@hadoop100 hadoop]# vi hadoop-env.sh


export JAVA_HOME=/opt/dev/jdk1.8.0_241

(2)编辑hdfs-site.xml,添加以下内容

<property>    <name>dfs.replication</name>    <value>3</value></property>
<!-- 指定Hadoop辅助名称节点主机配置 --><property> <name>dfs.namenode.secondary.http-address</name>      <value>hadoop102:50090</value></property>

(3)编辑slaves文件,添加以下内容

[root@hadoop100 hadoop]# vi slaves hadoop100hadoop101hadoop102


三、yarn配置文件类修改


(1)编辑yarn-env.sh,配置JAVA_HOME安装目录

export JAVA_HOME=/opt/dev/jdk1.8.0_241if [ "$JAVA_HOME" != "" ]; then  #echo "run java in $JAVA_HOME"  JAVA_HOME=$JAVA_HOMEfi
(2)编辑yarn-site.xml,配置以下
<!-- reducer获取数据的方式 -->    <property>        <name>yarn.nodemanager.aux-services</name>        <value>mapreduce_shuffle</value>    </property>    <!-- 指定YARN的ResourceManager的地址 -->    <property>        <name>yarn.resourcemanager.hostname</name>        <value>hadoop101</value>    </property>

四、mapreduce配置文件类修改

(1)编辑mapred-env.sh,添加JAVA_HOME安装目录
export JAVA_HOME=/opt/dev/jdk1.8.0_241
(2)编辑mapred-site.xml,添加以下内容
[root@hadoop100 hadoop]# mv mapred-site.xml.template mapred-site.xml
<!-- 指定mr运行在yarn上 -->  <property>    <name>mapreduce.framework.name</name>    <value>yarn</value>  </property>


五、执行分发脚本,向另外两台服务器分发配置好的hadoop

[root@hadoop100 dev]# xsync hadoop-2.7.2/

六、能够经过查看另外两个服务器上某一个文件,看是否分发成功。


集群启动与中止


一、启动


(1)先到hadoop安装目录下,查看有没有logs目录,若是有则删除,记得还要删除另外两个服务器的logs目录。

[root@hadoop102 hadoop-2.7.2]# ll 总用量 68drwxr-xr-x. 2 root root  4096 3月  27 16:26 bindrwxr-xr-x. 3 root root  4096 3月  27 16:26 etcdrwxr-xr-x. 2 root root  4096 3月  27 16:26 includedrwxr-xr-x. 2 root root  4096 3月  27 16:26 inputdrwxr-xr-x. 3 root root  4096 3月  27 16:26 libdrwxr-xr-x. 2 root root  4096 3月  27 16:26 libexec-rw-r--r--. 1 root root 15429 3月  27 16:26 LICENSE.txt-rw-r--r--. 1 root root   101 3月  27 16:26 NOTICE.txtdrwxr-xr-x. 2 root root  4096 3月  27 16:26 output-rw-r--r--. 1 root root  1366 3月  27 16:26 README.txtdrwxr-xr-x. 2 root root  4096 3月  27 16:26 sbindrwxr-xr-x. 4 root root  4096 3月  27 16:26 sharedrwxr-xr-x. 2 root root  4096 3月  27 16:27 wcinputdrwxr-xr-x. 2 root root  4096 3月  27 16:27 wcoutput

(2)格式化namenode

[root@hadoop100 hadoop-2.7.2]# bin/hdfs namenode -format

(3)启动hdfs

[root@hadoop100 hadoop-2.7.2]# sbin/start-dfs.sh Starting namenodes on [hadoop100]hadoop100: starting namenode, logging to /opt/dev/hadoop-2.7.2/logs/hadoop-root-namenode-hadoop100.outhadoop100: starting datanode, logging to /opt/dev/hadoop-2.7.2/logs/hadoop-root-datanode-hadoop100.outhadoop102: starting datanode, logging to /opt/dev/hadoop-2.7.2/logs/hadoop-root-datanode-hadoop102.outhadoop101: starting datanode, logging to /opt/dev/hadoop-2.7.2/logs/hadoop-root-datanode-hadoop101.outStarting secondary namenodes [hadoop102]hadoop102: starting secondarynamenode, logging to /opt/dev/hadoop-2.7.2/logs/hadoop-root-secondarynamenode-hadoop102.out

(4)jps查看每台服务器的进程

[root@hadoop100 hadoop-2.7.2]# jps3417 NameNode3514 DataNode3743 Jps##100服务器上有namenode和datanode,符合集群规划
[root@hadoop101 hadoop-2.7.2]# jps2952 Jps2879 DataNode##101服务器上有datanode,符合集群规划
[root@hadoop102 hadoop-2.7.2]# jps3122 SecondaryNameNode3181 Jps3038 DataNode##102服务器上有SecondaryNameNode和datanode,符合集群规划

(5)启动yarn

注意:

Namenode和ResourceManger若是不是同一台机器,不能在NameNode上启动yarn,应该在ResouceManager所在的机器上启动yarn。本次集群应该在101服务器启动。

[root@hadoop101 hadoop-2.7.2]# sbin/start-yarn.sh starting yarn daemonsstarting resourcemanager, logging to /opt/dev/hadoop-2.7.2/logs/yarn-root-resourcemanager-hadoop101.outhadoop100: starting nodemanager, logging to /opt/dev/hadoop-2.7.2/logs/yarn-root-nodemanager-hadoop100.outhadoop102: starting nodemanager, logging to /opt/dev/hadoop-2.7.2/logs/yarn-root-nodemanager-hadoop102.outhadoop101: starting nodemanager, logging to /opt/dev/hadoop-2.7.2/logs/yarn-root-nodemanager-hadoop101.out

(6)能够经过访问http://hadoop100:50070/web系统查看hadoop集群状况


二、中止


(1)总体中止hdfs

[root@hadoop101 hadoop-2.7.2]# sbin/stop-dfs.sh Stopping namenodes on [hadoop100]hadoop100: stopping namenodehadoop102: stopping datanodehadoop101: stopping datanodehadoop100: stopping datanodeStopping secondary namenodes [hadoop102]hadoop102: stopping secondarynamenode

(2)总体中止yarn

[root@hadoop101 hadoop-2.7.2]# sbin/stop-yarn.sh stopping yarn daemonsstopping resourcemanagerhadoop102: stopping nodemanagerhadoop100: stopping nodemanagerhadoop101: stopping nodemanagerno proxyserver to stop


通过以上操做,咱们的集群就搭建好了,只要跟着咱们的文档,一步一步认认真真作,修改配置文件的时候不要改错,必定要根据本身的主机名进行配置修改哦,集群搭建是确定没问题的,集群搭建好了,期待下一步的学习吧。


关注「跟我一块儿学大数据」

跟我一块儿学大数据

本文分享自微信公众号 - 跟我一块儿学大数据(java_big_data)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。