乐趣区

关于大数据:USDP-实测搭建可替代CDH的免费大数据套件平台

在过来几年,Cloudera 和 Hortonworks 两家大数据先驱公司别离为咱们提供了 CDP(Cloudera Data Platform)和 HDP(Hortonworks Data Platform)两款企业级 Hadoop 解决方案,其都提供了部署、治理、监控以及运维大数据服务组件和节点的能力,大大晋升了大数据运维工程师的效率。然而随着 Cloudera 和 Hortonworks 两家公司的合并,以及一些策略上的变动。Cloudera 从早些时候的 CDH 6.3.3 当前再无收费社区版本,到 2021 年 1 月 31 日开始,所有 Cloudera 软件都须要无效的订阅进行拜访!这无疑给咱们大数据工程师带来一些影响。

在此背景下,UCloud 基于多年大数据平台开发教训,在不久前正式公布了针对私有化部署场景下的一站式智能大数据平台 USDP 免费版《继 CDH 免费之后,这家公司率先推出了免费版大数据套件服务!》。USDP 系列版本反对 HDFS、Kudu、ES 全生态,且后续会继续裁减其余服务、组件的反对,助力企业晋升大数据开发、运维效率,疾速构建大数据业务的剖析解决能力。

本文将给大家介绍一下 USDP 免费版的装置部署过程,心愿可能给大家一些帮忙。

环境筹备

咱们从 USDP 提供的材料能够看出,USDP 平台包含 Manager Node 和 Worker Node。Manager Node 中比拟重要的服务是 Manager Server,其为 USDP 治理端服务,需装备一个 MySQL 实例存储集群相干的元数据信息。Worker Node 中比拟重要的组件是 Agent,其为 USDP 从节点管制端服务,用于治理、操作所在节点以及所在节点上的大数据服务。其中 BigData Service 为各类大数据服务(例如:HDFS、YARN 等)。个别生产环境的部署架构如下所示:

从上图能够看出,USDP 平台须要咱们提供起码三个节点的集群。而且零碎必须为 CentOS,须要是 7.2 到 7.6 之间的版本,因为 USDP 须要从操作系统中获取一些信息来失常运行 USDP 平台。这里我用了三台节点,每台节点都是 8c32g,500G 数据盘,各个节点部署的服务如下:

下载和设置 USDP
确定了集群的规模之后,咱们就能够下载 USDP 免费版的安装包了。能够通过上面的链接进行下载:https://s3-cn-bj.ufileos.com/… 这个文件比拟大,大概有 43G 左右,所以下载大略须要数小时不等。

下载完之后,咱们将其解压,解压后的文件如下:

[root@node1 usdp-1.0.0]# ll
总用量 44686388
-rw-r--r-- 1 root root 20491532904 2 月   1 18:57 epel.tgz
-rw-r--r-- 1 root root     3077630 2 月   1 18:56 httpd-rpms.tar.gz
-rw-r--r-- 1 root root 16897158731 2 月   1 18:56 mirror.tgz
-rw-r--r-- 1 root root  8367086414 5 月  15 13:19 usdp-01-master-privatization-free-1.0.0.0.tar.gz

•usdp-01-master-privatization-free-1.0.0.0.tar.gz:是 USDP 主程序与大数据服务资源包
•httpd-rpms.tar.gz、mirror.tgz:是 USDP 离线 yum 根底源资源包
•epel.tgz:是 USDP 离线 yum 扩大源资源包

为了前面部署的不便,咱们别离创立 /opt/usdp-srv/ 和 /data 文件夹,将 epel.tgz、httpd-rpms.tar.gz 以及 mirror.tgz 移到 /data 文件夹,usdp-01-master-privatization-free-1.0.0.0.tar.gz 移到 /opt/usdp-srv/ 文件夹。并且把 usdp-01-master-privatization-free-1.0.0.0.tar.gz 文件散发到所有 USDP 节点上。

咱们到 /opt/usdp-srv/ 目录,解压 usdp-01-master-privatization-free-1.0.0.0.tar.gz 文件(其余节点也都去解压),能够失去如下的目录构造:

[root@node1 usdp-srv]# tar -zxf usdp-01-master-privatization-free-1.0.0.0.tar.gz
[root@node1 usdp-srv]# cd usdp/
[root@node1 usdp]# ls -l
总用量 4
drwxr-xr-x 2 root root   33 5 月  14 12:06 agent
drwxr-xr-x 2 root root  136 5 月  14 12:07 bin
drwxr-xr-x 2 root root   65 5 月  14 12:06 config
drwxr-xr-x 2 root root  137 12 月 16 2020 jmx_exporter
drwxr-xr-x 2 root root   35 5 月  14 12:06 recommend
drwxr-xr-x 6 root root   59 5 月  14 12:06 repair
drwxr-xr-x 3 root root   21 4 月  20 16:21 repository
drwxr-xr-x 2 root root 4096 12 月 16 2020 scripts
drwxr-xr-x 2 root root   34 5 月  14 12:07 server
drwxr-xr-x 2 root root   29 5 月  14 15:03 sql
drwxr-xr-x 3 root root   21 5 月  14 12:06 templated
drwxr-xr-x 2 root root    6 12 月 16 2020 verify
drwxr-xr-x 2 root root   29 5 月  14 12:06 versions

下面的各个目录解释如下:

•agent:USDP 分布式客户端程序
•bin:USDP 程序启停脚本
•config:USDP 程序配置文件
•jmx_exporter:过程监控指标采集程序
•recommend:大数据服务部署预置模板
•repair:部署前环境初始化脚本与资源包
•repository:大数据服务资源包
•scripts:USDP 相干程序脚本
•server:USDP 分布式治理端程序
•sql:USDP 元数据信息初始化 SQL
•templated:大数据服务配置模板
•verify:证书寄存门路
•versions:USDP 大数据资源包版本信息

USDP 平台部署
USDP 免费版筹备好之后,咱们就能够部署了。这里以首次全量部署为例进行阐明。

首次全量部署须要用到 /opt/usdp-srv/usdp/repair 模块,其目录构造如下所示:

[root@node1 usdp]# cd repair/
[root@node1 repair]# ll
总用量 8
drwxr-x--- 2 root root 4096 5 月  14 12:06 bin
drwxr-x--- 2 root root  105 5 月  14 12:06 config
drwxr-x--- 4 root root 4096 4 月  20 16:38 packages
drwxr-x--- 2 root root   23 5 月  14 12:06 sbin

下面目录的作用如下:

•bin:单个修复模块脚本所在目录,无需手动治理;
•config:一键修复脚本所需配置文件目录,须要用户手动批改;
•packages:修复过程中装置 USDP 所需依赖压缩包寄存目录;
•sbin:一键修复主脚本所在目录,无需手动治理;

在 config 目录上面有三个配置文件:

•repair.properties:次要配置私有化 yum 源装置节点信息、namp 装置节点信息、mysql 数据库装置节点信息、修复机器总数,以及修复模块日志寄存地位。用户依据须要自行批改相干配置项;
•repair-host-info.properties:节点全量修复,须要配置此文件,具体配置所有节点内网 Ip、明码、端口号以及主机名;
•repair-host-info-add.properties:集群新增节点时,须要配置此文件,具体配置新增节点内网 Ip、明码、端口号以及主机名;

因为咱们是全量修复,所以须要用到 repair.properties 和 repair-host-info.properties 两个配置文件。依据咱们下面节点的信息,批改如下:

repair.properties

# Set the YUM source host IP
yum.repo.host.ip=10.23.110.136
#The Host information for installing the NMAP service
namp.server.ip=10.23.110.136
namp.server.port=22
namp.server.password=abcd123456
# The Host information for installing the NTP service(Master)
ntp.master.ip=10.23.110.136
# Install MySQL machine node information
mysql.ip=10.23.110.136
mysql.host.ssh.port=22
mysql.host.ssh.password=abcd123456
# Set the MYSQL database login password
mysql.password=abc123456
# The total number of machines needed to be repaired.
repair.host.num=3
# The total number of added machines needed to be repaired.
repair.add.host.num=0
# Common Settings.
repair.log.dir=./logs

下面各个参数的具体含意如下:

repair-host-info.properties

# 1.Please provide the information of hosts needed to be repaired in the format specified below
# 2.usdp.ip.i(eg:i=1,2,3.....):
# 3.usdp.password.i:
# 4.usdp.ssh.port.i:
# 5.usdp.ssh.port.hostname.i:
usdp.ip.1=10.23.110.136
usdp.password.1=abcd123456
usdp.ssh.port.1=22
usdp.ssh.port.hostname.1=node1
usdp.ip.2=10.23.30.148
usdp.pa
ssword.2=abcd123456
usdp.ssh.port.2=22
usdp.ssh.port.hostname.2=node2
usdp.ip.3=10.23.148.109
usdp.password.3=abcd123456
usdp.ssh.port.3=22
usdp.ssh.port.hostname.3=node3

下面各个参数的具体含意如下:

留神:

•为了不便,咱们三台节点的登录明码都设置为 abcd123456,也就是 ssh 的登录明码。另外,这个登录明码最好不要有特殊字符,要不然装置的过程会呈现问题。
•repair-host-info.properties 文件外面咱们配置了三台 usdp 节点,如果咱们有超过三个节点,须要在外面增加对应的信息,有几个节点增加几个。

执行初始化脚本
实现上述步骤后,执行如下命令即可开始一键初始化工作。

cd /opt/usdp-srv/usdp/repair/sbin
bash repair.sh initAll
source /etc/profile

当执行完 bash repair.sh initAll 之后,看到有上面的输入后果阐明整个 usdp 平台的部署实现。

[root@node1 sbin]# bash repair.sh initAll
Bash Path: /opt/usdp-srv/usdp/repair/sbin
REPAIR_PATH: /opt/usdp-srv/usdp/repair/sbin
UDP_PATH: /opt/usdp-srv/usdp
REPAIR_BIN_PATH: /opt/usdp-srv/usdp/repair/bin
REPAIR_BIN_PATH: /opt/usdp-srv/usdp/repair/bin
REPAIR_SBIN_PATH: /opt/usdp-srv/usdp/repair/sbin
PACKAGES_PATH: /opt/usdp-srv/usdp/repair/packages
REPAIR_PATH: /opt/usdp-srv/usdp/repair
UDP_PATH: /opt/usdp-srv/usdp
REPAIR_BIN_PATH: /opt/usdp-srv/usdp/repair/bin
REPAIR_SBIN_PATH: /opt/usdp-srv/usdp/repair/sbin
PACKAGES_PATH: /opt/usdp-srv/usdp/repair/packages
.........
这里省了很多输入
.........
SUCCESS: All encryption-free login links have been repaired successfully
SUCCESS: All closing firewall links have been repaired successfully
SUCCESS: All closing swap links have been repaired successfully
SUCCESS: set hostname links have been repaired successfully
SUCCESS: Set  ntp  have been repaired successfully
SUCCESS: Set  libxslt devel  have been repaired successfully
SUCCESS: Set  psmisc  have been repaired successfully
SUCCESS: Set mysql-client links have been repaired successfully
SUCCESS: Set  mysql-python  have been repaired successfully
SUCCESS: All transparent_hugepage links have been repaired successfully
SUCCESS: Set JDK links have been repaired successfully
SUCCESS: Set xdg-utils links have been repaired successfully
SUCCESS: Set redhat-lsb links have been repaired successfully
SUCCESS: Set python-devel links have been repaired successfully
SUCCESS: Set cyrus-sasl links have been repaired successfully
SUCCESS: Set python36-devel links have been repaired successfully
SUCCESS: Set gcc-c++ links have been repaired successfully
SUCCESS: Set  Cython links have been repaired successfully
SUCCESS: Set  Six links have been repaired successfully
SUCCESS: Set  websocket-client links have been repaired successfully
SUCCESS: Set  ecdsa links have been repaired successfully
SUCCESS: Set  pytest-runner links have been repaired successfully
SUCCESS: Set krb5-devel links have been repaired successfully
The USDP deployment environment of all nodes has been repaired successfully . Please proceed to the next step

阐明:

•咱们只须要在执行 repair 的节点上下载 usdp-free-1.0.0.tar.gz,而后把解压后的 usdp-01-master-privatization-free-1.0.0.0.tar.gz 文件散发到所有节点,并解压到 /opt/usdp-srv/ 目录即可。不须要配置。
•下面的配置只须要在执行 repair 的节点上设置即可,别的节点不须要额定的设置;因为执行 bash repair.sh initAll 的时候会把下面批改的两个配置文件散发到所有 node 上。
•usdp 须要依赖 JDK、Python 以及 MySQL 等,这些都会在执行 bash repair.sh initAll 的时候主动装置好,而且所有的节点都会主动装置,咱们不须要额定解决。

为 USDP 配置 MySQL 数据库
下面初始化工作实现之后,咱们须要配置以下 USDP 服务节点的 MySQL 信息,只须要关上 /opt/usdp-srv/usdp/config/application-server.yml 文件,找到 datasource 配置片段,批改为如下内容即可:

  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    #    driver-class-name: org.gjt.mm.mysql.Driver
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    url: jdbc:p6spy:mysql://node1:3306/db_udp?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: abc123456

留神:这个 mysql 服务节点的地址和明码须要依据理论状况填写。因为我在 repair.properties 文件外面把 MySQL 装置在 10.23.110.136(也就是 node1)节点,登录明码设置为 abc123456。

启动 USDP 服务端程序
节点修复实现后,进入 USDP 治理端所在节点后,并进入 USDP 装置根目录,通过 root 用户执行如下命令,以启动 USDP 治理端服务:

[root@node1 sbin]# cd /opt/usdp-srv/usdp/
[root@node1 usdp]# bin/start-udp-server.sh
BASE_PATH: /opt/usdp-srv/usdp/bin
JMX_PATH: /opt/usdp-srv/usdp/jmx_exporter
ln -s /opt/usdp-srv /data/usdp-srv
ln -s /opt/usdp-srv/srv/udp /srv/
ln -s /data/var/log/udp /var/log/
REPAIR_PATH: /opt/usdp-srv/usdp/repair
UDP_PATH: /opt/usdp-srv/usdp
REPAIR_BIN_PATH: /opt/usdp-srv/usdp/repair/bin
REPAIR_SBIN_PATH: /opt/usdp-srv/usdp/repair/sbin
PACKAGES_PATH: /opt/usdp-srv/usdp/repair/packages
nmap-6.40-19.el7.x86_64
nmap exists
UDP Server is running with: 10691
Done.
[root@node1 usdp]#

看到 UDP Server is running with: 10691 之后阐明 USDP 治理节点启动胜利了。

USDP 集群配置

USDP 治理节点启动胜利之后,须要期待一会。接着咱们能够通过浏览器拜访如下地址即可关上 USDP Web 页面:http://10.23.110.136,如下:

第一次拜访 USDP Web 页面须要设置管理员明码,设置结束后,即可进行下一步操作。也就是须要激活 USDP:

咱们点击下面的 导入许可证 按钮,而后会弹出以下的页面:

咱们复制下来下面的硬件识别码(D2060300FFFB8B07),而后到 http://117.50.84.208:8002/lic… 页面生成一个免费版证书:

点击下面的 下载 按钮,无需解压,间接在 USDP 页面中上传证书即可。这时候就能够看到 新建集群 的页面:

咱们点击 新建集群向导 就能够进入集群配置的流程。

从蕴含服务组件能够看出,免费版的 USDP 反对计算、存储、监控、可视化、调度以及平安等六种组件。USDP 涵盖了 HDFS、Hive、HBase、Spark、Flink、Presto、Atlas、Ranger 等泛滥开源大数据组件,目前,UCloud 一站式智能大数据平台 USDP 所反对的服务如表格所示,同时还在继续拓展更多开源生态组件服务。

咱们点击下一步按钮,到指定集群节点页面。因为咱们在 repair-host-info.properties 文件外面配置了各个节点的 hostname(比方 usdp.ssh.port.hostname.1=node1),所以在执行 repair 的时候零碎曾经在 /etc/hosts 外面为咱们设置好了相干配置。所以这个页面咱们只须要要如下配置就能够:

点击

点击 下一步,USDP 零碎主动给咱们辨认好了各个节点的状况。因为 USDP 须要起码三节点的部署,所以咱们选中下面三个节点,而后进入下一步。这个环节 USDP 会为咱们查看节点的环境:


如果感兴趣的话,能够点击下面的 查看中 查看查看了什么货色:

如果是用 USDP 的 repair 脚本修复的话,下面的查看环境个别都会顺利通过,如下:

点击下一步,就能够进入到抉择服务页面,如下:

USDP 为咱们提供了三个举荐计划,咱们能够依据本人的须要抉择不同的组件部署。当然,如果 USDP 给咱们举荐的计划都不满足咱们的需要,那么咱们是能够抉择自定义来抉择不同的服务组合。这里因为是测试,咱们抉择 举荐计划 B,而后点击下一步。

这时候进入了在各个节点装置组件的选项,这里我抉择了智能举荐,也就是进入了上述的页面,而后点击下一步。

这块须要配置 HDFS 和 HIVE 的配置选项,次要是 HDFS DataNode 数据目录和 Hive MetaStore 的配置,我这块用的是默认配置,而后点击下一步。

这一步是咱们后面抉择各个组件的部署信息预览,如果没问题的话能够点击 开始部署,这时候会进入上面页面:

这个页面等进度到 100% 的时候,部署就实现了。

点击 集群详情 就能够看到集群的部署状况了。

到这里就 USDP 集群就装置实现了。另外,咱们能够看到 USDP 给咱们提供了丰盛的监控指标和报警告警设置。

在监控指标收集方面,次要包含以下三个当面:

•JMX 全量指标采集
•Http 罕用指标采集
•自定义指标采集

以上三局部监控数据最终将汇总于 USDP 的 Promethues 中,并在每个服务的概览页面中,展现最罕用的监控指标。同时,在 Grafana 中,通过 USDP 官网预置的监控模板(Dashboard),用户能够查看最具体监控指标。如果 USDP 预置的监控图标无奈满足业务需要,用户也能够自定义增加所需的监控图表。

在告警方面,USDP 提供丰盛的预置告警模板,用户只须要疏导进行简略配置,即可实现向不同指标(微信、钉钉、邮件、接口调用等)发送集群指标告警的需要。与监控指标的设计类似,如果用户认为预置的告警模板无奈满足业务需要,也能够自定义对告警模板进行批改,或增加新的告警规定。

USDP 集群应用

装置好了 USDP 集群之后,咱们来试用一下这个集群好不好用。这里以应用 Hive 来简略查问数据为例进行阐明。

在 USDP 任一装置过 hive 客户端的节点,进入 hadoop 用户,而后应用上面命令就能够进入 Hive 命令行模式了:

[root@node1 templated]# su hadoop
[hadoop@node1 templated]$ /srv/udp/1.0.0.0/hive/bin/hive
hive (default)> 

咱们依照上面步骤创立一张名为 iteblog_test_usdp_hive 的 Hive 表:

hive (default)> create table iteblog_test_usdp_hive (id int, name string, age int);
OK
Time taken: 3.014 seconds
hive (default)> show create table iteblog_test_usdp_hive;
OK
CREATE TABLE `iteblog_test_usdp_hive`(
  `id` int,
  `name` string,
  `age` int)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'hdfs://iteblog/user/hive/warehouse/iteblog_test_usdp_hive'
TBLPROPERTIES ('transient_lastDdlTime'='1625383436')
Time taken: 0.185 seconds, Fetched: 14 row(s)
hive (default)>

而后咱们插入一条数据,并查问:

hive (default)> insert into iteblog_test_usdp_hive values (1, 'iteblog', 100);
OK
_col0    _col1    _col2
Time taken: 10.321 seconds
hive (default)> select * from iteblog_test_usdp_hive;
OK
iteblog_test_usdp_hive.id    iteblog_test_usdp_hive.name    iteblog_test_usdp_hive.age
1    iteblog    100
Time taken: 0.186 seconds, Fetched: 1 row(s)
hive (default)>

在 USDP 中,Hive 默认的执行引擎为 Tez,能够到 UDSP 平台间接批改 hive.execution.engine 参数切换到其余执行引擎。通过 USDP 平台咱们能够进入很方面的进入到 Tez 的显示页面,具体如下:


总结

搞过大数据平台的运维部署的同学们应该很分明,部署一个大数据集群是一个很费时费力的体力活,稍不留神很容易出错。CDH 的呈现大大减少咱们部署运维大数据集群的工作,晋升了运维效率;然而随着 CDH 的全面免费,置信给大家组成了肯定的困扰。这次 UCloud 大数据团队给咱们提供的免费版 USDP 在肯定水平上能够齐全替掉 CDH 平台,在装置体验过程还是比拟顺的,装置部署过程根本都是全自动,缩小人工的工作量,缩小出错,十分值得给大家举荐。

扫码获取具体 USDP 装置手册 退出 UCloud 大数据技术交换群

退出移动版