基于CentOS7的Hadoop3.2.2完全分布式集群部署记录

2023-10-19 23:58

本文主要是介绍基于CentOS7的Hadoop3.2.2完全分布式集群部署记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器部署结构

hostnamehadoop1hadoop2hadoop3
IP192.168.10.25192.168.10.27192.168.10.28
HDFSNameNodeSecondaryNameNode
HDFSDataNodeDataNodeDataNode
YARNResourceManager
YARNNodeManagerNodeManagerNodeManager

一.环境准备

1、安装java环境,推荐rpm安装,自行安装。

2、永久修改CentOS服务器hostname主机名,主机名和IP一一对应

vi /etc/hostname

执行命令,将默认的 主机名 修改为想要的主机名,这里将三台机器的hostname分别修改为hadoop1,hadoop2和hadoop3

3、配置服务器hosts,所有服务器都要设置

vi /etc/hosts

打开后增加一下内容,shift+g到文件尾部,o进行换行插入

192.168.10.25 hadoop1
192.168.10.27 hadoop2
192.168.10.28 hadoop2

修改完成后自动生效

4、设置服务器之间无密码ssh登陆

Hadoop集群中的各个机器间会相互地通过SSH访问,每次访问都输入密码是不现实的,所以要配置所有服务器
备注,每台机器都要配置对三台机器的ssh登陆,包含自身,不然启动时候会报错

a.在服务器上生成公钥

ssh-keygen -t rsa

一路回车,都设置为默认值,然后再当前用户的Home目录下的.ssh目录中会生成公钥文件(id_rsa.pub)和私钥文件(id_rsa)。

ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

三台机器均需要进行此操作。

5、关闭防火墙

sudo systemctl disable firewalld

也可以进行端口开放,这里不在进行描述

二.安装hadoop

1.先在第一台机器上解压、配置Hadoop,然后再分发到其他两台机器上的方式来安装集群。

我在这里使用的是hadoop-3.2.2版本,版本下载地址点击跳转

wget https://mirrors.bfsu.edu.cn/apache/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz

下载后我这里放在/usr/local位置,然后进行解压

tar -zxf hadoop-3.2.2.tar.gz

三台机器上配置环境变量

vi /etc/profile

添加以下内容

export HADOOP_HOME=/usr/local/hadoop-3.2.2
export PATH=$HADOOP_HOME/bin:$PATH
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

执行以下命令使配置生效

source /etc/profile

2.修改hadoop,文件路径在etc/hadoop, 首先,配置Hadoop JDK路径,定义集群操作用户,在hadoop-env.sh文件中添加如下内容,jdk路径自行修改

export JAVA_HOME=/usr/java/jdk1.8.0_111export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HADOOP_PID_DIR=/data/hadoop/pids
export HADOOP_LOG_DIR=/data/hadoop/logs

3、配置core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop1:8020</value></property><property><name>hadoop.tmp.dir</name><value>/data/hadoop/tmp</value></property>
</configuration>

fs.defaultFS为NameNode的地址,hadoop.tmp.dir为hadoop临时目录的地址。

4、配置hdfs-site.xml

<configuration><property><name>dfs.namenode.secondary.http-address</name><value>hadoop3:50090</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.namenode.name.dir</name><value>file:/data/hadoop/hdfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/data/hadoop/hdfs/data</value></property>
</configuration>

dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将hadoop3规划为SecondaryNameNode服务器。

5、配置workers

hadoop1
hadoop2
hadoop3

6、配置yarn-site.xml

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.localizer.address</name><value>0.0.0.0:8140</value></property><property><name>yarn.resourcemanager.hostname</name><value>hadoop2</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property><property><name>yarn.log.server.url</name><value>http://hadoop3:19888/jobhistory/logs</value></property>
</configuration>

根据规划yarn.resourcemanager.hostname这个指定resourcemanager服务器指向hadoop2。
yarn.log-aggregation-enable是配置是否启用日志聚集功能。
yarn.log-aggregation.retain-seconds是配置聚集的日志在HDFS上最多保存多长时间。

7、配置mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.2.2</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.2.2</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.2.2</value></property><property><name>mapreduce.jobhistory.address</name><value>hadoop3:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop3:19888</value></property>
</configuration>

mapreduce.framework.name设置mapreduce任务运行在yarn上。
mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在hadoop3机器上。
mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号。

8、复制Hadoop配置好的包到其他服务器

scp -r hadoop-3.2.2 hadoop2:/usr/local
scp -r hadoop-3.2.2 hadoop3:/usr/local

9、格式化NameNode

在NameNode机器上执行格式化,这里是hadoop1,在/usr/local/hadoop-3.2.2下执行

hdfs namenode -format

注意:
如果需要重新格式化NameNode,需要先将原来NameNode和DataNode下的文件全部删除,不然会报错,NameNode和DataNode所在目录是在core-site.xml中hadoop.tmp.dir、dfs.namenode.name.dir、dfs.datanode.data.dir属性配置的。

因为每次格式化,默认是创建一个集群ID,并写入NameNode和DataNode的VERSION文件中(VERSION文件所在目录为hdfs/name/current 和 hdfs/data/current),重新格式化时,默认会生成一个新的集群ID,如果不删除原来的目录,会导致namenode中的VERSION文件中是新的集群ID,而DataNode中是旧的集群ID,不一致时会报错。

三、启动集群服务

1、启动HDFS,在hadoop1上执行

/usr/local/hadoop-3.2.2/sbin/start-dfs.sh

2、启动YARN

/usr/local/hadoop-3.2.0/sbin/start-yarn.sh

3、启动日志服务,在hadoop3上执行,规划在hadoop3运行jobhistoryserver服务

mapred --daemon start historyserver

4、查看HDFS Web页面

http://192.168.10.25:9870/
其中,192.168.10.25为服务器hadoop1的IP地址。

5、查看YARN Web页面

http://192.168.10.27:8088/
其中,192.168.10.27为服务器hadoop2的IP地址。
在这里,我发现8088端口未开启,然后执行jps发现resourcemanager未启动
然后手动将 resourcemanager进行开启

/usr/local/hadoop-3.2.2/sbin/yarn-daemon.sh start resourcemanager

6.日志查看

相关日志可以在/data/hadoop/logs进行查看

这篇关于基于CentOS7的Hadoop3.2.2完全分布式集群部署记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243210

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

HDU 2159 二维完全背包

FATE 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他能