ClouderaManager6.3.1+CDH6.3.2+PHOENIX-5.0.0集成部署

1,299 阅读7分钟

CM、cm => ClouderaManager
建议收藏

大数据基础:Linux操作系统(下)

大数据基础:Linux操作系统(上)

Hive数据聚合

Linux中的SSH协议

Apache Kafka客户端KafkaProducer

7问Impala

Hive数据过滤之分区和分桶

Apache Kafka生产环境集群资源规划与配置

入门Apache Kafka需要了解的方方面面

内容提要:
1.初始资源
2.版本选型
3.环境和安装包
3.1 部署方式
3.2 CM安装包
3.3 Parcel包
3.4 JDK部署
3.5 MySQL安装部署
3.6 mysql-connector-java.jar
3.7 确认操作系统版本
4.CM部署步骤
4.1 JDK和MySQL安装部署(略)
4.2 统一hosts文件
4.3 确认关闭防火墙
4.4 确认关闭selinux
4.5 确认ulimit
4.6 确认swap交换分区
4.7 确认时钟同步
4.8 创建CM Server的数据库和账户
4.9 CM Server部署mysql-jdbc jar
4.10 部署离线parcel源
4.11 CM离线部署
4.12 CM启动与初始页面
5.CDH部署步骤
5.1 选择版本-免费版
5.2 集群安装
5.3 设置集群名称
5.4 指定集群主机
5.5 选择或设置Parcel源
5.6 安装Parcel
5.7 集群网络和主机检查
5.8 集群设置
5.9 选择自定义服务
5.10 自定义角色分配
5.11 数据库设置
5.12 审核更改默认的目录
5.13 首次运行命令
5.14 自定义服务安装完成
5.15 Hue和Hive遇到的问题
5.16 各种目录配置的问题
6.集成PHOENIX
6.1 配置PHOENIX的parcel源并完成下载、分配和激活
6.2 刷新CM页面
6.3 CDH-PHOENIX简单验证

1. 初始资源

说明,如果后续需要添加新的机器和新的组件角色,从CM管理页面正常添加即可。

资源示例:

机器zlxx-test1-110用于部署CM Server和MySQL、parcel源。

确认root用户权限:

$ sudo su
[root@zlxx-test1-110 zlxx]#

2. 版本选型

参考cloudera官方文档,新的后续版本已经没有免费下载了。

docs.cloudera.com/documentati…
docs.cloudera.com/documentati…

最终确认的6.x版本:
【cm6.3.1 + cdh6.3.2 + PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7】

3. 环境和安装包

3.1 部署方式

离线部署

3.2 CM安装包

cm6.3.1-redhat7
下载地址:

archive.cloudera.com/cm6/6.3.1/r…

先下载到机器zlxx-test1-110,放到比如目录:/zlxx/softs/下,后续部署httpd服务,供其它若干机器在局域网下快速下载分发。

3.3 Parcel包

同样下载到机器zlxx-test1-110的/zlxx/softs/下。

CDH-6.3.2-1
下载地址:

archive.cloudera.com/cdh6/6.3.2/…

archive.cloudera.com/cdh6/6.3.2/…

archive.cloudera.com/cdh6/6.3.2/…

PHOENIX-5.0.0-cdh6.2.0

archive.cloudera.com/phoenix/6.2…

archive.cloudera.com/phoenix/6.2…

archive.cloudera.com/phoenix/6.2…

3.4 JDK部署

JDK8
下载地址:

www.oracle.com/java/techno…

直接下载解压版,解压后配置环境变量即可(部署略)

3.5 MySQL安装部署

MySQL 5.7.28-1.el7.x86_64
下载地址:

downloads.mysql.com/archives/co…

直接下载rpm包,使用rpm -ivh安装即可(部署略)

3.6 mysql-connector-java.jar

mysql-connector-java.jar
直接从Maven仓库下载下来jar包,然后重命名。
下载地址:

repo1.maven.org/maven2/mysq…

默认下载到/zlxx/softs/文件夹下面。

3.7 确认操作系统版本

3.10.0-1127.19.1.el7.x86_64

# cat /proc/version
Linux version 3.10.0-1127.19.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) 
(gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 25 17:23:54 UTC 2020

4. CM部署步骤

4.1 JDK和MySQL安装部署(略)

4.2 统一hosts文件

所有机器:hosts文件加入所有涉及到的hostname和IP映射。

192.168.16.110 zlxx-test1-110
192.168.16.111 zlxx-test1-111
192.168.16.112 zlxx-test1-112
192.168.16.113 zlxx-test1-113
192.168.16.114 zlxx-test1-114
192.168.16.115 zlxx-test1-115
192.168.16.116 zlxx-test1-116

4.3 确认关闭防火墙

所有机器

# systemctl status firewalld
 firewalld.service - firewalld - dynamic firewall daemon   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)   Active: inactive (dead)     Docs: man:firewalld(1)

4.4 确认关闭selinux

所有机器

# cat /etc/selinux/config
SELINUX=disabled

4.5 确认ulimit

所有机器

# ulimit -n
65536

4.6 确认swap交换分区

所有机器

# free -h              
total        used        free      shared  buff/cache   available
Mem:            62G        5.5G         47G         35M         10G         56G
Swap:          2.0G          0B        2.0G

swap交换分区是默认开启的,特殊组件需要,可以关闭掉。

4.7 确认时钟同步

所有机器,现在centos7一般都使用chrony管理时钟同步,具体可参考这篇文章:

www.cnblogs.com/yinzhengjie…

chrony is a versatile implementation of the Network Time Protocol (NTP).

# systemctl status chronyd
 chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-12-01 08:53:07 CST; 11h ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: 862 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 804 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 834 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─834 /usr/sbin/chronyd

4.8 创建CM Server的数据库和账户

注意:数据库字符集编码必须是utf8,否则会有数据表初始化创建失败

数据库名称:cmf
用户名:cmf
密码:test.zlxx@2020CDH

mysql> create database cmf default character SET utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY 'test.zlxx@2020CDH';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cmf                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
```

4.9 CM Server部署mysql-jdbc jar

在zlxx-test1-110机器上进行操作,需要用到mysql-jdbc的地方:CM Server、Hue、Hive,部署这几个组件的地方需要注意,可以提前准备好jar包。

# mkdir -p /usr/share/java/
# cp /zlxx/softs/mysql-connector-java.jar .
# ls
mysql-connector-java.jar
# pwd
/usr/share/java

4.10 部署离线parcel源

部署httpd服务
在zlxx-test1-110机器上进行操作

# yum install -y httpd

准备CDH和PHOENIX的parcel文件

# mkdir -p /var/www/html/cdh6_parcel

把parcel本身及相关文件都拷贝到/var/www/html/cdh6_parcel下面去

# mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /var/www/html/cdh6_parcel/
# mv 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

sha1名称里面把1去掉

# mkdir -p /var/www/html/phoenix_parcel

把PHOENIX对应的parcel或者直接wget下载到对应上面的文件夹phoenix_parcel下面去

把CM的安装包也放到/var/www/html/下面去

# mkdir -p /var/www/html/cm
# ls
cdh6_parcel  cm  phoenix_parcel

直接启动httpd服务并通过页面查看

# systemctl start httpd

http://192.168.16.110/cdh6\_parcel/
http://192.168.16.110/phoenix\_parcel/

4.11 CM离线部署

离线部署cm server
机器:zlxx-test1-110;
创建文件夹,用于存储解压后的安装包文件。

# mkdir /zlxx/cloudera-manager
# tar -xzvf cm6.3.1-redhat7.tar.gz -C /zlxx/cloudera-manager/

安装:

# cd /zlxx/cloudera-manager/cm6.3.1/RPMS/x86_64
# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
# rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

修改cm server的配置

# vi /etc/cloudera-scm-server/db.properties 
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=zlxx-test1-110
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=test.zlxx@2020CDH
com.cloudera.cmf.db.setupType=EXTERNAL

离线部署cm agent
除了zlxx-test1-110之外的所有机器,cm6.3.1-redhat7.tar.gz通过前面的httpd服务把安装包下载到每一台机器里面。

创建文件夹,用于存储解压后的安装包文件。

# mkdir /zlxx/cloudera-manager
# tar -xzvf cm6.3.1-redhat7.tar.gz -C /zlxx/cloudera-manager/

安装:

# cd /zlxx/cloudera-manager/cm6.3.1/RPMS/x86_64
# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force

修改cm agent的配置,指向cm server的节点zlxx-test1-110

# sed -i "s/server_host=localhost/server_host=zlxx-test1-110/g" /etc/cloudera-scm-agent/config.ini

4.12 CM启动与初始页面

启动cm server
cm server机器:zlxx-test1-110,默认的日志目录/var/log/cloudera-scm-server/

# systemctl start cloudera-scm-server
# cd /var/log/cloudera-scm-server/
# tail -F cloudera-scm-server.log

日志末尾出现7180端⼝,即表示cm server启动成功。

启动cm agent
每一台都启动,也可以配置ssh编写一键启动脚本(略)。

# systemctl start cloudera-scm-agent
# cd /var/log/cloudera-scm-agent
# tail -F cloudera-scm-agent.log

CM初始页面
http://192.168.16.110:7180/
账号密码:admin/admin

5. CDH部署步骤

从CM初始页面往下走

5.1 选择版本-免费版

5.2 集群安装

5.3 设置集群名称

5.4 指定集群主机

5.5 选择或设置Parcel源

5.6 安装Parcel

5.7 集群网络和主机检查

上述警告,处理完成后再次检查,会变为状态正常。截图中查看详细信息,已经提供了解决方法建议。

透明大页面压缩的问题
建议里面有临时生效和永久生效:临时生效(受影响的每台机器都做同样的操作):

# 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

PGSQL模块的问题
直接执行以下安装:

# yum install -y postgresql-devel*

以上问题解决后,重新进行检查,均状态正常。

5.8 集群设置

5.9 选择自定义服务

最基础的HBase、HDFS、Hive、Hue、YARN、Zookeeper,列表里没有PHOENIX,后续再整合。

5.10 自定义角色分配

这里直接根据系统默认的来,后续再手动补充服务节点、开启HDFS HA等

5.11 数据库设置

为Hue和Hive的MySQL库创建数据库、用户名和密码

create database hive default character SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'test.zlxx@2020CDH';
create database hue default character SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'test.zlxx@2020CDH';
flush privileges;

Hive安装所在的机器部署mysql连接的jar包: /usr/share/java目录下放置mysql-connector-java.jar。包比较小,直接下载,或者从前面的mysql-connector-java-5.1.49.jar拷贝一份,重命名把版本号去掉。

# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar

5.12 审核更改默认的目录

5.13 首次运行命令

5.14 自定义服务安装完成

5.15 Hue和Hive遇到的问题

Hue Load Balancer启动后挂掉,运行不起来
在部署Load Balancer服务的机器上安装mod_ssl

# yum install mod_ssl -y

Hue登录后页面报错

CDH-hue : Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available

需要在Hue服务所在的机器安装相关软件:

# yum install -y cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi

5.16 各种目录配置的问题

官方会建议留有足够的磁盘空间,包括/opt、/var、/tmp目录,因为默认情况下会把一些重要的数据目录、日志目录以及临时文件放在前面三个目录或子目录下。需要根据具体的磁盘规划,把具体目录路径分配到对应的挂载磁盘对应的目录中去。如果是默认的路径,磁盘不足或低于阈值(一般10G)会有黄色的警告。

6. 集成PHOENIX

6.1 配置PHOENIX的parcel源并完成下载、分配和激活

http://192.168.16.110:7180/cmf/parcel/status?clusterId=1#clusterId=1&remoteOnly=false

PHOENIX的parcel源添加完成后,重新访问parcel列表,会显示出来刚刚添加的Phoenix;然后点击最右边的按钮:下载、分配和激活

6.2 刷新CM页面

刷新CM之后,会提示重启HBase以及更新配置

点击上图红色框中的提示图标,处理过期配置,要求更新配置

自动配置完成后即集成PHOENIX成功。

6.3 CDH-PHOENIX简单验证

进入部署了HBase和PHOENIX的机器如:zlxx-test1-111

# cd /opt/cloudera/parcels/PHOENIX/bin/
# ls
phoenix-performance  phoenix-psql  phoenix-queryserver  phoenix-sqlline  phoenix-sqlline-thin

# ./phoenix-sqlline
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix: none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/phoenix-5.0.0-cdh6.2.0-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/jars/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Connected to: Phoenix (version 5.0)
Driver: PhoenixEmbeddedDriver (version 5.0)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
133/133 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:> !tables
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--+
| TABLE_CAT  | TABLE_SCHEM  | TABLE_NAME  |  TABLE_TYPE   | REMARKS  | TYPE_NAME  | SELF_REFERENCING_COL_NAME  | REF_GENERATION  |  |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--+
|            | SYSTEM       | CATALOG     | SYSTEM TABLE  |          |            |                            |                 |  |
|            | SYSTEM       | FUNCTION    | SYSTEM TABLE  |          |            |                            |                 |  |
|            | SYSTEM       | LOG         | SYSTEM TABLE  |          |            |                            |                 |  |
|            | SYSTEM       | SEQUENCE    | SYSTEM TABLE  |          |            |                            |                 |  |
|            | SYSTEM       | STATS       | SYSTEM TABLE  |          |            |                            |                 |  |
+------------+--------------+-------------+---------------+----------+------------+----------------------------+-----------------+--+
0: jdbc:phoenix:>

查看HBase端表的情况,是能够看到Phoenix默认元数据表的

# hbase shell
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.1.0-cdh6.3.2, rUnknown, Fri Nov  8 05:44:07 PST 2019
Took 0.0008 seconds
hbase(main):001:0> list
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.LOG
SYSTEM.MUTEX
SYSTEM.SEQUENCE
SYSTEM.STATS
6 row(s)
Took 0.3853 seconds
=> ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.LOG", "SYSTEM.MUTEX", "SYSTEM.SEQUENCE", "SYSTEM.STATS"]
hbase(main):002:0>

创建表和增删改查都做了简单验证,就不赘述了。

往期精选

大数据基础:Linux操作系统(下)

大数据基础:Linux操作系统(上)

Hive数据聚合

Linux中的SSH协议

Apache Kafka客户端KafkaProducer

7问Impala

Hive数据过滤之分区和分桶

Apache Kafka生产环境集群资源规划与配置

入门Apache Kafka需要了解的方方面面