CDH
1、 平台介绍
试想一下,1000台服务器的集群,最少要花费多长时间来搭建好Hadoop集群,包括Hive、Hbase、Flume、Kafka、Spark等等。光从部署 的角度来看就是一个非常耗费时间的举动。
只给你一天时间,完成以上工作?
对于以上集群进行hadoop版本升级,你会选择什么升级方案,最少要花费多长时间?
升级之后的新版本的Hadoop,与Hive、Hbase、Flume、Kafka、Spark等等兼容?
原生的apache存在着如下问题:
- 版本管理混乱
- 部署过程繁琐、升级过程复杂
- 兼容性差
- 安全性低
所以我们一般会选择发行版,平台化操作。比较常见的如下
1. Cloudera’s Distribution Including Apache Hadoop(CDH)
2. Hortonworks Data Platform (HDP)
最为熟知的两个免费的基于Apache Hadoop社区版衍生出来的。
我们今天就给大家介绍CDH的使用。
CDH全称Cloudera’s Distribution, including Apache Hadoop,是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,提供了Hadoop的核心(可扩展存储,分布式计算),并且有非常友好的基于Web的用户界面。 整体版本划分清晰,版本更新速度快,支持Kerberos安全认证。
- Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小 时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
- 一句话概括CDH就是集成多种技术的一个框架。
1.2. CDH提供
- 灵活性-存储任何类型的数据并使用各种不同的计算框架进行处理,包括批处理,交互式SQL,自由文本搜索,机器学习和统计计算。
- 集成-在可与广泛的硬件和软件解决方案一起使用的完整Hadoop平台上快速启动并运行。
- 安全性-处理和控制敏感数据。
- 可扩展性-启用广泛的应用程序并进行扩展,并扩展它们以满足您的要求。
- 高可用性-自信地执行关键任务业务任务。
- 兼容性-利用您现有的IT基础架构和投资。
2、CDH结构图
3、 Cloudera Manager
Cloudra Manager简称CM,它是一个web操作平台,可以借助安装CDH然后安装多种Hadoop框架。
3.1. CloudraManager技术构成
- Clients:客户端,通过web页面和ClouderaManager和服务器进行交互。
- API:通过API和ClouderaManagement和服务器进行交互
- Cloudera Repository:存储分发安装包
- Management Server:进行监控和预警
- Database:存储预警信息和配置信息。
- Agent:分布在多台服务器,负责配置,启动和停止进程。监控主机。
3.2. CM 功能
- cloudera manager有四大功能:
- 管理:对集群进行管理,如添加、删除节点等操作。
- 监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。
- 诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。
- 集成:多组件进行整合。
主机 | host |
---|---|
机架 | rack |
集群 | Cluser |
服务 | service |
服务实例 | service instance |
角色 | role |
角色实例 | role |
角色 组 | role instance |
主机模板 | host template parcel |
静态服务池 | static service pool |
动态服务池 | dynamic resource pool |
5、CDH 6.3.2 安装部署
5.1. 环境准备
5.1.1. 虚拟机前置配置
##修改主机名
##关闭防火墙
##关闭SeLinux
##配置hosts文件
##安装JDK配置环境变量 【官方推荐 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm】
##配置服务器时间同步
##配置服务器相互免秘钥
5.1.2. 虚拟机新增配置
##设置打开最大文件数
- [root@123 ~]# vim /etc/security/limits.conf
* soft nofile 32728
* hard nofile 1024999
* soft nproc 65535
* hard nproc unlimited
* soft memlock unlimited
* hard memlock unlimited
##设置swap空间
- [root@123 ~]# echo "vm.swappiess = 10" >> /etc/sysctl.conf
- [root@123 ~]# sysctl vm.swappiness=10
##关闭大页面压缩
- [root@123 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
- [root@123 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
- [root@123 ~]# echo never > /etc/rc.local
##yum安装依赖包
- [root@123 ~]# wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
- [root@123 ~]# rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm
##yum安装依赖包
- [root@123 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb postgresql* portmap mod_ssl openssl-devel python-psycopg2 MySQL-python python-devel telnet pcre-devel gcc gcc-c++
5.1.3. Mysql数据库
- 安装Mysql数据库
- 修改密码难度
- set global validate_password_policy=0;
- set global validate_password_length=1;
- 拷贝Mysql数据库驱动
[root@123 ~]# mkdir -p /usr/share/java
[root@123 ~]# mv mysql-connector-java-5.1.32-bin.jar /usr/share/java/mysql-connector-java.jar
5.1.4. 上传安装包
5.1.5. 安装Httpd
[root@node01 ~]# yum -y install httpd
[root@node01 ~]# systemctl start httpd.service
[root@node01 ~]# systemctl enable httpd.service
[root@node01 ~]# systemctl status httpd.service
网站访问:http://192.168.88.101/
5.1.6. 制作本地Yum源
-
拷贝安装包至指定路径下
-
[root@node01 ~]# mkdir -p /var/www/html/{cm6.3.1,cdh6.3.2} [root@node01 ~]# mv CDH/* /var/www/html/cdh6.3.2/ [root@node01 ~]# mv ClouderaManager/* /var/www/html/cm6.3.1/ [root@node01 ~]# rm -rf C* P* [root@node01 ~]# ll /var/www/html/*
-
-
制作本地Yum文件
-
[root@node01 ~]# yum install -y createrepo [root@node01 ~]# cd /var/www/html/cm6.3.1/ [root@node01 cm6.3.1]# createrepo . [root@node01 ~]# cd /var/www/html/cdh6.3.2/ [root@node01 cdh6.3.2]# createrepo .
-
http://192.168.88.101/cdh6.3.2/
-
http://192.168.88.101/cm6.3.1/
-
-
创建Repo[cloudera-manager ]文件,并拷贝至其他节点
-
[root@node01 ~]# vim /etc/yum.repos.d/cloudera-manager.repo
-
[cloudera-manager] name = Cloudera Manager, Version cm6.3.1 baseurl = http://node01/cm6.3.1 gpgcheck = 0
-
[root@node01 ~]# scp /etc/yum.repos.d/cloudera-manager.repo root@node02:/etc/yum.repos.d/ [root@node01 ~]# scp /etc/yum.repos.d/cloudera-manager.repo root@node03:/etc/yum.repos.d/ [root@node01 ~]# yum repolist // 123台都要安装 [root@123 ~]# yum clean all [root@123 ~]# yum makecache
-
-
如果感觉不稳可以拍摄快照 cdh-pre
5.2. CM安装部署
系统架构 | node01 | node02 | node03 |
---|---|---|---|
Cloudera Manager Server | * | ||
Clodudera Manager Agent | * | * | * |
5.2.1. 安装CM Server
[root@node01 ~]# yum install cloudera-manager-daemons cloudera-manager-server cloudera-manager-server-db-2
5.2.2. 安装CM Agent
[root@123 ~]# yum install cloudera-manager-daemons cloudera-manager-agent
5.2.3. 初始化数据库
-
连接参数 #格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器
-
[root@node01 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm -h192.168.88.101 -P3306 -uroot -p123456 --scm-host 192.168.88.101 scm root 123456
5.2.4. 配置CM Agent
[root@123 ~]# vim /etc/cloudera-scm-agent/config.ini-- 修改18行 server_host=node01
5.2.5. 启动Cloudera Manager
- #Sever首次启动会自动创建表以及数据,不要立即关闭或重启,否则需要删除所有表及数据重新安装
[root@node01 ~]# systemctl start cloudera-scm-server[root@node01 ~]# systemctl enable cloudera-scm-server[root@123 ~]# systemctl start cloudera-scm-agent[root@123 ~]# systemctl enable cloudera-scm-agent
5.2.6. 访问Cloudera Manager
- http://192.168.88.101:7180/
- 用户名 admin
- 密码 admin
5.3. 集群搭建
5.3.1. 创建集群
- 首页欢迎
- 设置集群名称
- 选择集群主机
- 选择CDH and软件
- 设置 Parcel存储库
- Install Parcels
- Inspect Cluster
5.3.2. 创建服务
- select Services
-
数据库设置: 配置和测试数据库连接
-
服务名 数据库名 用户名 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 -
#创建数据库和用户 CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; set global validate_password_length=6; set global validate_password_policy=0; GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY '123456'; GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456'; GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456'; GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456'; GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456'; GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456'; GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456'; GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON amon.* TO 'amon'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON rman.* TO 'rman'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON nav.* TO 'nav'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON navms.* TO 'navms'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON oozie.* TO 'oozie'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON hue.* TO 'hue'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON hive.* TO 'hive'@'node01' IDENTIFIED BY '123456'; GRANT ALL ON amon.* TO 'amon'@'node01' IDENTIFIED BY '123456'; GRANT ALL ON rman.* TO 'rman'@'node01' IDENTIFIED BY '123456'; GRANT ALL ON nav.* TO 'nav'@'node01' IDENTIFIED BY '123456'; GRANT ALL ON navms.* TO 'navms'@'node01' IDENTIFIED BY '123456'; GRANT ALL ON oozie.* TO 'oozie'@'node01' IDENTIFIED BY '123456'; GRANT ALL ON hue.* TO 'hue'@'node01' IDENTIFIED BY '123456'; #刷新源 FLUSH PRIVILEGES; #退出 quit #重启mysql服务 [root@node01 ~]# systemctl restart mysqld.service
-
- 审核更改
- 首次运行 命令
- 命令完成
- 汇总完成