北京宽带接入欢迎您!
您当前位置:首页 >> 智能组网 >> 综合布线 >> 运维服务
运维服务_北京宽带专线接入、手机信号覆盖、网络监控维修、IT外包

一、基于Apache hadoop搭建高可用、高安全的大数据中台

1.4虚拟机规划1.4.1虚拟机规划我的虚拟机IP、主机名规划如下表所示(共8台服务器 & 3个虚拟IP)。# 两台IPA(Kerberos KDC) 服务器192.168.1.101 ipa01.wanfeng169.com ipa01192.168.1.102 ipa02.wanfeng169.com ipa02# Hadoop 集群服务器192.168.1.103 master01.wanfeng169.com master01192.168.1.10..

13581623859 立即咨询

快速申请办理

称       呼 :
手机号码 :
备       注:

一、基于Apache hadoop搭建高可用、高安全的大数据中台

发布时间:2024-05-30 热度:360

1.4 虚拟机规划

1.4.1 虚拟机规划

我的虚拟机IP主机名规划如下表所示(共8台服务器 & 3个虚拟IP)。

# 两台IPA(Kerberos KDC) 服务器

192.168.1.101 ipa01.wanfeng169.com ipa01

192.168.1.102 ipa02.wanfeng169.com ipa02

 

# Hadoop 集群服务器

192.168.1.103 master01.wanfeng169.com master01

192.168.1.104 master02.wanfeng169.com master02

192.168.1.105 worker01.wanfeng169.com worker01

192.168.1.106 worker02.wanfeng169.com worker02

192.168.1.107 worker03.wanfeng169.com worker03

 

# Hadoop 客户端服务器

192.168.1.108 client01.wanfeng169.com client01

 

# VIP(虚拟IP,该IP不应该被物理机占用)

192.168.1.120 # 用于Postgres数据库高可用

192.168.1.121 # FreeIPA LDAP url 高可用(负载均衡)

192.168.1.123 # 用于Ranger admin 高可用(负载均衡)

注意:

1. 所有虚拟机操作系统磁盘均为200G;操作系统版本均为 CentOS 7.9

2. Hadoop集群的两台 Master 节点 另加两块200G 的磁盘,用于存放 HDFS NameNode元数据等;三台 Worker 节点 另加两块300G 的磁盘,用于存放 HDFS数据Kafka数据等;client01 节点另加一块 200G 的磁盘,用于各相关软件的开发测试等;

3. 由于之前主机域名是用的 wanfeng168.com,但在安装 FreeIPA的时候,发现该域名已经被占用,所以后来修改为 wanfeng169.com,所以如果后续有相关图中发现wanfeng168.com的主机域名链接,将其视为 wanfeng169.com即可,我就不去批量替换相关图,再来实战一把了。

详细如下表:

主机名

IP

CPU

内存

磁盘

大数据相关服务进程

ipa01

192.168.1.101

1vCore

4G

1*200


ipa02

192.168.1.102

1vCore

4G

1*200


master01

192.168.1.103

4vCore

24G

3*200

NN,RM,JN,ZK,HM,HS2,HMS

master02

192.168.1.104

4vCore

24G

3*200

NN,RM,JN,ZK,HM,HS2,HMS

worker01

192.168.1.105

4vCore

24G

1*200+2*300

DN,NM,JN,ZK,HR,KFK,

worker02

192.168.1.106

4vCore

16G

1*200+2*300

DN,NM,HR,KFK

worker03

192.168.1.107

4vCore

16G

1*200+2*300

DN,NM,HR,KFK

client01

192.168.1.108

2vCore

8G

2*200


 

备注:

NNHDFS  NameNode 进程;

DNHDFS  DataNode 进程;

JNHDFS JournalNode 进程;

RMYarn  ResourceManager进程;

NMYarnNodeManager进程;

ZK: Zookeeper进程;

HM: Hbase HMaster 进程;

HR: Hbase  HRegionServer 进程;

KFKKafka进程;

HS2: Hive Server2进程;

HMS: Hive Metastore进程;

此外:master2节点还有 JHS(Job History Server)进程 & TM(Timeline Server)进程

1.1.1 虚拟机安装

   虚拟机安装请参考《Oracle VM VirtualBox添加虚拟机(CentOS7.9为例).docx》文档。

注意:建议所有虚拟机安装过程中设置同样的 root 密码,方便后续批量操作,提高效率。

安装完成后,我的虚拟机信息类似如下图所示(下面以 master01节点为例)

124.png

1.5 前期准备工作

注意:本节内容均需在所有节点执行!

我的操作系统内核信息如所示(所有机器内核信息一致)

 

1.5.1 配置各节点IP

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

 

如下图所示:这里以 ipa01 节点为例(修改完文件后,按键盘左上角的 Esc键,然后输入 :wq后,按Enter 保存文件),其他节点类似。

125.png

注意:  因为我的网络设备名为 enp0s3,故其配置文件对应为  /etc/sysconfig/network-scripts 目录下的 ifcfg-enp0s3,如果您的网络设备名不一样,请灵活编辑对应的网络设备配置文件。可以用 ip a命令查看所有的网络设备信息。

 

1.5.2升级操作系统相关RPM

执行如下命令,升级操作系统相关RPM,并安装 wget & net-tools包,方便后续下载相关软件或者查看端口监听情况或者执行killall 命令等。

yum -y upgrade

yum -y install wget

yum -y install net-tools

yum -y install psmisc

 

升级后,我的所有服务器操作系统内核信息类似如下:

[root@ipa01 software]# uname -a

Linux ipa01 3.10.0-1160.118.1.el7.x86_64 #1 SMP Wed Apr 24 16:01:50 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

 

[root@master01 ~]# cat /etc/redhat-release

CentOS Linux release 7.9.2009 (Core)

注意:原来的内核版本 “3.10.0-1160.114.2.el7.x86_64”,在安装FreeIPA的时候好像有bug,不建议使用该版本再去折腾浪费精力。

1.5.3 修改 /etc/hosts 文件

vi /etc/hosts

 

添加如下内容

# 两台IPA(Kerberos KDC) 服务器

192.168.1.101 ipa01.wanfeng169.com ipa01

192.168.1.102 ipa02.wanfeng169.com ipa02

 

# Hadoop 集群服务器

192.168.1.103 master01.wanfeng169.com master01

192.168.1.104 master02.wanfeng169.com master02

192.168.1.105 worker01.wanfeng169.com worker01

192.168.1.106 worker02.wanfeng169.com worker02

192.168.1.107 worker03.wanfeng169.com worker03

 

# Hadoop 客户端服务器

192.168.1.108 client01.wanfeng169.com client01

 

 

1.5.4 批量修改服务器主机名

在所有服务器上执行如下命令修改主机名

# 1. 批量修改主机名

local_ip=$(ip a|grep "192.168.1"|awk '{print $2}'|awk -F '/' '{print $1}');cat /etc/hosts |grep "$local_ip "|awk '{print $3}' > /etc/hostname;

cat /etc/hostname;

cat /etc/hostname|xargs hostname

 

# 2. 验证修改

hostname

hostname -f

我的操作输出类似如下

[root@localhost ~]# local_ip=$(ip a|grep "192.168.1"|awk '{print $2}'|awk -F '/' '{print $1}');cat /etc/hosts |grep "$local_ip "|awk '{print $3}' > /etc/hostname;

[root@localhost ~]# cat /etc/hostname

ipa01

[root@localhost ~]# cat /etc/hostname|xargs hostname

[root@localhost ~]# hostname

ipa01

[root@localhost ~]# hostname -f

ipa01.wanfeng169.com

 

1.5.5禁用ipv6

注意:在集群所有服务器(ipa服务器除外)执行如下代码,禁用ipv6

is_added=$(cat /etc/sysctl.conf|grep -v "^#"|grep "net.ipv6.conf.all.disable_ipv6"|wc -l);

if [ $is_added -eq 0 ]; then

cat << EOF >> /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 0

EOF

fi

cat /etc/sysctl.conf|grep -v "^#"|grep "net.ipv6.conf";

我的操作输出类似如下图

126.png 

1.5.6 禁用防火墙

注意:简单起见,这里禁用所有服务器的防火墙。真正生产环境一般不禁用防火墙,而是开放每个组件相关的端口。

执行如下命令禁用防火墙

systemctl disable firewalld

service firewalld stop

 

1.5.7禁用selinux

执行如下命令禁用 selinux

# 修改配置文件

sed -i 's/=enforcing/=disabled/g' /etc/selinux/config;

 

# 临时修改,以规避重启操作系统

setenforce 0;

 

# 验证修改

cat /etc/selinux/config|grep -v "^#"|grep "SELINUX="

 

我的操作输出类似如下图

127.png 

1.5.8配置最大打开文件句柄数

vi /etc/security/limits.conf # 添加如下内容

* soft nofile 65535

* hard nofile 65535

 

 

1.5.9 chrony时钟同步

注意1对大数据集群来说,时钟同步非常重要,如果节点之间时钟不一致,运行任务的时候,很容易导致任务运行失败。

注意2这里两台IPA服务器当作时钟服务器,同步阿里云的时钟。而其他节点同步这两个节点的时钟。

执行如下命令,安装 chrony 相关包

sudo yum -y install chrony

 

执行类似如下命令启动 chronyd 服务

sudo systemctl start chronyd

sudo systemctl enable chronyd

 

然后编辑两台ipa服务器的 /etc/ntp.conf  配置文件,以同步阿里云服务器的时钟到本机,需要修改的内容如下:

# server 0.centos.pool.ntp.org iburst

# server 1.centos.pool.ntp.org iburst

# server 2.centos.pool.ntp.org iburst

# server 3.centos.pool.ntp.org iburst

server ntp1.aliyun.com iburst

server ntp2.aliyun.com iburst

server ntp3.aliyun.com iburst

 

# Allow NTP client access from local network.

allow 192.168.1.0/24

 

# Serve time even if not synchronized to a time source.

local stratum 10

 

接着编辑其他服务器的 /etc/ntp.conf  配置文件,以同步两台ipa服务器的时钟到本机,需要修改的内容如下:

# server 0.centos.pool.ntp.org iburst

# server 1.centos.pool.ntp.org iburst

# server 2.centos.pool.ntp.org iburst

# server 3.centos.pool.ntp.org iburst

server ipa01.wanfeng169.com iburst

server ipa02.wanfeng169.com iburst

 

# Allow NTP client access from local network.

allow 192.168.1.0/24

 

# Serve time even if not synchronized to a time source.

local stratum 10

 

最后,我们重启一下 chronyd 服务,然后验证修改是否已经生效,类似如下

[root@master01 ~]# systemctl restart chronyd

[root@master01 ~]# chronyc sources -v

210 Number of sources = 2

 

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.

 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,

| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.

||                                                 .- xxxx [ yyyy ] +/- zzzz

||      Reachability register (octal) -.           |  xxxx = adjusted offset,

||      Log2(Polling interval) --.      |          |  yyyy = measured offset,

||                                \     |          |  zzzz = estimated error.

||                                 |    |           \

MS Name/IP address         Stratum Poll Reach LastRx Last sample              

===============================================================================

^* ipa01.wanfeng169.com          2   6    17     1  +5363us[+5322us] +/-   47ms

^+ ipa02.wanfeng169.com          2   6    17     1    -12ms[  -12ms] +/-  104ms

 

1.5.10 磁盘格式化&挂载

 

1.5.10.1 磁盘格式化

执行如下命令格式化磁盘

# 1. master01 & master02 &  worker01 ~ worker03 五台服务器执行

fdisk -l

fdisk /dev/sdb

fdisk /dev/sdc

mkfs.ext4 /dev/sdb1

mkfs.ext4 /dev/sdc1

mkdir -p /disk1;

mkdir -p /disk2;

mount /dev/sdb1 /disk1

mount /dev/sdc1 /disk2

 

# 2. client01 服务器执行

fdisk -l

fdisk /dev/sdb

mkfs.ext4 /dev/sdb1

mkdir -p /disk1;

mount /dev/sdb1 /disk1

1.5.10.2 编写挂载磁盘信息到 /etc/fstab的脚本

vi /root/add_mount_disk_info.sh # 内容如下

#!/bin/bash

mount_sdb1="/disk1"

mount_sdc1="/disk2"

fs_tab_file=/etc/fstab;

 

rand_str=$(echo $RANDOM|md5sum|awk '{print $1}')

tmp_disk_file="/tmp/local_disk${rand_str}.info";

blkid|grep -E "sdb1|sdc1"> $tmp_disk_file;

sed -i 's/: UUID=/ /g' $tmp_disk_file;

sed -i 's/TYPE=//g' $tmp_disk_file;

sed -i 's/\/dev\///g' $tmp_disk_file;

sed -i 's/"//g' $tmp_disk_file;

 

while read line

do

  # echo $line

  dev_name=`echo "$line"|awk '{print $1}'`

  dev_uuid=`echo "$line"|awk '{print $2}'`

  dev_ftype=`echo "$line"|awk '{print $3}'`

  echo "DevName:${dev_name}"

 

  is_added=$(cat $fs_tab_file|grep -v "^#"|grep "${dev_uuid}"|wc -l)

  echo "isAdded:${is_added}"

  if [ $is_added -eq 0 ] && [ "$dev_name" == "sdb1" ]; then

    dev_mount_dir=${mount_sdb1}

    echo "UUID=${dev_uuid} ${dev_mount_dir} ${dev_ftype} defaults,noatime 0 0" >> $fs_tab_file;

  elif [ $is_added -eq 0 ] && [ "$dev_name" == "sdc1" ]; then

    dev_mount_dir=${mount_sdc1}

    echo "UUID=${dev_uuid} ${dev_mount_dir} ${dev_ftype} defaults,noatime 0 0" >> $fs_tab_file;

  fi

done < $tmp_disk_file

rm -rf $tmp_disk_file

 

1.5.10.3 执行挂载磁盘信息到 /etc/fstab的脚本

# 1. 执行挂载磁盘信息到 /etc/fstab的脚本

sh /root/add_mount_disk_info.sh

 

# 2. 检查是否已经添加挂载磁盘信息到 /etc/fstab

cat /etc/fstab|grep -v "^#"|grep -E "/disk1|/disk2"

 

1.5.11 Java安装

注意:在集群所有服务器安装 Javaipa服务器不要安装java,因为在安装ipa-server包的时候会自动安装openJDK。如果手动安装java可能反而导致执行ipa-server-install的时候报错)。

1.5.11.1 Java下载

Jdk 1.8 下载地址是 https://www.oracle.com/java/technologies/downloads/#java8

我这里下载 jdk-8u411-linux-x64.tar.gz文件 /disk1/software/jdk/ 目录下,下载后将其解压到 /usr/java 目录下。

1.5.11.2 Java安装

Java安装详细操作类似如下:

# 1. 创建相关目录

mkdir -p /disk1/software/jdk/;

mkdir -p /usr/java/;

 

# 2. copy jdk-8u333-linux-x64.tar.gz 文件到各服务器的 /disk1/software/jdk 目录中

 

# 3. 解压 jdk 文件

cd /disk1/software/jdk/;

tar -xvf ./jdk-8u333-linux-x64.tar.gz -C /usr/java/;

cd /usr/java/;

ln -s ./jdk1.8.0_333 ./latest

 

# 4. vi /etc/profile # 添加如下内容 # 配置 Java 环境变量

# java env

export JAVA_HOME=/usr/java/latest

export PATH=$PATH:$JAVA_HOME/bin

 

# 5. 验证安装

source /etc/profile;

which java;

which javac;

java -version;

javac -version;

 

# 6. 配置一下jce

## 即下载 jce_policy-8.zip 文件,替换一下原来jdk中相关jar 包即可

 

 

1.5.12 避免ssh首次登录其他机器要输入yes

执行如下操作,以避免首次ssh登录远程主机,需要校验的问题

# 1. 修改

sed -i 's/#   StrictHostKeyChecking ask/StrictHostKeyChecking no/g' /etc/ssh/ssh_config

 

# 2. 检查

cat /etc/ssh/ssh_config|grep "StrictHostKeyChecking"

 

 

1.6 备份所有虚拟机

至此所有前期准备工作基本OK,此时我们可以关闭所有虚拟机,然后将所有虚拟机目录备份一下。比如我将 master01 虚拟机备份为 master01.beforeInstall

1.7 大数据相关软件版本选择

# 1. Zookeeper 3.8.4

# 2. Hadoop 3.3.6

# 3. Hbase 1.4.8

# 4. Kafka 3.6.2

# 5. Spark 3.5.1

# 6. Flink 1.19.0

# 7. Hive 4.0.0

# 8. Tez 0.10.3

# 9. Solr 8.11.3

# 10. Ranger 2.4.0

 

1.8 各组件相关服务对应的用户&用户组

各组件相关服务对应的用户&用户组是严格参考CDP产品规划的只是Hadoop在启用Kerberos之前,其HDFS&Yarn相关服务均在hadoop用户下启动链接如下

https://docs.cloudera.com/cdp-private-cloud-upgrade/latest/upgrade-hdp/topics/cm_sg_cm_users_principals_HDP2.html

这里我就不冗余列表了。

注意:后续在安装相关组件的过程中,创建其操作系统用户的时候,我只是简单配置了一下其密码,安全起见:建议真正生产环境建议密码稍微复杂无规律一点,并记录到相关文档



关闭窗口
上一篇:一、基于Apache hadoop搭建高可用、高安全的大数据中台
下一篇:没有了!

相关阅读

一、基于Apache hadoop搭建高可用、高安全的大数据中台
一、基于Apache hadoop搭建高可用、高安全的大数据中台

1.4虚拟机规划1.4.1虚拟机规划我的虚拟机IP、主机名规划如下表所示(共8台服务器 & 3个虚拟IP)。# 两台IPA(Kerberos KDC) 服务器192.168.1.101 ipa01.wanfeng169.com ipa01192.168.1.102 ipa02.wanfeng169.com ipa02# Hadoop 集群服务器192.168.1.103 master01.wanfeng169.com master01192.168.1.10...

一、基于Apache hadoop搭建高可用、高安全的大数据中台
一、基于Apache hadoop搭建高可用、高安全的大数据中台

1.3Oracle VM VirtualBox安装1.3.1下载Oracle VM VirtualBox软件打开https://www.virtualbox.org/网址,然后点击页面左栏的“Downloads”,将跳转到https://www.virtualbox.org/wiki/Downloads页面( 默认将出现下载最新的版本,我这里显示的是 7.0.16 版本),类似如...

一、主机规划----基于Apache hadoop搭建高可用、高安全的大数据中台
一、主机规划----基于Apache hadoop搭建高可用、高安全的大数据中台

1.1我的Windows宿主机配置1.1.1硬件配置总览1.1.2硬盘相关配置注意:共三块SSD磁盘:1*1T + 2*2T,下图是第一块1T磁盘的详细信息。...

一、主机规划----基于Apache hadoop搭建高可用、高安全的大数据中台
一、主机规划----基于Apache hadoop搭建高可用、高安全的大数据中台

1.1简介Apache Hadoop从2012年发布的1.0.1 版本以来已经有12个年头了,我亦从原来的信心满满到现在的白发苍苍。由于阿里云EMR、华为云MRS、腾讯云EMR等各种云大数据产品迅速占领市场,再加上CDH、HDP、CDP的不再开源。我似乎已经忘却曾经几时我还能很耐心的手工搭建一套高可用、高安全、高性能、低成本、...



官方微信公众号

集团总部400-888-3859

北京市大兴区经济开发区科苑路9号3号楼三层Y532室

北京分部010-65538022

北京市朝阳区三里屯sohu3号楼F1206

上海分部021-89685532

上海市陆家嘴金融中心