1、技术选型与前期准备

news2024/12/23 11:33:35

注意事项:框架选型尽量不要选择最新的框架,选择最新框架半年前左右的稳定版。

框架

旧版本

新版本

Hadoop

3.1.3

3.3.4

Zookeeper

3.5.7

3.7.1

MySQL

5.7.16

8.0.31

Hive

3.1.2

3.1.3(修改源码)

Flume

1.9.0

1.10.1

Kafka

3.0.0

3.3.1

Spark

3.0.0

3.3.1

DataX

3.0

3.0(master分支向前,修改源码)

Superset

1.5.3

2.0.0

DolphinScheduler

1.3.9

2.0.5

Maxwell

1.29.2

1.29.2(修改源码)

Flink

1.13.0

1.16.1

Redis

6.0.8

Hbase

2.4.11

ClickHouse

20.4.5.36-2

测试集群服务器规划 

服务名称

子服务

服务器

hadoop102

服务器

hadoop103

服务器

hadoop104

HDFS

NameNode

DataNode

SecondaryNameNode

Yarn

NodeManager

Resourcemanager

Zookeeper

Zookeeper Server

Flume(采集日志)

Flume

Kafka

Kafka

Flume

(消费Kafka日志)

Flume

Flume

(消费Kafka业务)

Flume

Hive

MySQL

MySQL

DataX

Spark

DolphinScheduler

ApiApplicationServer

AlertServer

MasterServer

WorkerServer

LoggerServer

Superset

Superset

Flink

ClickHouse

Redis

Hbase

服务数总计

20

11

12

前期准备工作

1、购买三台阿里云服务器

 修改三台服务器的hosts文件

vim /etc/hosts

172.16.94.130  hadoop102       hadoop102
172.16.94.131  hadoop103       hadoop103
172.16.94.132  hadoop104       hadoop104

配置mac本地的hosts文件

120.55.15.183    hadoop102
118.178.235.141  hadoop103
101.37.22.127    hadoop104

开通以下端口

因为采用了阿里云服务器,访问需要开通端口

服务

端口

Cloudera Manager Server(WebUI)

7180

HDFS NameNode(WebUI)

9870

SecondaryNameNode

9868

Yarn ResourceManager(WebUI)

8088

JobHistory Server(WebUI)

19888

HBase Master(WebUI)

16010

HiveServer2 (WebUI)

10002

HUE Server(WebUI)

8888/8889

Oozie Server

11000

Sentry Server

51000

Spark Master/Worker/History Server

18080/18081/18088

Kerberos

88

MySQL

3306

1.2、环境前期准备 (以下操作三台机子都要执行)

1)联网情况检测

[root@hadoop102 ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.50.188) 56(84) bytes of data.
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=1 ttl=50 time=15.8 ms
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=2 ttl=50 time=15.8 ms
64 bytes from 180.101.50.188 (180.101.50.188): icmp_seq=3 ttl=50 time=15.8 ms

 

2)安装epel-release

注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方 repository 中是找不到的)

[root@hadoop102 ~]#  yum install -y epel-release

3)关闭防火墙,关闭防火墙开机自启

[root@hadoop102 ~]# systemctl stop firewalld
[root@hadoop102 ~]# systemctl disable firewalld.service

注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙

4)创建shuidi用户,并修改shuidi用户的密码

[root@hadoop102 ~]# useradd shuidi
[root@hadoop102 ~]# passwd shuidi
更改用户 shuidi 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

5)配置shuidi用户具有root权限,方便后期加sudo执行root权限的命令

[root@hadoop102 ~]# vim /etc/sudoers

修改/etc/sudoers文件,在%wheel这行下面添加一行,如下所示:

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL

## Allows members of the 'sys' group to run networking, software, 
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
shuidi  ALL=(ALL)       NOPASSWD:ALL

注意:shuid这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了shuid具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以shuid要放到%wheel这行下面。

后面的操作切换 shuidi 用户执行

6)在/opt目录下创建文件夹,并修改所属主和所属组

(1)在/opt目录下创建module、software文件夹

[shuidi@hadoop102 ~]$ sudo mkdir /opt/module
[shuidi@hadoop102 opt]$ sudo mkdir /opt/software

(2)修改module、software文件夹的所有者和所属组均为shuidi用户

[shuidi@hadoop102 opt]$ sudo chown shuidi:shuidi /opt/module
[shuidi@hadoop102 opt]$ sudo chown shuidi:shuidi /opt/software

(3)查看module、software文件夹的所有者和所属组

[shuidi@hadoop102 opt]$ cd /opt/
[shuidi@hadoop102 opt]$ ll
总用量 8
drwxr-xr-x 2 shuidi shuidi 4096 6月  23 13:17 module
drwxr-xr-x 2 shuidi shuidi 4096 6月  23 13:17 software

1.3、编写集群分发脚本xsync

1)xsync集群分发脚本

(1)需求:循环复制文件到所有节点的相同目录下

(2)需求分析

①rsync命令原始拷贝:

rsync  -av     /opt/module           root@hadoop103:/opt/

②期望脚本:

xsync要同步的文件名称

③说明:在/home/shuidi/bin这个目录下存放的脚本,shuidi用户可以在系统任何地方直接执行。

(3)脚本实现

①在用的家目录/home/shuidi下创建bin文件夹

[shuidi@hadoop102 ~]$ mkdir bin

②在/home/shuidi/bin目录下创建xsync文件,以便全局调用

[shuidi@hadoop102 bin]$ cd /home/shuidi/bin
[shuidi@hadoop102 bin]$ vim xsync

在该文件中编写如下代码

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

③修改脚本xsync具有执行权限

[shuidi@hadoop102 bin]$  chmod +x xsync

④测试脚本

[shuidi@hadoop102 bin]$ xsync xsync

1.4、 SSH无密登录配置

(1)hadoop102上生成公钥和私钥:

[shuidi@hadoop102 .ssh]$ pwd
/home/shuidi/.ssh

[shuidi@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)


将公钥拷贝到要免密登录的目标机器上
[shuidi@hadoop102 .ssh]$ ssh-copy-id hadoop102
[shuidi@hadoop102 .ssh]$ ssh-copy-id hadoop103
[shuidi@hadoop102 .ssh]$ ssh-copy-id hadoop104

(2)hadoop103上生成公钥和私钥:

[shuidi@hadoop103 .ssh]$ pwd
/home/shuidi/.ssh
[shuidi@hadoop103 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)


将公钥拷贝到要免密登录的目标机器上
[shuidi@hadoop103 .ssh]$ ssh-copy-id hadoop102
[shuidi@hadoop103 .ssh]$ ssh-copy-id hadoop103
[shuidi@hadoop103 .ssh]$ ssh-copy-id hadoop104

(3)hadoop104上生成公钥和私钥:

[shuidi@hadoop104 .ssh]$ pwd
/home/shuidi/.ssh

[shuidi@hadoop104 .ssh]$  ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要免密登录的目标机器上
[shuidi@hadoop104 .ssh]$ ssh-copy-id hadoop102
[shuidi@hadoop104 .ssh]$ ssh-copy-id hadoop103
[shuidi@hadoop104 .ssh]$  ssh-copy-id hadoop104

1.5、安装JDK

1)将JDK导入到hadoop102的/opt/software文件夹下面

[shuidi@hadoop102 software]$ cd /opt/software/
[shuidi@hadoop102 software]$ ll
总用量 190444
-rw-rw-r-- 1 shuidi shuidi 195013152 6月  23 13:42 jdk-8u212-linux-x64.tar.gz

2)解压JDK到/opt/module目录下

[shuidi@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
[shuidi@hadoop102 module]$ mv jdk1.8.0_212/ jdk-1.8.0

3)配置JDK环境变量

(1)新建/etc/profile.d/my_env.sh文件

[shuidi@hadoop102 module]$ sudo vim /etc/profile.d/my_env.sh

添加如下内容,然后保存(:wq)退出。

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk-1.8.0
export PATH=$PATH:$JAVA_HOME/bin

(2)让环境变量生效

[shuidi@hadoop102 module]$ source /etc/profile.d/my_env.sh

4)测试JDK是否安装成功

[shuidi@hadoop102 module]$ java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)

5)分发JDK

[shuidi@hadoop102 module]$ xsync /opt/module/jdk-1.8.0

6)分发环境变量配置文件

[shuidi@hadoop102 module]$ sudo /home/shuidi/bin/xsync /etc/profile.d/my_env.sh

7)分别在hadoop103、hadoop104上执行source

[atguigu@hadoop103 module]$ source /etc/profile.d/my_env.sh
[atguigu@hadoop104 module]$ source /etc/profile.d/my_env.sh

环境变量配置说明

Linux的环境变量可在多个文件中配置,如/etc/profile,/etc/profile.d/*.sh,~/.bashrc,~/.bash_profile等,下面说明上述几个文件之间的关系和区别。

bash的运行模式可分为login shell和non-login shell。

例如,我们通过终端,输入用户名、密码,登录系统之后,得到就是一个login shell。而当我们执行以下命令ssh hadoop103 command,在hadoop103执行command的就是一个non-login shell。

这两种shell的主要区别在于,它们启动时会加载不同的配置文件,login shell启动时会加载/etc/profile,~/.bash_profile,~/.bashrc。non-login shell启动时会加载~/.bashrc。

而在加载~/.bashrc(实际是~/.bashrc中加载的/etc/bashrc)或/etc/profile时,都会执行如下代码片段,

因此不管是login shell还是non-login shell,启动时都会加载/etc/profile.d/*.sh中的环境变量。

1.6、集群命令批量执行脚本

1)在/home/shuidi/bin目录下创建脚本xcall

[shuidi@hadoop102 bin]$ vim xcall

2)在脚本中编写如下内容

#! /bin/bash
 
for i in hadoop102 hadoop103 hadoop104
do
    echo --------- $i ----------
    ssh $i "$*"
done

3)修改脚本执行权限

[shuidi@hadoop102 bin]$ chmod 777 xcall

4)启动脚本

[shuidi@hadoop102 bin]$ xcall jps

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2121141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新办建筑智能化专项乙级设计资质,郑州企业需要达到哪些要求?

新办建筑智能化专项乙级设计资质,郑州企业需要达到以下要求: 一、企业基本条件 法人资格: 申请企业必须具有独立法人资格,能够在郑州地区合法经营。注册资本: 企业的注册资本需达到规定标准,通常要求不低于…

WebGIS二维基础,地图开发必修框架:Canvas

项目名称:WebGIS二维基础,地图开发必修框架:Canvas 内容包含: 为什么要学习canvas 初识canvas 绘制描边图形 绘制圆 绘制笑脸 绘制异形曲线 线型的绘制 canvas绘制一个会转的时钟 获取方式:厚苔私[canvas]

Accelerated Soft Error Testing 介绍

加速软错误测试(Accelerated Soft Error Testing, ASET)是一种评估半导体器件或集成电路(ICs)在高辐射环境中发生软错误率(Soft Error Rate, SER)的方法。这种测试方法通过模拟或加速软错误的发生,以便在较短时间内评估器件的可靠性。软错误指的是那些不会对硬件本身造成…

故障排查:VMware虚拟机网络冲突,导致VPN网络无法正常访问

故障现象 某台windows10系统电脑,远程拨号SSL VPN后,无法正常公司内网。通过排查,发现重启开机,操作系统的默认路由多了一条公司内网的默认路由,但网关不正确。手动删除,重启系统又恢复原样。 排查过程 c…

基于YOLO目标检测实现表情识别(结合计算机视觉与深度学习的创新应用)

基于YOLO(You Only Look Once)的目标检测技术实现的表情识别项目是一个结合了计算机视觉与深度学习的创新应用。该项目旨在通过分析人脸图像或视频流中的面部特征来识别七种基本人类情感表达:愤怒(Angry)、厌恶&#x…

Azure OpenAI models being unable to correctly identify model

题意:Azure OpenAI模型无法正确识别模型。 问题背景: In Azure OpenAI Studio, while I am able to deploy a GPT-4 instance, the responses are based solely on GPT-3.5 Turbo. I test the same prompts in my personal ChatGPT sub and it returns …

精通Transformer——微调语言模型用于文本分类

在本章中,我们将学习如何配置一个预训练模型以进行文本分类,并如何微调它以适应任何文本分类的下游任务,例如情感分析、多类分类或多标签分类。我们还将讨论如何处理句子对和回归问题,并提供一个实现示例。我们将使用如 GLUE 等知…

STM32学习笔记(一、使用DAP仿真器下载程序)

我们想要使用32单片机,总共包含四个步骤: 1、硬件连接 2、仿真器配置 3、编写程序 4、下载程序 一、第一个问题(硬件连接):如何进行硬件连接,才能够启动32板子并能够下载程序呢? 答&#…

无人机避障雷达技术详解

随着无人机技术的飞速发展,其应用领域已经从最初的军事领域扩展到商业、农业、建筑巡检、应急救援、物流运输等多个领域。在这些多样化的应用场景中,无人机的安全性和稳定性显得尤为重要。无人机避障技术作为保障无人机安全飞行的核心技术之一&#xff0…

基于 SpringBoot 的实习管理系统

专业团队,咨询送免费开题报告,大家可以来留言。 摘 要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,实习管理也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越…

Python | Leetcode Python题解之第396题旋转函数

题目: 题解: class Solution:def maxRotateFunction(self, nums: List[int]) -> int:f, n, numSum 0, len(nums), sum(nums)for i, num in enumerate(nums):f i * numres ffor i in range(n - 1, 0, -1):f f numSum - n * nums[i]res max(res,…

餐饮「收尸人」,血亏奶茶店……

最近一段时间,小柴朋友圈叫苦的餐饮人是越来越多了! 比如某天早上睡醒查看朋友圈奏折的时候,有个以前经常光顾的餐馆的老板,发了一条朋友圈:最终,还是要和自己经营了11年的小店告别了……‍‍ 配的照片是店…

Parsec不稳定、频繁报错、无法登录解决方案 免费宝藏串流软件推荐

Parsec是一款国外的串流软件,因为其绝大部分的功能都免费,且功能相对完善,因此受到很多国内用户的喜爱。但是最近却出现频繁报错、无法登录的问题,其实这个是Parsec的老问题了,此前就出现过多次被墙的情况,…

大模型面试就是演戏,胆子越大offer越多

建议找工作和想跳槽的可以多记背场景题再去,通过率很高,都是深挖场景题,比较高效无脑的方法,金九银十时期面试岗多可以大胆去做,所有场景题都有对应答案,希望对你们面试有帮助 一、大模型常见面试题及解答…

2024百元蓝牙耳机天花板是?四款性价比品牌推荐告诉你答案!

蓝牙耳机的热度经常高居智能配件的榜首,目前已成为市场主流,产品种类繁多,功能和型号各异,让人眼花缭乱。那么,在如此丰富的选择中,如何找到适合自己的,满足个人需求的蓝牙耳机呢,20…

make、cmake、qmake的区别和联系

基本概念与用途 make: 定义:make是一个用于自动化构建项目的命令行工具。用途:它通过读取Makefile(或makefile)文件来执行编译、链接等操作,从而构建整个项目。Makefile中定义了项目中的文件依赖关系以及…

如何申请CMA认证?CMA认证对检测机构有哪些重要作用?

CMA认证机构通常指的是那些接受了政府计量行政部门全面评价和认证的检测机构。这种认证是对检测机构的检测能力和可靠性的一种全面的认可,确保了检测结果的准确性和公正性。 CMA认证机构的申请和审批流程 并不是所有的检测机构都能获得CMA认证。申请CMA认证的机构必…

Linux 远程连接与常见错误:一直输入密码,无报错或无填充

1.vscode中下载插件 remote 2.打开远程资源管理器并添加服务器 点击号输入 ssh 用户名服务器地址 3.在远程连接可能会遇到的问题 1.vscode c/c 不报错问题 问题产生原因:1.点到小灯泡快速修复:导致关闭了错误波型曲线 2.点到快速修复:导…

1万3医学考研题库医学题库ACCESS\EXCEL数据库

今天这个题库按知识点分章节模块智能练习,覆盖书本上所有知识点以及考点,在真#题的解析里边也有详细的展示;另外,这份数据库与《4820道西#医综合真题西#医真#题ACCESS数据库》、《4170条中#医综合真#题中医真#题ACCESS\EXCEL数据库…

嵌入式单片机代码中bug调试方法

引言 大家好,今天主要给大家分享一下,如可单片机中如何进行调试,建议您在空闲时细细阅读,享受阅读的乐趣。 难以复现的Bug之痛 你是否曾为那些难以复现的Bug而头疼不已?本文将揭秘一种通过堆栈分析来定位并解决这类问题的神奇方法。 作为一名开发人员,在开发过程中会碰…