~

承载平台

承载平台是YDJSIR的安装着Windows10 教育版的台式机上的HyperV虚拟机。该虚拟机利用虚拟交换机桥接到路由器上,而后连到南大校内网。

image-20220405151413615

性能方面,分配了QQBZ(i9 9900 ES版,以7核心超线程状态运行)的四个物理核心,宿主机内存双通道32GB,8GB静态全量分配给虚拟机。

为了方便团队协作,YDJSIR在路由器(网件R8000P)上部署了OpenVPN。队友可以通过OpenVPN的方式连到YDJSIR的宿舍内网,访问上述虚拟机和YDJSIR的NAS和软路由等服务。

所有对服务器的访问均通过SSH进行,该虚拟机不直接映射任何端口到校内网。

环境一览

软件版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.
├── flink-1.13.6-bin-scala_2.11.tgz
├── hadoop-2.7.4.tar.gz
├── install.sh # 宝塔面板
├── kafka_2.11-2.1.1.tgz
├── scala-2.11.12.rpm # 独立的Scala
├── spark-2.4.8-bin-without-hadoop.tgz # 有Scala没Hadoop
├── jdk-8u321-linux-x64.tar.gz
└── StarRocks-2.1.2.tar.gz
└── kafka_2.11-2.1.1.tgz
# 以上采用的是下载好文件而后解压或者rpm安装的方式
# 以下采用的是yum直接安装的方式
clickhouse-server: 22.3.3.44 (official build)
clickhouse-client: 22.3.3.44 (official build)

全部启动后jps查看如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@192 bin]# jps
30688 Kafka
2627 DataNode
2410 NameNode
7757 BrokerBootstrap
4718 Jps
2996 ResourceManager
3284 NodeManager
5428 StandaloneSessionClusterEntrypoint
5717 TaskManagerRunner
4309 ConsoleProducer
3606 Worker
30134 QuorumPeerMain
6969 StarRocksFE
2812 SecondaryNameNode
5660 TaskManagerRunner
3454 Master
1438 ConsoleConsumer

ConsoleConsumerConsoleProducer在实际使用时倒不一定要启动。

StarRocks最终没有被选用,除它以外其他的服务都会开机自启。

端口占用

由于这些应用有时候会随机选择一些高位端口,下面只列出相对固定的端口。

类别 用途 端口 是否可以网页查看 是否为默认端口
SSH SSH 22
MySQL 数据库 3306
aapanel 运维面板 7800 ==是==
Spark 主页端口 8080 ==是==
Worker1端口 8081 ==是==
submit时worker端口 4040 ==是==
接受任务端口 7077
Hadoop Namenode 50070 ==是==
SecondaryNamenode 50090 ==是==
HDFS 9000
yarn.resourcemanager.webapp.address 8099 ==是== ==否==
yarn.resourcemanager.scheduler.address 8076 ==否==
StarRocks fe网页面板 8030 ==是==
be网页面板 8040 ==是==
be_heart_port 9050
be_port 9060
MySQL-Connecter 9030
Flink 网页面板 8088 ==是==
Kafka broker 9092
zookeeper 2333 ==否==
ClickHouse http_port 8123 ==是==
tcp_port 9001 ==否==
mysql_port 9004
postgresql_port 9005

环境变量

/etc/profile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
JAVA_HOME=/usr/local/java1.8
JRE_HOME=/usr/local/java1.8/jre
HADOOP_HOME=/usr/local/hadoop
SPARK_HOME=/usr/local/spark
STARROCKS_HOME=/usr/local/StarRocks-2.1.2
FLINK_HOME=/usr/local/flink
KAFKA_HOME=/usr/local/kafka

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
PATH=$PATH:$HADOOP_HOME/bin:$SPARK_HOME/bin
PATH=$PATH:$STARROCKS_HOME/bin
PATH=$PATH:$FLINK_HOME/bin
PATH=$PATH:$KAFKA_HOME/bin
export PATH

配置文件

由于配置文件过多,仅和配置Java环境变量和端口相关的此处从略,仅列出重要项。

Hadoop
$HADOOP_HOME/etc/hadoop/core-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.1.17:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value >1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hdfs/data</value>
</property>
</configuration>
$HADOOP_HOME/etc/hadoop/mapred-site.xml
1
2
3
4
5
6
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
$HADOOP_HOME/etc/hadoop/yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> </property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.1.17:8099</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.1.17:8076</value>
</property>
<property>
<name>yarn.nodemanager.localizer.address</name>
<value>0.0.0.0:23344</value>
</property>
</configuration>

搭建过程与参考链接

虚拟化、系统安装和SSH配置

情况已在承载平台中描述,此处略。

配置环境变量

如前文所述。修改完后要执行如下命令。

1
source /etc/profile

aapanel面板搭建

从官网获取脚本,直接安装即可。数据库部分,首次加载面板时选择快速一键安装MySQL。用aapanel打开了系统所有端口。装好后显然该服务是默认启动的。

SparkHadoop搭建

先搭JDK1.8,而后是Hadoop(修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh配置JDK路径为/usr/local/java1.8,和上面提到的那四个xml文件,创建好HDFS对应的文件夹——体现在XML中并执行HDFS初始化hadoop namenode -format ),最后是Spark(修改$SPARK_HOME/conf/spark-env.sh,添加JDK路径和Hadoop路径相关信息)。

1
2
# $HADOOP_HOME/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/java1.8
1
2
3
4
5
6
7
# $SPARK_HOME/conf/spark-env.sh
export SPARK_LOCAL_IP=192.168.1.17
export JAVA_HOME=/usr/local/java1.8
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export SPARK_WORKER_MEMORY=2g

主要参考了如下链接。

https://ydjsir.com.cn/2021/10/17/initSpark/ (YDJSIR在《云计算》课上搭Spark的心得)

https://blog.csdn.net/isoleo/article/details/78394777

https://blog.csdn.net/walkcode/article/details/104208855

Hadoop部分参考了如下链接以防止与StarRocks端口冲突。具体配置详情查看上面的配置文件。

https://blog.csdn.net/Yuan_CSDF/article/details/122116270

设置开机启动的过程在后面。

image-20220409161838782

image-20220409162013468

image-20220409162100815

Scala搭建

直接装官网下载的rpm包。rpm装完即可。

image-20220409163926708

StarRocks搭建

完全按照官网文档进行。

https://docs.starrocks.com/zh-cn/main/quick_start/Deploy

image-20220409162223951

该服务没有设置开机自启,因为后面没有用到。

ClickHouse搭建

完全按照官网文档进行。

1
2
3
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
sudo yum install -y clickhouse-server clickhouse-client

为了防止与Hadoop的HDFS进行冲突,修改了tcp_port9001,并允许所有网络访问(否则只能本机)。

1
2
<tcp_port>9001</tcp_port>
<listen_host>0.0.0.0</listen_host>

设置开机启动的过程在后面。

Flink搭建

完全按照如下链接进行。

https://www.jianshu.com/p/bbaa8d72cfcf

image-20220409163304004

设置开机启动的过程在后面。

Kafka生产端搭建

完全按照如下链接进行。

https://www.cnblogs.com/qpf1/p/9161742.html

参考如下链接修改了配置。

https://blog.csdn.net/qq_37140416/article/details/106824442?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2.pc_relevant_aa&utm_relevant_index=4

都改为192.168.1.17的IP。且ZooKeeper监听的端口修改为2333。

image-20220409163345693

Kafka没有设置开机自启,启动过程如下。

1
2
3
nohup $KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties > zookeeper-run.log 2>&1 & # 启动ZooKeeper
nohup $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties > kafka-run.log 2>&1 & # 启动Kafka
$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper 192.168.1.17:2333 --replication-factor 1 --partitions 1 --topic mx # 仅需执行一次,创建过了就不用再创建了

设置服务开机自启

修改/etc/rc.d/rc.local,而后对该文件chmod +x /etc/rc.d/rc.local

1
2
/opt/shell/startSparkAndHadoop.sh 
/usr/local/flink/bin/start-cluster.sh # flink

/opt/shell/startSparkAndHadoop.sh

1
2
/usr/local/hadoop/sbin/start-all.sh
/usr/local/spark/sbin/start-all.sh

设置ClickHouse服务自启。

1
systemctl enable clickhouse-server