前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CDH 5.16.1 离线部署 & 通过 CDH 部署 Hadoop 服务

CDH 5.16.1 离线部署 & 通过 CDH 部署 Hadoop 服务

作者头像
星哥玩云
发布2022-07-27 20:44:37
9080
发布2022-07-27 20:44:37
举报
文章被收录于专栏:开源部署

一. 环境

1.1 系统节点信息

Hostname

IP

CPU(cores)

Memory(GB)

OS

Service

Remark

master

172.30.200.75

2

4

CentOS 7.5

jdk, cloudera-scm-server, mysql

实际部署后,master节点也需要部署cloudera-scm-agent服务,或采用4个slave节点

slave01

172.30.200.76

2

4

centos 7.5

jdk, cloudera-scm-agent

slave02

172.30.200.77

2

4

centos 7.5

jdk, cloudera-scm-agent

slave03

172.30.200.78

2

4

centos 7.5

jdk, cloudera-scm-agent

1.2 软件版本

相关软件放置在/usr/local/src/目录。

Soft

Version

Download

Remark

CM(Cloudera Manager)

cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz

bin包,根据版本下载

CDH parcel

CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel

根据版本下载

软件安装包

CDH parcel.sha

CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1

根据版本下载

软件包hash码

CDH manifest.json

manifest.json

根据版本下载

版本说明文件

JDK

jdk-8u181-linux-x64.tar.gz

bin包,根据版本下载

MySQL

mysql-5.7.24-el7-x86_64.tar.gz

bin包,根据版本下载

存放Cloudera Manager配置文件

MySQL-connector-Java

mysql-connector-java-8.0.13.jar

jar包,根据版本下载

JDBC

二. 准备工作

2.1 部分预配置

所有节点执行以下操作:

  • 永久关闭防火墙(firewalld或iptables);
  • 永久关闭selinux;
  • 设置ntp。
2.2 设置hosts
  • 所有节点设置/etc/hosts cat << EOF >> /etc/hosts # Hadoop nodes 172.30.200.75 master 172.30.200.76 slave01 172.30.200.77 slave02 172.30.200.78 slave03 EOF
2.3 免密访问设置
  • 在所有节点生成秘钥 ssh-keygen -t rsa
  • 在master节点生成authorized_keys文件 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
  • 在master节点执行,将集群每个节点的公钥id_rsa.pub放入master节点的authorized_keys文件中 for i in {1..3}; do ssh root@slave0$i cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys; done
  • 在master节点执行,将master节点的authorized_keys文件放置到集群每个节点的/root/.ssh/目录,依然命名位authorized_keys
    • 最终的效果是集群中所有节点两两相互免密访问;
    • 注意:首次登陆时有公钥检查,可通过在/etc/ssh/ssh_config文件中设置StrictHostKeyChecking no绕过,或使用-o参数跳过。

    for i in {1..3}; do scp /root/.ssh/authorized_keys root@slave0$i:/root/.ssh/authorized_keys; done

2.4 安装JDK

所有节点都需要安装JDK。

  • 安装JDK cd /usr/local/src tar -zxvf jdk-8u181-linux-x64.tar.gz mkdir -p /usr/java mv jdk1.8.0_181/ /usr/java/ # 设置软链接,方便升级替换 ln -s /usr/java/jdk1.8.0_181/ /usr/java/current
  • 设置变量 cat << EOF >> /etc/profile # JDK export JAVA_HOME=/usr/java/current export JRE_HOME=/usr/java/current/jre export PATH=$PATH:/usr/java/current/bin export CLASSPATH=./:/usr/java/current/lib:/usr/java/current/jre/lib EOF
  • 验证 # 加载变量 source /etc/profile # 验证 java -version
2.5 安装MySQL

只有master节点需要安装MySQL。

  • 卸载系统自带的相关数据库 rpm -qa | grep mysql rpm -qa | grep mariadb # --nodeps:不检查依赖 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
  • 部署MySQL # 采用bin包部署,解压后直接使用 cd /usr/local/src tar -zxvf mysql-5.7.24-el7-x86_64.tar.gz -C /usr/local/ mv /usr/local/mysql-5.7.24-el7-x86_64/ /usr/local/mysql
  • 账号与权限 # 添加账号 groupadd mysql useradd -g mysql -s /sbin/nologin mysql # 创建"data"目录 mkdir /data # 赋权 chown -R mysql:mysql /usr/local/mysql/ chown -R mysql:mysql /data/
  • 初始化MySQL
    • 获取root@localhost账号的初始密码Hqe6x<Re4jhK

    cd /usr/local/mysql/ bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data

  • 设置变量 cat << EOF >> /etc/profile # MySQL export PATH=$PATH:/usr/local/mysql/bin EOF # 加载变量 source /etc/profile # 软链接 ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql ln -s /usr/local/mysql/include/mysql /usr/include/mysql
  • 设置开机启动 # 复制开机启动脚本到系统服务 cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld chown mysql:mysql /etc/rc.d/init.d/mysqld # 修改默认的"basedir"与"datadir" vim /etc/rc.d/init.d/mysqld basedir=/usr/local/mysql datadir=/data # 添加开机启动脚本 chkconfig --add mysqld chkconfig --level 35 mysqld on
  • 文件路径:log && pid && socket # 日志路径 mkdir -p /var/log/mysqld touch /var/log/mysqld/mysqld.log chown -R mysql:mysql /var/log/mysqld/ # pid路径 mkdir -p /var/run/mysqld chown -R mysql:mysql /var/run/mysqld/ # socker路径 mkdir -p /var/lib/mysqld chown -R mysql:mysql /var/lib/mysqld/ ln -s /var/lib/mysqld/mysql.sock /tmp/mysql.sock
  • 设置my.cnf文件 # 注意"log-error","pid-file"与"socket"的路径 mkdir -p /usr/local/mysql/etc cat << EOF >> /usr/local/mysql/etc/my.cnf [mysqld] character-set-server=utf8 max_connections = 3000 log-error=/var/log/mysqld/mysqld.log pid-file=/var/run/mysqld/mysqld.pid socket=/var/lib/mysqld/mysql.sock sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] default-character-set=utf8 EOF # 软链接 ln -s /usr/local/mysql/etc/my.cnf /etc/my.cnf # 赋权 chown -R mysql:mysql /usr/local/mysql/etc/
  • 启动MySQL服务 # 启动服务 service mysqld start # 验证 service mysqld status
  • 设置MySQL账号密码与登陆权限 # 使用初始化密码登陆 mysql -uroot -p # 修改密码,注意不能使用"$"等特殊符号 set password=password('cdh12#hadoop'); flush privileges; # 远程登陆权限 grant all privileges on *.* to 'root'@'%' identified by 'cdh12#hadoop' with grant option; flush privileges; # 查看账号 select user, host, authentication_string from mysql.user;

三. Cloudera Manager安装

3.1 部署CM Server & Agent
  • 在所有节点创建CM目录/opt/cloudera-manager mkdir /opt/cloudera-manager
  • 在master节点向其余节点分发cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz for i in {1..3}; do scp /usr/local/src/cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz root@slave0$i:/usr/local/src/ ; done
  • 在所有节点解压cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz到/opt/cloudera-manager/目录 tar -zxvf /usr/local/src/cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz -C /opt/cloudera-manager/
  • 在所有slave节点修改/opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini的server_host参数为master节点ip或主机名 sed -i "s/server_host=localhost/server_host=master/g" /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini
3.2 账号 && 权限
  • 在所有节点创建cloudera-scm账号,这是CM相关服务使用的默认账号 # 禁止使用"cloudera-scm"账号登陆 useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
  • 在所有节点/opt/cloudera-manager目录赋权 chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager
3.3 设置开机启动
  • 在master节点设置系统服务 # 设置使用"cloudera-scm-server"为系统启动服务 cp /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server /etc/rc.d/init.d/ chown cloudera-scm:cloudera-scm /etc/rc.d/init.d/cloudera-scm-server # 修改"CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}"的路径 vim /etc/rc.d/init.d/cloudera-scm-server CMF_DEFAULTS=/opt/cloudera-manager/cm-5.16.1/etc/default # 添加系统启动服务 chkconfig --add cloudera-scm-server chkconfig --level 35 cloudera-scm-server on checkconfig --list
  • 在所有slave节点设置系统服务 # 设置使用"cloudera-scm-agent"为系统启动服务 cp /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent /etc/rc.d/init.d/ chown cloudera-scm:cloudera-scm /etc/rc.d/init.d/cloudera-scm-agent # 修改"CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}"的路径"-/etc/default" vim /etc/rc.d/init.d/cloudera-scm-agent CMF_DEFAULTS=${CMF_DEFAULTS:/opt/cloudera-manager/cm-5.16.1/etc/default} # 添加系统启动服务 chkconfig --add cloudera-scm-agent chkconfig --level 35 cloudera-scm-agent on checkconfig --list
3.4 初始化数据库
  • 在所有节点设置MySQL驱动(JDBC);
  • 注意:部署JDBC在任意节点,则后续"CDH安装配置"阶段Reports Manager被分配在任意节点都可以 cp /usr/local/src/mysql-connector-java-8.0.13.jar /opt/cloudera-manager/cm-5.16.1/share/cmf/lib/ chown cloudera-scm:cloudera-scm /opt/cloudera-manager/cm-5.16.1/share/cmf/lib/mysql-connector-java-8.0.13.jar
  • 在master节点重启MySQL服务 service mysqld restart
  • 在任意节点初始化CM
  • 注意:Cloudera服务需要的相关database如下:
    • 表中给出的是CM相关服务配置文件中默认的database与user,但不是必须使用;
    • database在数据库中可直接创建,但CM初始化时如果没有database,则自动创建。

    Service Database User Cloudera Manager Server scm scm Activity Monitor amon amon Reports Manager rman rman Hue hue hue Hive Metastore Server metastore metastore Sentry Server sentry sentry Cloudera Navigator Audit Server nav nav Cloudera Navigator Metadata Server navms navms Oozie oozie oozie # 格式:scm_prepare_database.sh [options] (postgresql|mysql|Oracle) database username [password] # scm_prepare_database.sh:创建与配置CMS需要的数据库脚本,默认在"/opt/cloudera-manager/cm-5.16.1/share/cmf/schema/"目录; # postgresql|mysql|oracle:必选项,数据库类型; # database:必选项,针对postgresql|mysql,创建SCM数据库;针对oracle,填写sid; # username:必选项,SCM数据库的账号; # password:选填项,SCM数据库的账号密码,如果不指定,会提示输入; # options: # -h:数据库主机ip或hostname,默认是"localhost"; # -u:数据库账号,需要具备增删改查的权限,默认是"root"; # -p:账号密码,默认无密码; # --scm-host:SCM server主机名,默认是"localhost" /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % scm scm scm_pass /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % amon amon amon_pass /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % rman rman rman_pass /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % hue hue hue_pass /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % metastore metastore metastore_pass /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % sentry sentry sentry_pass /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % nav nav nav_pass /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % navms navms navms_pass /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql -h master -uroot -pcdh12#hadoop --scm-host % oozie oozie oozie_pass 返回如下信息,表示配置成功 [main] INFO com.cloudera.enterprise.dbutil.DbCommandExecutor - Successfully connected to database. All done, your SCM database is configured correctly!

3.5 创建本地parcel源
  • 在master节点制作本地parcel源 # 创建本地parcel源目录 mkdir -p /opt/cloudera/parcel-repo # 将parcel相关安装包放置到"/opt/cloudera/parcel-repo"目录; # 说明:"/opt/cloudera/parcel-repo"目录可放置多套parcel安装包; # 将"CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1"重命名为"CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha",否则会重新下载"CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel"安装包 mv /usr/local/src/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel /opt/cloudera/parcel-repo/ mv /usr/local/src/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha mv /usr/local/src/manifest.json /opt/cloudera/parcel-repo/ # 赋权 chown -R cloudera-scm:cloudera-scm /opt/cloudera/
  • 在所有salve节点创建软件安装目录 mkdir -p /opt/cloudera/parcels # 赋权 chown -R cloudera-scm:cloudera-scm /opt/cloudera/
3.6 启动CM服务
  • 在master节点启动cloudera-scm-server服务 # "cloudera-scm-server"启动需要连接数据库,监听端口启动会延迟 service cloudera-scm-server restart service cloudera-scm-server status -l # 通过启动后的状态查看,脚本需要执行"pstree"命令,需要安装依赖包 yum install psmisc -y
  • 在所有salve节点启动cloudera-scm-agent服务 yum install psmisc -y service cloudera-scm-agent restart service cloudera-scm-agent status -l

四. 安装CDH

4.1 CDH安装配置
  • 浏览器访问CM:http://172.30.200.75:7180
  • 默认账号/密码:admin/admin
  • 最终用户许可条款与条件
  • 部署版本,选择Cloudera Enterprise 试用版
  • 版本与服务说明
  • cloudera-scm-agent正常启动后,可发现相应的节点,指定集群服务的安装节点
  • 选择CDH版本
  • 集群安装,如果本地parcel源配置正确,则"下载"阶段瞬间完成,其余阶段视节点数与内部网络情况决定
  • 检查主机正确性(需要一些时间),针对slave节点有两个优化建议:
  • 1.建议将/proc/sys/vm/swappiness设置为最大值10。
    • swappiness值控制操作系统尝试交换内存的积极;
    • swappiness=0:表示最大限度使用物理内存,之后才是swap空间;
    • swappiness=100:表示积极使用swap分区,并且把内存上的数据及时搬迁到swap空间;
    • 如果是混合服务器,不建议完全禁用swap,可以尝试降低swappiness。
    • 临时调整: sysctl vm.swappiness=10
    • 永久调整: cat << EOF >> /etc/sysctl.conf # Adjust swappiness value vm.swappiness=10 EOF
  • 2.已启用透明大页面压缩,可能会导致重大性能问题,建议禁用此设置。
    • 临时调整: echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled
    • 永久调整: cat << EOF >> /etc/rc.d/rc.local # Disable transparent_hugepage echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled EOF # centos7.x系统,需要为"/etc/rc.d/rc.local"文件赋予执行权限 chmod +x /etc/rc.d/rc.local
  • 集群设置,选择服务进行安装,这里选择自定义服务的HDFS服务
  • 集群设置,自定义角色分配,默认即可
  • 集群设置,Reports Manager数据库名称rman,用户名rman
  • 集群设置,审核更改,默认即可
  • 集群设置,首次运行
  • 集群设置,服务安装完成
  • Cloudera Manager 主页
  • Cloudera Manager HDFS 服务汇总
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 环境
    • 1.1 系统节点信息
      • 1.2 软件版本
      • 二. 准备工作
        • 2.1 部分预配置
          • 2.2 设置hosts
            • 2.3 免密访问设置
              • 2.4 安装JDK
                • 2.5 安装MySQL
                • 三. Cloudera Manager安装
                  • 3.1 部署CM Server & Agent
                    • 3.2 账号 && 权限
                      • 3.3 设置开机启动
                        • 3.4 初始化数据库
                          • 3.5 创建本地parcel源
                            • 3.6 启动CM服务
                            • 四. 安装CDH
                              • 4.1 CDH安装配置
                              相关产品与服务
                              专用宿主机
                              专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档