1.1原生Hadoop的问题
- 版本管理过于混乱
- 部署过程较为繁琐,升级难度较大
- 兼容性差
- 安全性低
1.2CDH和CM(Cloudera Manager)
- CDH(Cloudera’s Distribution Including Apache Hadoop),是Hadoop众多分中的一种,由Cloudera公司维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可以直接用于生产环境。就是Hadoop等大数据安装包的第三方版本的集合,提供了Hadoop等大数据服务的安装包。
- CM(Cloudera Manager)提供了一个管理和监控Hadoop等大数据服务的web界面,能让我们方便安装大数据生态圈的大部分服务。
1.3Hadoop自动化部署和管理平台
主流的有Apache Ambari和Cloudera Manager,相对应的Hadoop的发行版为HDP和CDH。这种自动化部署平台的功能一般如下:
- 提供Hadoop大数据集群
- 管理Hadoop大数据集群
- 监控Hadoop大数据集群
PS:HDP的公司(hortonworks)已经被CDH公司(Cloudera)收购了
1.4Cloudera Manager架构
- Server:负责软件安装、配置,启动和停止服务,管理服务运行的群集。核心
- Agent:安装在每台主机上。负责启动和停止进程,配置,监控主机。
- Management Service:由一组执行各种监控,警报和报告功能角色的服务。图表的生成和管理
- Database:存储配置和监视信息。
- Cloudera Repository:软件由Cloudera 管理分布存储库。(有点类似Maven的中心仓库);在线安装(从中心仓库拉取)和离线安装(离线库)
- Clients:是用于与服务器进行交互的接口(API和Admin Console)
1.5CDH下载
官方下载地址:https://archive.cloudera.com
- CM下载
https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/
- CDH下载
https://archive.cloudera.com/cdh6/6.3.2/parcels/
注意:CDH的版本一定要和CM的版本对应
2.环境准备
使用VMware模拟多台主机,由于主机条件有限,只演示三台机器,配置如下:
主机名 |
系统 |
IP |
内存 |
磁盘 |
cdh-1 |
Centos7 |
192.168.100.10 |
4G |
60G |
cdh-2 |
Centos7 |
192.168.100.20 |
2G |
60G |
cdh-3 |
Centos7 |
192.168.100.30 |
2G |
60G |
2.1修改主机名(所有节点)
hostnamectl set-hostname cdh-1 hostnamectl set-hostname cdh-2 hostnamectl set-hostname cdh-3 |
2.2关闭防火墙(所有节点)
systemctl stop firewalld systemctl disable firewalld |
2.3关闭SELinux(所有节点)
setenforce 0 #临时关闭 #永久关闭 将SELINUX= enforcing 修改为SELINUX=disabled vi /etc/selinux/config SELINUX=disabled |
PS: 可以使用sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
2.4配置IP到主机的映射(所有节点)
vi /etc/hosts 192.168.100.10 cdh-1 192.168.100.20 cdh-2 192.168.100.30 cdh-3 |
2.5配置免密码登录(cdh-1)
# 生成公钥和私钥 三次回车 ssh-keygen # 复制公钥和私钥 ssh-copy-id cdh-1 ssh-copy-id cdh-2 ssh-copy-id cdh-3 |
2.6设置用户最大可打开文件数,进程数,内存占用(所有节点)
vi /etc/security/limits.conf |
* soft nofile 32728 * hard nofile 1024999 * soft nproc 65535 * hard noroc unlimited * soft memlock unlimited * hard memlock unlimited |
sysctl -p |
2.7设置swap空间(所有节点)
echo "vm.swappiness = 0" >> /etc/sysctl.conf |
Cloudera建议将交换空间设置为0,过多的交换空间会引起GC耗时的激增。
2.8关闭大页面压缩(所有节点)
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag |
3.安装
将下载好的CDH包和CM的包使用sftp上传到cdh-1
3.1配置本地yum
CDH的安装包都是rpm包如果使用rpm安装方式安装起来是比较复杂的,会有很多依赖问题需要解决,就需要使用yum帮助我们解决依赖问题。
1.配置centos源(cdh-1)
#挂载centos7镜像 mount /dev/cdrom /mnt/ #删除系统自带的源 rm -rf /etc/yum.repos.d/* #新建一个本地yum源 cat >> /etc/yum.repos.d/local.repo << EOF [centos] name=centos baseurl=file:///mnt gpgcheck=0 EOF #验证 yum repolist |
2.安装httpd服务(cdh-1)
# 安装 yum install -y httpd # 启动 systemctl start httpd #开机自启 systemctl enable httpd |
http服务可以帮助我们传输文件,默认静态资源的目录为/var/www/html
3.centos源配置为http方式获取(cdh-1)
#在http服务的静态资源目录创建centos目录 mkdir /var/www/html/centos #将centos的镜像文件复制到centos目录 cp -rvf /mnt/* /var/www/html/centos/ #可以通过http访问了 |
#修改cdh-1的本地centos源的配置 vi /etc/yum.repos.d/local.repo baseurl=http://cdh-1/centos #取消挂载 umount /dev/cdrom /mnt |
其他节点配置(cdh-1,cdh-2)
cat >> /etc/yum.repos.d/local.repo << EOF [centos] name=centos baseurl=http://cdh-1/centos gpgcheck=0 EOF #验证 yum repolist |
4.配置CM源
- 移动文件安装包文件到http服务器静态文件目录(cdh-1)
#在/var/www/html创建存放cm包的文件夹和cdh安装包的文件夹 mkdir /var/www/html/{cm,cdh} #将cdh的安装包和cm的包移动到创建的目录 #移动cm安装包 mv cloudera-manager-* /var/www/html/cm/ mv enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm /var/www/html/cm #移动cdh安装包和元数据文件 mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel manifest.json /var/www/html/cdh/ |
- 制作CM源生成repodata文件,需要用到createrepo这个包(cdh-1)
#安装 yum install -y createrepo #进入到cm的rpm包存放目录 cd /var/www/html/cm # 生成repodata文件夹 createrepo . |
- 配置yum源(所有节点)
cat >> /etc/yum.repos.d/cm.repo << EOF [CM] name=cm baseurl=http://cdh-1/cm/ gpgcheck=0 EOF |
3.2安装
1.安装依赖(所有节点)
yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 Mysql-python fuse |
2.安装Cloudera Manager和Cloudera Agent(cdh-1)
#安装JDK yum install -y oracle-j2sdk1.8.x86_64 #安装cloudera-manager yum install -y cloudera-manager-agent cloudera-manager-daemons cloudera-manager-server cloudera-manager-server-db-2 postgresq-server |
3.安装Mariadb
#安装 yum install -y mariadb-server #启动和开机自启 systemctl start mariadb && systemctl enable mariadb #配置Mariadb数据库 mysql_secure_installation |
4.初始化管理节点(cdh-1)
- 复制mysql的jdbc驱动包到/usr/share/java目录
需要使用sftp上传jar包到cdh-1节点上
#创建/usr/share/java目录 mkdir -p /usr/share/java #复制jar包到/usr/share/java下 cp mysql-connector-java-5.1.48.jar /usr/share/java/ #注意:需要改名为mysql-connector-java.jar mv /usr/share/java/mysql-connector-java-5.1.48.jar /usr/share/java/mysql-connector-java.jar |
- 初始化数据库
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h localhost -uroot -proot --scm-host localhost scm root root |
5.安装agent节点
只需要在chd-2和cdh-3节点上安装
#安装jdk yum install -y oracle-j2sdk1.8.x86_64 #安装agent yum install cloudera-manager-daemons cloudera-manager-agent -y |
6.修改配置文件(所有节点)
修改Cloudera Agent配置文件/etc/cloudera-scm-agent/config.ini,配置server_host为主节点cdh-1
#通过vi命令修改 vi /etc/cloudera-scm-agent/config.ini server_host=cdh-1 #也可以通过sed命令修改 sed -i "s/server_host=localhost/server_host=cdh-1/g" /etc/cloudera-scm-agent/config.ini 注意:只用使用一种命令修改就行了,推荐使用sed |
7.配置JAVA_HOME(所有节点)
vi /etc/profile |
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera/ export PATH=$PATH:$JAVA_HOME/bin |
3.3启动
1.启动Cloudera Manager(cdh-1)
在主节点启动Cloudera Manager
#启动 systemctl start cloudera-scm-server #设置开机自启 systemctl enable cloudera-scm-server |
2.启动Cloudera Agent(所有节点)
#启动 systemctl start cloudera-scm-agent #开机自启 systemctl enable cloudera-scm-agent |
可以访问http://192.168.100.10:7180用户名密码都是admin
4.使用
4.1登录
- 选择试用版
4.2配置集群
- 设置集群的名称
- 选择集群主机
- 配置CDH安装包
- 配置CDH parcel的位置
- 选择我们配置好的
- 等待下载包
- 检查主机性能
4.3安装Zookeeper
- 安装选项
- 选择服务安装主机
- 数据库配置
- 需要创建数据库(cdh-1)
#建库 create database activity default charset utf8; create database reports default charset utf8; create database audit default charset utf8; create database metadata default charset utf8; |
#授权 grant all on activity.* to cdh@localhost identified by 'cdh'; grant all on activity.* to cdh@'%' identified by 'cdh'; grant all on reports.* to cdh@localhost identified by 'cdh'; grant all on reports.* to cdh@'%' identified by 'cdh'; grant all on audit.* to cdh@localhost identified by 'cdh'; grant all on audit.* to cdh@'%' identified by 'cdh'; grant all on metadata.* to cdh@localhost identified by 'cdh'; grant all on metadata.* to cdh@'%' identified by 'cdh'; |
- 测试连接
- 可以配置邮件报警
- 安装
- 安装完成
问题
内存 CPU过小 配置问题
总结
- 安装过程还是比较简单的,只需要配置yum就可以使用yum安装
- 由于电脑的配置有限,导致出现了一些问题,内存尽量能给大一点就给大一点