CDH集群离线部署-6.3.1

news2024/11/23 9:09:10

1. 文件下载

CDH 安装使用到的相关文件:链接: https://pan.baidu.com/s/1xDQD1Sa8s47Qiu_EFYdhUA?pwd=5mrt 提取码: 5mrt

image-20230621142526194

2. 机器基础调整

所有机器都需要执行下面所有的步骤。

2.1. 准备机器

至少三台2核16G机器。

2.1.1. ECS 服务器

如果买的是 ECS 服务器,则需要:

  1. 修改 /etc/cloud/templates/hosts.redhat.tmpl 文件中的 manage_etc_hosts 为 False

    vim /etc/cloud/templates/hosts.redhat.tmpl
    
  2. 删除 /etc/cloud/cloud.cfg 文件中 manage_etc_hosts 这一行配置

    vim /etc/cloud/cloud.cfg
    

2.2. hosts⽂件

101.200.233.33 hadoop01
112.126.56.59 hadoop02
39.96.39.79 hadoop03

这里配置的是外网地址,如果是公司内部机器,配置内网地址即可。

所有节点都要配置,新加入节点之后,也要所有节点信息都配置上。

2.3. 防⽕墙

systemctl stop firewalld
systemctl disable firewalld
iptables -F
systemctl status firewalld

2.4. selinux

vim /etc/selinux/config

SELINUX=enforcing 改为 SELINUX=disabled,修改完成后重启生效。

运行以下命令,不用重启即可生效:

setenforce 0

查看状态

getenforce

image-20230621150801614

2.5. 时区

查看当前时区设置

timedatectl

设置亚洲上海时区

timedatectl set-timezone Asia/Shanghai

2.6. 时钟同步

所有节点安装 ntp 服务

yum install -y ntp

新版本自带的配置文件已经设置好了很多可用的网络时钟同步服务器,以及网络丢失时,仍然可以使用硬件时间提供给其他节点进行时钟同步。

开启ntpd及查看状态

systemctl enable ntpd
systemctl restart ntpd
systemctl status ntpd

验证时间是否同步

ntpq -p

如果使用的是云主机,可能会出现以下错误

localhost: timed out, nothing received
Request timed out

可以关闭 ipv6,然后再次验证时间是否同步。关闭 ipv6 步骤如下:

永久关闭ipv6

在 /etc/sysctl.conf 中添加如下参数

vim /etc/sysctl.conf
# 禁用整个系统所有接口的IPv6,可以只简单的设置这一个参数,用来关闭所有接口的 IPv6
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用某一个指定接口的IPv6(例如:eth0, eth1)
net.ipv6.conf.eth0.disable_ipv6 = 1
net.ipv6.conf.eth1.disable_ipv6 = 1

2.7. 设置swap空间

临时修改

sysctl vm.swappiness=0
# 查看是否修改成功
cat /proc/sys/vm/swappiness

永久修改

echo 'vm.swappiness=0' >> /etc/sysctl.conf
# 执行以下命令,可以让修改立即生效
sysctl -p

Cloudera建议将交换空间设置为0,过多的交换空间会引起GC耗时的激增。

2.8. 关闭大页面压缩

临时生效

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

永久生效

echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local

给该文件赋予执行权限

chmod +x /etc/rc.local

2.9. 最大数限制

最大可打开文件数,进程数,内存占用调整

vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 1024999
* soft nproc 65535
* hard noroc 65535
* soft memlock unlimited
* hard memlock unlimited

查看是否生效

ulimit -a

image-20230621152238209
主要要关注的是 open files 等。

2.10. 机器重启

重启机器,使上面的所有调整均生效。

3. 基础组件部署

3.1. JDK

参考文档:https://blog.csdn.net/u012443641/article/details/126147592

3.2. CDH环境变量

vim /etc/profile
# hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
#hadoop 安装目录
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HIVE_HOME=$HADOOP_HOME/../hive
export HADOOP_HDFS_HOME=$HADOOP_HOME/../hadoop-hdfs
export HADOOP_MAPRED_HOME=$HADOOP_HOME/../hadoop-mapreduce
export HADOOP_YARN_HOME=$HADOOP_HOME/../hadoop-yarn
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

3.3. mysql

参考文档:https://blog.csdn.net/u012443641/article/details/126147592

找一个节点安装上 mysql 服务即可。

由于该 CDH 版本已经比较老了,不支持 mysql8,安装 mysql-5.7.x 最新版即可。

4. CDH部署

4.1. mysql建库

创建 CDH 的元数据库和⽤户、amon 服务的数据库及⽤户。

使用 root 用户登录mysql,然后执行以下命令

-- 创建需要的数据库
create database cmf DEFAULT CHARACTER SET utf8;
create database amon DEFAULT CHARACTER SET utf8;
-- 创建用户并允许远程登录
create user 'cmf'@'%' IDENTIFIED WITH mysql_native_password by 'cmf';
create user 'amon'@'%' IDENTIFIED WITH mysql_native_password by 'amon';
-- 授权
grant ALL PRIVILEGES ON cmf.* to 'cmf'@'%';
grant ALL PRIVILEGES ON amon.* to 'amon'@'%';
flush privileges;

4.2. mysql驱动包

在 hadoop01 节点,也就是安装了 mysql 的节点上,放上 mysql java 驱动包。

mkdir -p /usr/share/java/

将 mysql java 驱动包拷贝到上面的目录,重命名文件,去掉版本号

cp mysql-connector-java-5.1.48.jar /usr/share/java/mysql-connector-java.jar

4.3. 离线部署cm服务

4.3.1. 上传rpm包

创建一个保存 rpm 包的目录

mkdir /opt/cloudera-manager

server 节点上传

​ cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm

​ cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

agent 节点上传

​ cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm

​ cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

4.3.2. 安装cm server

选择 hadoop01 为cm server,然后执行以下命令:

yum -y localinstall cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
yum -y localinstall cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

4.3.3. 安装cm agent

所有节点都要安装 agent。

注意:server 节点,上面已经安装过了 daemons,这儿不需要重新安装了。

yum -y localinstall cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
yum -y localinstall cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

4.3.4. agent配置修改

所有节点修改 agent 的配置,指向 server 的节点 hadoopa01。

一定要注意下面的 hadoop01 主机名,要修改为你的 server 节点所在的主机名。

sed -i "s/server_host=localhost/server_host=hadoop01/g" /etc/cloudera-scm-agent/config.ini

节点的主机名,如果第一次运行时没注意到,可以直接进入对应的配置文件进行修改。

4.3.5. 主节点修改server的配置

vim /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=hadoop01
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=cmf
com.cloudera.cmf.db.setupType=EXTERNAL

4.4. 部署离线parcel源

在 hadoop01 节点部署离线 parcel 源。

4.4.1. 安装httpd

yum install -y httpd

4.4.2. 部署离线parcel源

mkdir -p /var/www/html/cdh6_parcel
cp CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /var/www/html/cdh6_parcel
cp CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 /var/www/html/cdh6_parcel/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha
cp manifest.json /var/www/html/cdh6_parcel

移动 sha1 名称⽂件时,需要重命名,去掉最后的1,不然在部署过程中,CM 会认为如上⽂件下载不完整,会重新下载。

4.4.3. 启动httpd

systemctl start httpd

然后通过该链接查看是否可以访问:http://hadoop01/cdh6_parcel。

image-20230621155514597

4.5. 启动Server

在 hadoop01 节点,也就是安装了 cm server 服务的节点运行以下命令

systemctl enable cloudera-scm-server
systemctl start cloudera-scm-server

查看日志

cd /var/log/cloudera-scm-server
tail -f cloudera-scm-server.log

阿⾥云 web 界⾯,需要设置该 hadoop01 节点防⽕墙放开 7180 端⼝。

等待1min,打开 http://hadoop01:7180 页面,账号密码:admin/admin,不着急登录,启动完所有 agent 之后再登录。

如果打不开,去看 server 的 log,根据错误仔细排查错误。

4.6. 启动Agent

所有节点上都要执行:

systemctl enable cloudera-scm-agent
systemctl start cloudera-scm-agent

4.7. 页面操作部署组件

http://hadoop01:7180/

账号密码:admin/admin

欢迎使⽤ Cloudera Manager,最终⽤户许可条款与条件,勾选。

欢迎使⽤ Cloudera Manager,您想要部署哪个版本?选择 Cloudera Express 免费版本。

在 CM ⾥添加⼀个集群

修改集群名称

这个名称会显示在主页面

添加需要管理的主机

如果有某些主机没有在这儿显示,则需要去对应主机上查看 agent 服务是否启动成功。

选择存储库

选择更多选项,我们使用 httpd 来安装

如果上面图片中配置正确,过一会儿,页面就会变成下面这样

勾选 CDH-6.3.2-1.cdh6.3.2.p0.1605554,然后继续安装。

安装Parcels

在这个页面一直等待即可,直到全部成功。

然后进行网络和hosts检查

然后通过显示检查器结果,来查看监察出的错误,并进行修复。

修复上面的错误:

  1. Psycopg2
    Psycopg2 这个错误,是和 pig、hue 等 sql 编写调用相关的,如果集群用到了这些,可以进行修复。注意需要在每台机器上执行。

    1. 安装服务

      yum install postgresql-server
      pip install psycopg2==2.7.5 --ignore-installed
      echo 'LC_ALL="en_US.UTF-8"' >> /etc/locale.conf
      su -l postgres -c "postgresql-setup initdb"
      
    2. 修改配置1

      vim /var/lib/pgsql/data/pg_hba.conf
      

      image-20230621160629255

    3. 修改配置 2
      小集群(小于1000节点)配置如下,大集群(超过1000节点),参考官网:https://docs.cloudera.com/documentation/enterprise/6/latest/topics/cm_ig_extrnl_pstgrs.html#id_inq_bgy_52b

      vim /var/lib/pgsql/data/postgresql.conf
      
      max_connection = 100
      shared_buffers = 256MB
      wal_buffers = 8MB
      checkpoint_segments = 16
      checkpoint_completion_target = 0.9
      
    4. 重启

      systemctl enable postgresql
      systemctl restart postgresql
      
    5. 创建数据库
      根据需要参考官网创建即可。

选择服务

根据自己的集群需要选择需要安装的组件服务即可。

自定义角色分配

按照需要分配即可。

数据库设置

这儿使用的数据库为 amon。

审核更改

如果机器有多块磁盘,则需要更改 DataNode 数据目录,配置多个目录,使用英文逗号隔开,其他的按照需要配置即可。

注意配置的目录,需要有足够的磁盘空间。

首次运行

等待全部启动成功即可,如果有失败项,查看具体日志,然后排错即可。

启动成功

修复警告等

在这里插入图片描述

点开每一项警告,根据提示进行修改即可。

4.8. 新增节点

以下所有操作在新节点执行即可。

4.8.1. 基础调整

执行前面《机器基础调整》中所有步骤,并且部署 JDK。

4.8.2. 上传rpm包

创建一个保存 rpm 包的目录

mkdir /opt/cloudera-manager

上传
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
​ cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

4.8.3. 安装服务

安装 CDH 的 daemon 和 agent 服务。

yum -y localinstall cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
yum -y localinstall cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

4.8.4. 修改配置

修改 agent 的配置,指向 server 节点 hadoopa01

一定要注意下面的 hadoop01 主机名,要修改为你的 server 节点的主机名,如果第一次运行时没注意到,可以直接进入对应的配置文件进行修改

sed -i "s/server_host=localhost/server_host=hadoop01/g" /etc/cloudera-scm-agent/config.ini

4.8.5. 启动Agent

systemctl stop cloudera-scm-agent
systemctl enable cloudera-scm-agent
systemctl start cloudera-scm-agent
systemctl status cloudera-scm-agent

4.8.6. 验证

去CDH界面观察主机列表

检测到主机正常运行,需要一些时间,等待即可。

4.8.7. 加入集群

将新增主机加入集群。


之后就可以在新主机上部署组件服务了。

4.8.8. 新增组件角色

所有机器新增组件角色,全部在 CDH 页面操作,主要新增角色为:

  1. 各种组件网关,已经在上面的新增主机步骤中包含了,可以选择已配置好的模板。主机模板也可以提前配置好。
  2. 主要启动角色:DataNodeNodeManager注意在新增完角色之后,需要切换都具体的角色页面查看组件服务是否正确启动,防止某些服务未启动。

4.8.8.1. 特别注意

新增 yarn 角色后,需要新增对应新节点的角色组。

需要修改的配置有:节点分配给容器的内存、CPU,yarn 对节点 cpu 的使用限制。

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

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

相关文章

Apikit 自学日记:邀请成员一起协作

邀请成员一起协作 在 Apikit 中,所有的 API 接口都是以项目的方式进行管理,因此首先需要创建一个 API 管理项目。 除了创建 API 项目,还可以创建项目组来对项目进行分类或者设置统一的用户操作权限。 一、手动创建项目 进入 API 研发管理项…

有趣的笔试题——贪吃蛇游戏(确定不进来看看?)

原题 贪吃蛇游戏是一款耳熟能详的小游戏,通过上下左右控制蛇的方向,寻找吃的果子,每吃一口果子,蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自…

关于springboot中前端传递多个数组以及其他参数及json在前后端转变方法技巧的记录

文末含一种json的动态解析方法,感兴趣的大佬记得看到最后评论交流 * 因公司GIS保密要求仅放部分代码在这儿 前端传输json的方法 json格式不再赘述 常规json传递 使用formData封装传递 好处就是当页面同时传递多个数组甚至是同时传递数组和参数到后台,可以自定义…

2023计算机组成原理复习【1-4】

第一章 计算机系统概述 1.计算机语言的分类:高级语言,低级语言(汇编语言与机器语言)。P8 高级语言是人类可读写的编程语言。低级语言包括汇编语言和机器语言两种。汇编语言是一种直接使用符号代替计算机指令的语言&a…

C++静态对象的移动问题

7.1返回普通的静态对象 MyString func(const char* p) {static MyString tmp(p);return tmp; } int main() {MyString s1("hello");s1func("helloworld");s1.Print();MyString s2;s2func("hello");s2.Print();return 0; } 结果: 进…

Elagamal和ECC

Elgamal加密方案 椭圆曲线加密体制 椭圆曲线应该是非奇异的,曲线的图不会自我相交或者没有顶点。 椭圆曲线的基本运运算 相异点相加PQ: 相同点相加PP: ## 椭圆曲线加解密 加解密原理: Alice选取一个椭圆曲线 E p ( a , b ) E_p(a,b) Ep​…

从0到1精通自动化测试,pytest自动化测试框架,生成html报告与html报告报错截图+失败重跑(五)

目录 一、生成html报告 1、pytest-html 2、html报告 3、指定报告路径 4、显示选项 5、更多功能 二、html报告报错截图失败重跑 1、conftest.py 2、报告展示 3、失败重试 一、生成html报告 1、pytest-html pytest-HTML是一个插件,pytest用于生成测试结果…

C. Ranom Numbers(统计前缀)

Problem - C - Codeforces 不,不是“随机”数字。 Ranom 数字由大写拉丁字母 A 到 E 表示。此外,字母 A 的值为 1,B 为 10,C 为 100,D 为 1000,E 为 10000。 一个 Ranom 数字是一个 Ranom 数字序列。这个…

初始化列表的使用

问题 类中是否可以定义 const 成员? 下面的类定义是否合法? 如果合法,ci 的值是什么,存储在哪里? C 中提供了初始化列表对成员变量进行初始化 语法规则 注意事项 成员的初始化顺序与成员的声明顺序相同 成员的初始…

3.41 - haas506与esp8266-01s的串口通信(wifi模块)

haas506与esp8266-01s的串口通信 PC端调试wifi模块1.接线(与电脑通信)2.模式案例3.指令演示 开发板与wifi模块通信1.接线(TTL串口通信)2.代码测试 PC端调试wifi模块 esp8266-01s 1.接线(与电脑通信) 与电脑通信时引脚连接,wifi模块需要稳定3.3v供电,…

享好文 | 碰撞检查并不是BIM的目的

不知大家感觉到没有?中国很多行业都有一种惯性思维:只要是国外的就好,习惯了拿来主义。 比如前几年兴起的BIM,各种峰会论坛、培训吹得神乎其技,玩得不亦乐乎,什么协同管理、行业生态。 结果这么多年过去了…

Python 动态生成系统数据库设计到word文档

背景 经常需要交付一些系统文档而且基本都是word的,其中又有系统数据库介绍模块, 看着数据库里的几百张表于是我开始怀疑人生, 所以咱手写一个 涉及知识 pymysql 操作数据库 -tkinter GUI图形库threading 线程queue 阻塞队列pandas python数据计算…

【数据结构(C++)】树型查找——二叉搜索树

目录 1. 二叉搜索树 1.1 二叉搜索树的概念 1.2 二叉搜索树类模板 1.3 二叉搜索树的操作 1.3.1 查找 1.3.2 插入 1.3.3 删除 1.4 二叉搜索树的性能分析 2. 平衡二叉树 2.1 平衡二叉树的概念 2.2 平衡二叉树类模板 2.3 二叉搜索树的插入 3. 红黑树 3.1 红黑树的概念…

合宙Air724UG Cat.1模块硬件设计指南--Camera接口

Camera接口 简介 CAT.1模块支持一路摄像头接口,可以用于扫码,拍照应用。 特性 仅支持SPI接口实现 最高像素30W像素 支持数据格式YUV422, Y420, RAW8, RAW10 集成GC0310驱动 管脚功能 CAM_PWDN。关闭Camera,上电状态默认下拉输入。 CAM_RST。…

pg 绑定变量源码解析

pg 绑定变量相关源码解析 下面以callstmt 为例 说明一下绑定参数的执行流程(基于pg13) 整体架构 1. exec_parse_message 解析变量。 --> parse_analyze_varparams 解析绑定参数$id--->parse_variable_parameters , 把返回值paramTyp…

《Java黑皮书基础篇第10版》 第18章【习题】

Java语言程序设计 习题第十八章 18.2章节习题 18.1 什么是递归方法?什么是无限递归? 递归方法可以拆解为递和归。在Java中,大多数方法的执行都需要调用栈,来跟踪方法的调用和返回。在递的过程中,递归方法调用自身,把新的调用添…

Vue3 开发语法使用总结(超详细、超基础)

前言 最近开源了一套后台管理模板Wocwin-Admin,是基于 Vue3.2、TypeScript、Vite4、Pinia、Element-Plus、Qiankun(微前端) 技术栈,借此归纳一下Vue3.2的新语法。 一、全局注册(属性/方法) 1、main.ts注册 import { createApp } from "vue";…

Ubuntu22 2023最新版安装教程

Ubuntu22安装教程 2023全网最新版 前置资源准备 如果选择使用虚拟机安装,那么需要准备VmwareWorkstation 在官网进行下载安装 VmwareWorkstation官网:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 前置资源准备好后就可以…

【SpringCloud config分布式配置中心】—— 每天一点小知识

💧 S p r i n g C l o u d c o n f i g 分布式配置中心 \color{#FF1493}{SpringCloud config分布式配置中心} SpringCloudconfig分布式配置中心💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的…

okcc呼叫系统运营商的重点功能有什么

一、资费套餐模块 资费套餐,即客户进行业务时使用的资费标准。填写资费套餐名称,选择计费规则方式,点击“确认”按钮即可创建一条资费套餐,如下图所示。 计费规则即计费所遵循的规则。OKCC系统目前设计了以下三种计费方式(后续还…