当前位置:   article > 正文

CentOS下Hadoop伪分布式集群的搭建(超详细)

CentOS下Hadoop伪分布式集群的搭建(超详细)

1、环境准备

​ jdk1.8 下载地址:https://www.oracle.com/java/technologies/downloads/#java8

​ 进入官网如下图所示,选择自己合适的安装包下载即可
在这里插入图片描述

hadoop安装包 下载地址:https://hadoop.apache.org/releases.html

​ 进入官网如下图所示,选择自己合适的版本下载即可
在这里插入图片描述

​ 安装ssh服务

​ 进入服务器中,输入如下命令,查看是否已经安装好ssh服务,若没有,则使用如下命令进行安装:

sudo apt-get install ssh openssh-server
  • 1

​ 创建ssh-key,这里采用rsa方式,使用如下命令:

ssh-keygen -t rsa -P ""
  • 1

​ 出现的图形就是密码,接着执行以下命令

cat ~/.ssh/id_rsa.pub >> authorized_keys
  • 1

最后执行ssh localhost进行测试,成功显示如下
在这里插入图片描述

2、环境变量配置

在java和hadoop安装完成之后,接着配置环境变量。首先执行

vim /etc/profile
  • 1

接着在文件下方配置环境变量即可

export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export HADOOP_HOME=/usr/local/hadoop-2.10.1
export PATH=$PATH:${JAVA_HOME}/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 1
  • 2
  • 3
  • 4
  • 5

将JAVA_HOME和HADOOP_HOME替换为自己的安装路径即可,接着运行

source /etc/profile
  • 1

配置文件生效后,分别运行java -versionhadoop version查看jdk和hadoop是否安装配置成功,如下图所示
在这里插入图片描述

3、配置集群

配置详情可参考https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

首先进入hadoop安装目录下,然后进入bin/hadoop文件夹下,所有的配置文件都在该文件夹中

配置hadoop.env.sh,将其中的JAVA_HOME修改为自己的。
在这里插入图片描述

配置core-site.xml,将如下代码复制进去即可。hadoop.tmp.dir的目录可根据自己的喜好来配置

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

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/usr/local/hadoop-2.10.1/data/tmp</value>
</property>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

配置hdfs-site.xml,添加如下代码即可

<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

4、启动集群

​ 在hadoop安装目录下执行以下命令。

​ 格式化NameNode(第一次启动格式化就行了,如果没有特殊情况以后都不要再格式化了)

bin/hdfs namenode -format
  • 1

执行成功,如图所示
在这里插入图片描述

​ 启动NameNode

sbin/hadoop-daemon.sh start namenode
  • 1

启动成功如下所示
在这里插入图片描述

启动DataNode

sbin/hadoop-daemon.sh start datanode
  • 1

启动成功如下所示
在这里插入图片描述

5、查看集群是否启动成功

​ 在hadoop安装目录下执行jps命令查看进程,如果NameNode和DataNode启动成功如下图所示
在这里插入图片描述

接着在浏览器中可以查看web页面,端口为50070
在这里插入图片描述

5、操作集群

​ (1)在HDFS上创建一个input文件夹

bin/hdfs dfs -p /user/myfile/input
  • 1

​ (2)查看文件夹是否创建成功,执行命令bin/hdfs dfs -ls -R /,结果如下图所示,可以看到已经创建成功
在这里插入图片描述

​ (3)在本地创建一个文件,我这边的文件在/usr/local/hadooptest文件夹下创建了一个名为test的文件,文件内容如下
在这里插入图片描述

​ (4)运行下面的命令将这个文件上传到上方创建的input文件夹中

bin/hdfs dfs -put /usr/local/hadooptest/test /user/myfile/input
  • 1

​ (5)运行下面的命令查看文件是否上传成功

bin/hdfs dfs -ls /user/myfile/input
  • 1

​ 可以看到已经上传成功
在这里插入图片描述

​ (6)运行MapReduce程序

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/myfile/input/test  /user/myfile/output
  • 1

​ 运行完成后,执行bin/hdfs dfs -ls /user/myfile查看在/user/myfile文件夹下生成的output文件夹,如图所示
在这里插入图片描述

​ 接下来执行bin/hdfs dfs -ls /user/myfile/output查看output文件夹中有什么东西,如图所示
在这里插入图片描述

​ 最后运行bin/hdfs dfs -cat /user/myfile/output/part-r-00000查看执行结果
在这里插入图片描述

至此,简单的伪分布式集群搭建完成了。接下来配置yarn

首先配置yarn-env.sh,修改其中的JAVA_HOME,进入hadoop安装目录下执行vim etc/hadoop/yarn-env.sh
在这里插入图片描述

接着配置yarn-site.xml,执行vim etc/hadoop/yarn-site.xml,添加如下代码

<!-- Reducer获取数据的方式 -->
<property>
 		<name>yarn.nodemanager.aux-services</name>
 		<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 value的值为自己的主机名-->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>HackerSM</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

配置mapred-env.sh,修改JAVA_HOME,执行vim etc/hadoop/mapred-env.sh
在这里插入图片描述

配置mapred-site.xml.template,执行mv etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml重命名为mapred-site.xml,接着执行vim etc/mapred-site.xml,添加如下代码

<!-- 指定MR运行在YARN上 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

启动集群(必须保证NameNode和DataNode已经启动)

执行sbin/yarn-daemon.sh start resourcemanager启动ResourceManeger

执行sbin/yarn-daemon.sh start nodemaneger启动NodeManager
在这里插入图片描述

执行jps命令查看进程,ResourceManager和NodeManager已经启动
在这里插入图片描述

查看yarn的web页面,端口号为8088
在这里插入图片描述

测试yarn

首先删除HDFS中的output文件夹,如果没有就不需要删除,这边是因为上面测试wordcount建了一个output文件夹

bin/hdfs dfs -rm -r /user/myfile/output(如果没有output文件夹则不须执行)

执行bin/hdfs dfs -ls -R /查看hdfs中所有的文件夹,结果如下
在这里插入图片描述

执行MapReduce程序

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar wordcount /user/myfile/input /user/myfile/output
  • 1

可以在yarn的web页面看到已经执行成功
在这里插入图片描述

再执行bin/hdfs dfs -cat /user/myfile/output/part-r-00000,可以看到执行结果
在这里插入图片描述

至此,yarn配置完成,接下来配置历史服务器

首先配置mapred-site.xml,在该文件中添加如下代码

<!-- value的值为主机名:端口号 -->
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>HackerSM:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>HackerSM:19888</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

启动历史服务器

sbin/mr-jobhistory-daemon.sh start historyserver
  • 1

使用jps查看进程
在这里插入图片描述

访问历史服务器web页面,端口号为19888
在这里插入图片描述

最后配置日志聚集

首先执行vim etc/hadoop/yarn-site.xml,然后添加如下代码

<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

开启日志聚集功能需要重新启动ResourceManager、NodeManager和HistoryServer

关闭ResourceManager、NodeManager和HistoryServer,执行如下命令

sbin/yarn-daemon.sh stop resourcemanager
sbin/yarn-daemon.sh stop nodemanager
sbin/mr-jobhistory-daemon.sh stop historyserver
  • 1
  • 2
  • 3

再一次启动ResourceManager、NodeManager和HistoryServer,执行如下命令

sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver
  • 1
  • 2
  • 3

删除HDFS上的output文件夹,如果在HDFS中没有output文件夹,可跳过

bin/hdfs dfs -rm -r /user/myfile/output
  • 1

最后在执行一遍wordcount程序

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar wordcount /user/myfile/input /user/myfile/output
  • 1

可以看到刚刚执行的wordcount程序
在这里插入图片描述

点击上图中的Job ID查看运行情况
在这里插入图片描述

点击上图中的logs即可查看日志
在这里插入图片描述

至此,伪分布式集群已经完全搭建完毕!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/531935
推荐阅读
相关标签
  

闽ICP备14008679号