Hadoop生态圈集群部署(完整版)

2023-11-03

软件 版本
Mysql 5.7
Java 1.8.0_241
Hadoop 3.3.0
Zookeeper 3.4.6
Hive 3.1.2
Flink 1.14.5
Hudi 0.11.1
Doris 1.1.0
Dinky 0.6.6
Flink CDC 2.2.0
Presto 0.261
Hue 4.1.0

1. Hadoop集群部署

1.1 集群安装

1)上传Hadoop安装包到 /opt/software目录下

2)解压安装文件到/opt/server下面

tar -zxvf hadoop-3.3.0.tar.gz -C /opt/server/

3)将 Hadoop 添加到环境变量

#HADOOP_HOME
export HADOOP_HOME=/opt/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

4)让修改后的文件生效

source /etc/profile

5)测试是否安装成功

hadoop version

6)Hadoop目录结构

[root@node1 hadoop-3.3.0]$ ll
总用量 176
drwxr-xr-x. 2 root root    183 912 2019 bin
drwxr-xr-x. 3 root root     20 912 2019 etc
drwxr-xr-x. 2 root root    106 912 2019 include
drwxr-xr-x. 3 root root     20 912 2019 lib
drwxr-xr-x. 4 root root    288 912 2019 libexec
-rw-rw-r--. 1 root root 147145 94 2019 LICENSE.txt
-rw-rw-r--. 1 root root  21867 94 2019 NOTICE.txt
-rw-rw-r--. 1 root root   1366 94 2019 README.txt
drwxr-xr-x. 3 root root   4096 912 2019 sbin
drwxr-xr-x. 4 root root     31 912 2019 share

重要目录

① bin 目录:存放对 Hadoop 相关服务(hdfs, yarn, mapred)进行操作的脚本

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

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

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

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

7)配置文件说明

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

① 默认配置文件:

要获取的默认文件 文件存放在 Hadoop 的 jar 包中的位置
[core-default.xml] hadoop-common-3.1.3.jar/core-default.xml
[hdfs-default.xml] hadoop-hdfs-3.1.3.jar/hdfs-default.xml
[yarn-default.xml] hadoop-yarn-common-3.1.3.jar/yarn-default.xml
[mapred-default.xml] hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml

② 自定义配置文件:

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

1.2 配置集群

  • 核心配置文件

​ 配置 core-site.xml

cd $HADOOP_HOME/etc/hadoop
vim core-site.xml

​ 文件内容如下:

<configuration>
    <!-- 指定 NameNode 的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
    </property>
    <!-- 指定 hadoop 数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/server/hadoop-3.3.0/data</value>
    </property>
    <!-- 配置 HDFS 网页登录使用的静态用户为 root -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
</configuration>
  • HDFS 配置文件

​ 配置 hdfs-site.xml

vim hdfs-site.xml

​ 文件内容如下:

<configuration>
    <!-- nn web 端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>node1:9870</value>
    </property>
    <!-- 2nn web 端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node3:9868</value>
    </property>
</configuration>
  • YARN 配置文件

​ 配置 yarn-site.xml

vim yarn-site.xml

​ 文件内容如下:

<configuration>
    <!-- 指定 MR 走 shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定 ResourceManager 的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node2</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_HOM</value>
    </property>
</configuration>
  • MapReduce 配置文件

​ 配置 mapred-site.xml

vim mapred-site.xml

​ 文件内容如下:

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

在集群上分发配置好的 Hadoop

xsync /opt/server/hadoop-3.3.0

配置 workers

cd /opt/server/hadoop-3.3.0/etc/hadoop
vim workers

在该文件中增加如下内容:(注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行)

node1
node2
node3

同步所有节点配置文件

xsync workers

1.3 群起集群

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

hdfs namenode -format

初始化成功后会产生data和logs两个文件夹

image-20230220165618836

  • 启动 HDFS
cd /opt/server/hadoop-3.3.0
sbin/start-dfs.sh

image-20230220170042905

原因:如果你的Hadoop是另外启用其它用户来启动,记得将root改为对应用户

在/hadoop/sbin路径下:将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数:

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

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

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

重新启动HDFS

image-20230220171023996

解决方法:在hadoop-env.sh中,再显示地重新声明一遍JAVA_HOME(所有节点)

image-20230220171002621

重启HDFS

image-20230220171202906

  • 在配置了 ResourceManager 的节点(node2) 启动 YARN
sbin/start-yarn.sh

Web 端查看 HDFS 的 NameNode

​ (a)浏览器中输入:

http://node1:9870

​ (b)查看 HDFS 上存储的数据信息

image-20230220171539554

Web 端查看 YARN 的 ResourceManager

​ (a)浏览器中输入:

http://node2:8088

​ (b)查看 YARN 上运行的 Job 信息

image-20230220171622674

1.4 配置历史服务器

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

1) 配置 mapred-site.xml

vim mapred-site.xml

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

    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>
    <!-- 历史服务器 web 端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>

2)分发配置

xsync mapred-site.xml

3)在 node1 启动历史服务器

[reader@node1 hadoop]$ mapred --daemon start historyserver

# 关闭历史服务器
[reader@node1 hadoop]$ mapred --daemon stop historyserver

4)查看历史服务器是否启动

[reader@node1 hadoop]$ jps

image-20230220172359097

5)查看 JobHistory

http://node1:19888/jobhistory

image-20230220172433347

1.5 配置日志的聚集

日志聚集概念:应用运行完成以后,将程序运行日志信息上传到 HDFS 系统上。

日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。

注意:开启日志聚集功能,需要重新启动 NodeManager、ResourceManager和HistoryServer。

开启日志聚集功能具体步骤如下:

1)配置 yarn-site.xml

vim yarn-site.xml

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

    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://node1:19888/jobhistory/logs</value>
    </property>
    <!-- 设置日志保留时间为 7 天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>

2)分发配置

xsync yarn-site.xml

3)关闭 NodeManager 、ResourceManager和HistoryServer

sbin/stop-yarn.sh
mapred --daemon stop historyserver

4)启动 NodeManager 、ResourceManage和HistoryServer

start-yarn.sh
mapred --daemon start historyserver

1.6 集群启动/停止方式总结

1)各个模块分开启动/停止(配置 ssh 是前提)— 常用

(1)整体启动/停止 HDFS

start-dfs.sh/stop-dfs.sh

(2)整体启动/停止 YARN

start-yarn.sh/stop-yarn.sh

2)各个服务组件逐一启动/停止

(1)分别启动/停止 HDFS 组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

(2)启动/停止 YARN

yarn --daemon start/stop resourcemanager/nodemanager

1.7 集群常用脚本

1)Hadoop 集群启停脚本(包含 HDFS,Yarn,Historyserver):hdp

cd ~/bin
vim hdp

输入如下内容:

#!/bin/bash

if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi

case $1 in
"start")
        echo " =================== 启动 hadoop集群 ==================="

        echo " --------------- 启动 hdfs ---------------"
        ssh node1 "/opt/server/hadoop-3.3.0/sbin/start-dfs.sh"
        echo " --------------- 启动 yarn ---------------"
        ssh node2 "/opt/server/hadoop-3.3.0/sbin/start-yarn.sh"
        echo " --------------- 启动 historyserver ---------------"
        ssh node1 "/opt/server/hadoop-3.3.0/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="

        echo " --------------- 关闭 historyserver ---------------"
        ssh node1 "/opt/server/hadoop-3.3.0/bin/mapred --daemon stop historyserver"
        echo " --------------- 关闭 yarn ---------------"
        ssh node2 "/opt/server/hadoop-3.3.0/sbin/stop-yarn.sh"
        echo " --------------- 关闭 hdfs ---------------"
        ssh node1 "/opt/server/hadoop-3.3.0/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

保存后退出,然后赋予脚本执行权限

chmod +x hdp

2)查看三台服务器 Java 进程脚本:jpsall

vim jpsall

输入如下内容:

#!/bin/bash

for host in node1 node2 node3
do
        echo =============== $host ===============
        ssh $host /usr/java/jdk1.8.0_181-cloudera/bin/jps
done

保存后退出,然后赋予脚本执行权限

chmod +x jpsall

1.8 常用端口号说明

端口名称 Hadoop2.x Hadoop3.x
NameNode 内部通信端口 8020 / 9000 8020 / 9000/9820
NameNode HTTP UI 50070 9870
MapReduce 查看执行任务端口 8088 8088
历史服务器通信端口 19888 19888

2. Zookeeper集群部署

1)在node1主机上,解压zookeeper的压缩包到/opt/server路径下去,然后准备进行安装

tar -zxvf zookeeper-3.4.6.tar.gz -C /opt/server/

2)修改配置文件

cd /opt/server/zookeeper-3.4.6/conf/
cp zoo_sample.cfg zoo.cfg
mkdir -p /opt/server/zookeeper-3.4.6/zkdatas/
vim  zoo.cfg

3)修改以下内容

#Zookeeper的数据存放目录
dataDir=/opt/server/zookeeper-3.4.6/zkdatas
# 保留多少个快照
autopurge.snapRetainCount=2
# 日志多少小时清理一次
autopurge.purgeInterval=1
# 集群中服务器地址
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

4)添加myid配置

在node1主机的/export/server/zookeeper-3.4.6/zkdatas/这个路径下创建一个文件,文件名为myid ,文件内容为1

echo 1 > /opt/server/zookeeper-3.4.6/zkdatas/myid

5)安装包分发并修改myid的值

在node1主机上,将安装包分发到其他机器

第二台机器上修改myid的值为2

echo 2 > /export/server/zookeeper-3.4.6/zkdatas/myid

第三台机器上修改myid的值为3

echo 3 > /export/server/zookeeper-3.4.6/zkdatas/myid

6)配置Path环境变量

#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/server/zookeeper-3.4.6
export PATH=:$ZOOKEEPER_HOME/bin:$PATH

7)三台机器启动zookeeper服务

/opt/server/zookeeper-3.4.6/bin/zkServer.sh start

8)三台主机分别查看启动状态

/opt/server/zookeeper-3.4.6/bin/zkServer.sh status

9)集群shell脚本

#!/bin/bash

case $1 in
"start"){
	for i in node1 node2 node3
	do
        echo ---------- zookeeper $i 启动 ------------
		ssh $i "/opt/server/zookeeper-3.4.6/bin/zkServer.sh start"
	done
};;
"stop"){
	for i in node1 node2 node3
	do
        echo ---------- zookeeper $i 停止 ------------    
		ssh $i "/opt/server/zookeeper-3.4.6/bin/zkServer.sh stop"
	done
};;
"status"){
	for i in node1 node2 node3
	do
        echo ---------- zookeeper $i 状态 ------------    
		ssh $i "/opt/server/zookeeper-3.4.6/bin/bin/zkServer.sh status"
	done
};;
esac

3. Hive集群部署

1)上传压缩包到/export/software目录里,并解压安装包

# --------------------Hive安装配置----------------------
cd /opt/software/
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/server
cd /opt/server
mv apache-hive-3.1.2-bin hive-3.1.2

# 解决hadoop、hive之间guava版本差异
cd /opt/server/hive-3.1.2
rm -rf lib/guava-19.0.jar
cp /opt/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

# 添加mysql jdbc驱动到hive安装包lib/文件下
mysql-connector-java-5.1.41-bin.jar

# 修改hive环境变量文件 添加HADOOP_HOME
cd /opt/server/hive-3.1.2/conf/
mv hive-env.sh.template hive-env.sh

vim hive-env.sh
HADOOP_HOME=/opt/server/hadoop-3.3.0
export HIVE_CONF_DIR=/opt/server/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/opt/server/hive-3.1.2/lib

2)新增hive-site.xml 配置mysql等相关信息

vim hive-site.xml

3)添加以下内容:

<configuration>
    <!-- 存储元数据mysql相关配置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value> jdbc:mysql://node2:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>

    <!-- H2S运行绑定host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>node1</value>
    </property>

    <!-- 远程模式部署metastore 服务地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://node1:9083</value>
    </property>

    <!-- 关闭元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>

    <!-- 关闭元数据存储版本的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
</configuration>

4)初始化metadata(只需要在配置完Hive之后进行一次操作)

# 初始化成功会在mysql中创建74张表
cd /opt/server/hive-3.1.2
bin/schematool -initSchema -dbType mysql -verbos

# 添加环境变量
vim /etc/profile

export HIVE_HOME=/opt/server/hive-3.1.2
export PATH=:$HIVE_HOME/bin:$PATH

# 让环境变量生效
source /etc/profile

# -----------------Metastore 和 Hiveserver2启动----
nohup /opt/server/hive-3.1.2/bin/hive --service metastore  2>&1 &
nohup /opt/server/hive-3.1.2/bin/hive --service hiveserver2 2>&1 &

# 验证是否安装成功!
在Linux中输入hive命令,直接回车,出现一个终端,在该终端中可以输入sql命令:
show databases;

5)Beeline Client

hive经过发展,推出了第二代客户端beeline,但是beeline客户端不是直接访问metastore服务的,而是需要单独启动hiveserver2服务。

在node1的/export/server/hadoop-3.3.0/etc/hadoop目录下,修改core-site.xml,在该文件中添加以下配置,实现用户代理:

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>

将修改好的core-site.xml文件分发到node2和node3,然后重启Hadoop(stop-all.sh start-all.sh)

在hive运行的服务器上,确保已经启动metastore服务和hiveserver2服务,如果没有启动,则执行以下语句:

nohup /opt/server/hive-3.1.2/bin/hive --service metastore  2>&1 &
nohup /opt/server/hive-3.1.2/bin/hive --service hiveserver2 2>&1 &

在node1上使用beeline客户端进行连接访问。

beeline

根据提醒进行以下操作:
/opt/server/hive-3.1.2/bin/beeline

Beeline version 3.1.2 by Apache Hive
beeline> !connect jdbc:hive2://node1:10000
Connecting to jdbc:hive2://node1:10000
Enter username for jdbc:hive2://node1:10000:root
Enter password for jdbc:hive2://node1:10000:123456

4. Kafka集群部署

4.1 Kafka集群架构及角色功能

img

Kafka中的每个角色以及对应的功能

  • 分布式主从架构【公平】:允许从节点选举成为主节点

  • 主:Kafka Broker 【Controller】

    • 是一种特殊的Broker,从所有Broker中选举出来的,负责普通Broker的工作
    • 负责管理所有从节点:Topic、分区和副本【负责决定一个分区的leader副本和follower副本】
    • 每次启动集群,会从所有Broker中选举一个Controller,由ZK实现
  • 从:Kafka Broker

    • 对外提供读写请求
    • 其他的Broker监听Controller在ZK中创建的临时节点,如果Controller故障,会重新从Broker选举一个新的Controller
  • ZK的功能

    • 辅助选举Controller:启动时所有Broker都会到Zk中创建临时节点,谁创建成功谁就是主节点
    • 存储Kafka元数据
  • Kafka 3.0版本新特性:可以摆脱ZK,独立运行了

  • 小结:理解Kafka集群架构及角色功能

4.2 Kafka分布式集群部署

1)下载解压安装

下载:http://archive.apache.org/dist/kafka/

上传到第一台机器

cd /opt/software/

解压

# 解压安装
tar -zxvf kafka_2.12-2.4.1.tgz -C /opt/server/
cd /opt/server/kafka_2.12-2.4.1/
# Kafka数据存储的位置
mkdir datas

2)修改配置

切换到配置文件目录

cd /opt/server/kafka_2.12-2.4.1/config

image-20230221082652491

修改server.properties:vim server.properties

#21行:唯一的 服务端id
broker.id=0
#60行:指定kafka的日志及数据【segment【.log,.index】】存储的位置
log.dirs=/opt/server/kafka_2.12-2.4.1/datas
#123行:指定zookeeper的地址
zookeeper.connect=node1:2181,node2:2181,node3:2181
#在最后添加两个配置,允许删除topic,当前kafkaServer的主机名
delete.topic.enable=true
host.name=node1

分发

xsync /opt/server/kafka_2.12-2.4.1/

第二台:server.properties

#21行:唯一的 服务端id
broker.id=1
#最后
host.name=node2

第三台:server.properties

#21行:唯一的 服务端id
broker.id=2
#最后
host.name=node3

添加环境变量

vim /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/server/kafka_2.12-2.4.1
export PATH=:$PATH:$KAFKA_HOME/bin
source /etc/profile

4.3 Kafka启动与关闭

1)启动Zookeeper

启动Kafka:只能启动当前节点

cd /opt/server/kafka_2.12-2.4.1/
bin/kafka-server-start.sh config/server.properties >>/dev/null 2>&1 &

# >>/dev/null 2>&1 将日志重定向到黑洞

关闭Kafka

bin/kafka-server-stop.sh 

2)封装Kafka启停脚本:kafka.sh

#!/bin/bash
KAFKA_HOME=/opt/server/kafka_2.12-2.4.1
case $1 in
"start"){
        for i in node1 node2 node3
        do
        echo ---------- kafka $i 启动 ------------
				/usr/bin/ssh $i "cd ${KAFKA_HOME};source /etc/profile;export JMX_PORT=9988;${KAFKA_HOME}/bin/kafka-server-start.sh ${KAFKA_HOME}/config/server.properties >>/dev/null 2>&1 &"
				echo "${host} started"
        done
};;
"stop"){
        for i in node1 node2 node3
        do
        echo ---------- zookeeper $i 停止 ------------
                /usr/bin/ssh $i "cd ${KAFKA_HOME};source /etc/profile;${KAFKA_HOME}/bin/kafka-server-stop.sh"
        done
};;
esac

  • 关闭,可能需要多等待一会,才看不到进程

5. HBase集群部署

1)上传HBASE安装包到第一台机器的/opt/software目录下

2)解压安装

tar -zxf hbase-2.1.0.tar.gz -C /opt/server/
cd /opt/server/hbase-2.1.0/

image-20230221145754995

3)修改配置

切换到配置文件目录下

cd /opt/server/hbase-2.1.0/conf/

修改hbase-env.sh:注意JDK的版本可能不一致

#28行
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
#125行
export HBASE_MANAGES_ZK=false

修改hbase-site.xml

cd /opt/server/hbase-2.1.0/
mkdir datas
vim conf/hbase-site.xml
    <property>
        <!-- 指定hbase中临时文件存储位置 -->    
        <name>hbase.tmp.dir</name>
        <value>/opt/server/hbase-2.1.0/datas</value>
    </property>
    <property>
        <!-- 指定hbase在hdfs中的存储位置 --> 
        <name>hbase.rootdir</name>
        <value>hdfs://node1:8020/hbase</value>
    </property>
    <property>
        <!-- 是否构建分布式hbase --> 
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <!-- 指定zookeeper地址 --> 
        <name>hbase.zookeeper.quorum</name>
        <value>node1,node2,node3</value>
    </property>
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>

修改regionservers

vim conf/regionservers
node1
node2
node3

4)配置环境变量

#HBASE_HOME
export HBASE_HOME=/opt/server/hbase-2.1.0
export PATH=:$PATH:$HBASE_HOME/bin

5)复制jar包

cp lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar lib/

6)分发

7)服务端启动与关闭

step1:启动HDFS【第一台机器】,注意一定要等HDFS退出安全模式再启动Hbase

hdp.sh start

step2:启动ZK

zk.sh start

step3:启动Hbase

start-hbase.sh

image-20230221151544230

step4:先关闭Hbase再关闭zk

stop-hbase.sh
zk.sh stop
hdp.sh stop

8)测试

访问Hbase Web UI【node1:16010】

image-20210524120224751

6. Flink on Yarn集群部署

1)关闭YARN的内存检查

# yarn-site.xml中添加配置
vim /opt/server/hadoop/etc/hadoop/yarn-site.xml

添加如下内容:

    <!-- 关闭yarn内存检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>	

2)配置Application最大的尝试次数

# yarn-site.xml中添加配置
vim /opt/server/hadoop/etc/hadoop/yarn-site.xml

添加如下内容:

    <property>
        <name>yarn.resourcemanager.am.max-attempts</name>
        <value>4</value>
    </property>

3)同步yarn-site.xml配置文件

cd /opt/server/hadoop/etc/hadoop
xsync yarn-site.xml

4)启动HDFS集群和YARN集群

[root@node1 ~]# hdp.sh start

5)添加HADOOP_CONF_DIR环境变量(集群所有机器

# 添加环境变量
 vim /etc/profile

添加内容:

export HADOOP_CONF_DIR=/opt/server/hadoop-3.3.0/etc/hadoop

环境变量生效

source /etc/profile

6)上传软件及解压

[root@node1 ~]# cd /opt/software/
上传软件包:flink-1.13.1-bin-scala_2.11.tgz

[root@node1 software]# tar -zxf flink-1.14.5-bin-scala_2.12.tgz -C /opt/server/	

7)将Flink依赖Hadoop 框架JAR包上传至/opt/server/flink-1.14.5/lib目录

image-20230221155640501

8)配置HA高可用,依赖Zookeeper及重试次数(node1操作)

# 修改配置文件
vim /opt/server/flink-1.14.5/conf/flink-conf.yaml

添加如下内容:

high-availability: zookeeper
high-availability.storageDir: hdfs://node1:8020/flink/yarn-ha/
high-availability.zookeeper.quorum: node1:2181,node2:2181,node3:2181
high-availability.zookeeper.path.root: /flink-yarn-ha
high-availability.cluster-id: /cluster_yarn

yarn.application-attempts: 10

9)集群所有机器,同步分发Flink 安装包,便于任意机器提交运行Flink Job。

10)启动Zookeeper集群

zk.sh start

11)测试

  • 准备测试数据,测试运行批处理词频统计WordCount程序
[root@node1 ~]# vim /opt/data/words.txt
  • 添加数据
spark python spark hive spark hive
python spark hive spark python
mapreduce spark hadoop hdfs hadoop spark
hive mapreduce
  • 数据文件上传
[root@node1 ~]# hdfs dfs -mkdir -p /wordcount/input/
[root@node1 ~]# hdfs dfs -put /root/words.txt /wordcount/input/
  • 执行以下命令
export HADOOP_CLASSPATH=`hadoop classpath`

/opt/server/flink-1.14.5/bin/flink run-application \
-t yarn-application \
-Djobmanager.memory.process.size=1024m \
-Dtaskmanager.memory.process.size=1024m \
-Dtaskmanager.numberOfTaskSlots=1 \
/opt/server/flink-1.14.5/examples/batch/WordCount.jar \
--input hdfs://node1:8020/wordcount/input

.14.5/conf/flink-conf.yaml


添加如下内容:

```properties
high-availability: zookeeper
high-availability.storageDir: hdfs://node1:8020/flink/yarn-ha/
high-availability.zookeeper.quorum: node1:2181,node2:2181,node3:2181
high-availability.zookeeper.path.root: /flink-yarn-ha
high-availability.cluster-id: /cluster_yarn

yarn.application-attempts: 10

9)集群所有机器,同步分发Flink 安装包,便于任意机器提交运行Flink Job。

10)启动Zookeeper集群

zk.sh start

11)测试

  • 准备测试数据,测试运行批处理词频统计WordCount程序
[root@node1 ~]# vim /opt/data/words.txt
  • 添加数据
spark python spark hive spark hive
python spark hive spark python
mapreduce spark hadoop hdfs hadoop spark
hive mapreduce
  • 数据文件上传
[root@node1 ~]# hdfs dfs -mkdir -p /wordcount/input/
[root@node1 ~]# hdfs dfs -put /root/words.txt /wordcount/input/
  • 执行以下命令
export HADOOP_CLASSPATH=`hadoop classpath`

/opt/server/flink-1.14.5/bin/flink run-application \
-t yarn-application \
-Djobmanager.memory.process.size=1024m \
-Dtaskmanager.memory.process.size=1024m \
-Dtaskmanager.numberOfTaskSlots=1 \
/opt/server/flink-1.14.5/examples/batch/WordCount.jar \
--input hdfs://node1:8020/wordcount/input
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hadoop生态圈集群部署(完整版) 的相关文章

随机推荐

  • 国庆的安排

    无其它尔 唯有学习备考
  • 多输入多输出

    文章目录 效果一览 文章概述 部分源码 参考资料 效果一览 文章概述 多输入多输出 Matlab基于长短期记忆网络LSTM的多输入多输出预测 长短期记忆网络LSTM的数据回归预测 评价指标包括 MAE MBE和R2等 代码质量极高 方便学习
  • JAVA好用的免费开发工具

    注 本文章软件皆为免费的开源软件 1 IDEA 社区版 下载地址 Download IntelliJ IDEA The Capable Ergonomic Java IDE by JetBrains 2 数据库管理工具 DBeaver 链接
  • WTM asp.net core应用程序在Ubuntu上和CentOS上部署

    wtm在Ubuntu上和CentOS上部署 项目发布 在Visual Studio中右击Web项目 选择发布 如下图 Ubuntu安装 net core运行时 Ubuntu我是用的Vmware虚拟机 版本是18 04 参考官方文档 如果要开
  • Centos环境下离线安装postgreSQL简易版

    一 安装背景 因为服务器是部署在内网环境的 所以在无法连接外网的环境下 安装一些软件就会显得比较麻烦 所以特地尝试了一下离线安装 话不多说 开始 二 下载数据库资源文件 进入postgreSQL官网 选择需要安装的pgsql版本等 这里以9
  • 【云原生之Docker实战】使用docker部署kodbox私有云

    云原生之Docker实战 使用docker部署kodbox私有云 一 kodbox介绍 1 kodbox简介 2 kodbox功能与特点 二 检查本地docker状态 1 检查docker版本 2 检查docker状态 三 安装kodbox
  • 2018数学建模A题的简单指导

    之前写过一篇博客 介绍如何使用差分格式求解热传导方程 今天打开博客 突然发现评论区被这篇文章霸屏了 询问实验室的小伙伴才知 原来是被可爱的建模学子们攻占了 经过简单的了解 发现今年建模的A题的核心就是求解一个热传导方程 因此之前所写文章的程
  • ARM处理器寻址方式

    往期推荐 ARM指令集 ARM汇编语言程序结构 Android与ARM处理器 反射调用Java层方法 寻址的概述 寻址是指寻找寄存器里存放的数据或者是地址里存放的数据并加以使用 寻址有以下八种方式 1 立即寻址 2 寄存器寻址 3 寄存器移
  • 生产者消费者异步调用

    场景 全量同步上游酒店数据 需要同步酒店数据量近百万 上游接口一家酒店需要调用2次接口才能获取完整的酒店数据 并且一次只能查询一家酒店 本地需要更新的表有9张表 7张百万级别 2张千万级别 如果一个一个酒店查询 然后更新就需要更新 近千万次
  • CSS的学习

    CSS 1 CSS 如何生效 内部样式表 内联样式 外部样式表 级联的优先级 2 颜色 尺寸 对齐 尺寸 对齐 颜色 3 盒子模型 4 边框与边距 5 定位 6 浮动 7 不透明度 8 溢出 9 组合选择器 后代选择器 子选择器 10 伪类
  • Docker 配置国内源加速(2023/05/14)

    Docker 配置国内源加速 2023 05 14 文章目录 Docker 配置国内源加速 2023 05 14 1 修改配置文件 2 重启 Docker 服务 3 查看是否成功 Docker 在拉取镜像时使用默认源速度会比较慢 因此需要配
  • 12款高质量的免费 HTML 网站模板下载

    这篇文章收集了12款高质量的免费HTML网页模板分享给大家 您可以免费下载使用 相信这些漂亮的HTML网页模板既能够帮助您节省大量的时间和精力 又能有很满意的效果 希望这些精美的免费HTML网页模板能帮助到您 Magicbox 演示 下载
  • 华为手机连电脑当摄像头用_怎么用华为手机当电脑摄像头?

    展开全部 1 首先 需要从网站上下载相应的软件 大家可以从百度里面搜索 魅色软件 然后将电脑PC版本和安卓手机版本的软件全部下载 并在电脑上和安卓手机上都安装上这个软件 2 然后打开并运行电脑上的魅色软件 然后与此同时运行安卓手机上的魅色软
  • 多方安全计算简介

    1 多方安全计算背景 多方安全计算的研究主要是针对无可信第三方的情况下 如何安全地计算一个约定函数的问题 多方安全计算是电子选举 门限签名以及电子拍卖等诸多应用得以实施的密码学基础 一个多方安全计算协议 如果对于拥有无限计算能力攻击者而言是
  • redis(error) NOAUTH Authentication required.

    报错原因 没有用密码登陆认证 解决 输入密码即可解决 auth 密码
  • 点云最小外包矩形计算

    1 原理介绍 一簇点云的最小外包矩形 Minimum Bounding Rectangle MBR 是指用一个矩形将该簇点云框起来 所有点云数据在矩形框内 如下图所示为一个矩形框刚好将点云数据全部包围 下面给出一种基于最大重叠度的最小外包矩
  • 录音转文字软件哪个好?这几款分享给你

    嗨朋友们 你是否曾经为了整理会议记录或是处理采访录音而烦恼不已 那些长篇大论的文字内容得一个个敲键盘实在是太耗时了 今天我要给你介绍一些超方便的录音转文字软件 它不仅简化了记录和整理的过程 还提供了更高效的工作方式 能够让你跟繁琐的打字工作
  • Qt 6.2 中 QML 工具有哪些新功能?

    QML 工具是发展最快的领域之一 自 Qt 5 15 以来添加了大量新功能 在这里 我们将展示静态分析和格式化 QML 领域的进展和未来计划 Qt开发主流库 Qtitan组件集 QtitanRibbon 下载试用 遵循Microsoft R
  • IOC源码刨析

    前言 Spring框架两大核心 IOC和AOP IOC 控制反转 把对象的创建 属性设置 初始化 销毁等工作交给Spirng的IOC容器去管理 解放程序员的劳动力 对象被注册到Spring的IOC容器中 使用的时候从容器中获取即可 非常方便
  • Hadoop生态圈集群部署(完整版)

    软件 版本 Mysql 5 7 Java 1 8 0 241 Hadoop 3 3 0 Zookeeper 3 4 6 Hive 3 1 2 Flink 1 14 5 Hudi 0 11 1 Doris 1 1 0 Dinky 0 6 6