1.1 CM简介
1.1.1 CM简介
Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
CM功能
管理:对集群进行管理,如添加、删除节点等 *** 作。
监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。
诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。
集成:多组件进行整合。
1.1.2 CM架构
Agent:安装在每台主机上。该代理负责启动和停止的过程,拆包配置,触发装置和监控主机。
Management Service:由一组执行各种监控,警报和报告功能角色的服务。
Database:存储配置和监视信息。通常情况下,多个逻辑数据库在一个或多个数据库服务器上运行。例如,Cloudera的管理服务器和监控角色使用不同的逻辑数据库。
Cloudera Repository:软件由Cloudera 管理分布存储库。
Clients:是用于与服务器进行交互的接口:
Admin Console :基于Web的用户界面与管理员管理集群和Cloudera管理。
API :与开发人员创建自定义的Cloudera Manager应用程序的API。
1.2 环境准备
1.2.1 虚拟机准备
克隆三台虚拟机(cm1、cm2, cm3),配置好对应主机的网络IP、主机名称、关闭防火墙。
设置cm1、cm2、cm3的主机对应内存 16G ,4G ,4G
1.2.2 SSH免密登录
配置hadoop101对cm1、cm2、cm3三台服务器免密登录。CDH服务开启与关闭是通过server和agent来完成的,所以这里不需要配置SSH免密登录,但是为了我们分发文件方便,在这里我们也配置SSH。
1)生成公钥和私钥:
[root@cm1 ~]# ssh-keygen -t rsa [root@cm2 ~]# ssh-keygen -t rsa [root@cm3 ~]# ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将cm1、cm2、cm3公钥拷贝到要免密登录的目标机器cm1上
三台机器执行命令:
#会在当前~/.ssh目录下生成authorized_keys文件,文件中存放node01的公钥 [root@cm1 .ssh]# ssh-copy-id cm1 #会将cm2的公钥追加到cm1节点的authorized_keys文件 [root@cm2 .ssh]# ssh-copy-id cm1 [root@cm3 .ssh]# ssh-copy-id cm1
最后将cm1节点上/.ssh/authorized_keys拷贝到cm2和cm3节点的/.ssh/目录上,执行如下命令:
[root@cm1 .ssh]# scp ~/.ssh/authorized_keys cm2:`pwd` [root@cm1 .ssh]# scp ~/.ssh/authorized_keys cm3:`pwd`
1.2.3安装JDK(重要)
需要使用官网提供的jdk
上传oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm 至cm1的/opt/software目录并安装
[root@cm1 software]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
配置环境变量
[root@cm1 software]# vi /etc/profile.d/my_env.sh export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib #前面必须加点 export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效
[root@cm1 software]# source /etc/profile.d/my_env.sh [root@cm1 software]# java -version java version "1.8.0_181"
分发jdk和配置文件
[root@cm1 software]# scp oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm cm2:`pwd` [root@cm1 software]# scp oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm cm3:`pwd` [root@cm1 software]# scp /etc/profile.d/my_env.sh cm2:/etc/profile.d/ [root@cm1 software]# scp /etc/profile.d/my_env.sh cm3:/etc/profile.d/
在cm2、cm3上执行安装jdk 并source
[root@cm2 software]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm [root@cm2 software]# source /etc/profile.d/my_env.sh [root@cm3 software]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm [root@cm3 software]# source /etc/profile.d/my_env.sh
1.2.4 安装MySQL
注意:一定要用root用户 *** 作如下步骤;先卸载MySQL再安装
安装包准备
查看MySQL是否安装
[root@cm1 software]# rpm -qa|grep -i mysql mysql-libs-5.1.73-7.el6.x86_64
如果安装了MySQL,就先卸载
[root@cm1 software]# rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
删除阿里云原有MySql依赖
[root@cm1 software]# yum remove mysql-libs
下载依赖并安装MySql
[root@cm1 software]# wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm #安装repo,安装完成会在/etc/yum.repos.d目录下生成mysql的repo文件 [root@cm1 software]# rpm -ivh mysql57-community-release-el7-9.noarch.rpm #安装mysql [root@cm1 software]# yum install -y mysql-server #执行完成之后,启动mysql [root@cm1 software]# systemctl start mysqld #获取临时密码 [root@cm1 software]# grep 'temporary password' /var/log/mysqld.log 2022-01-29T08:52:30.719138Z 1 [Note] A temporary password is generated for root@localhost: 4rqjyg)Bl?qo #登录系统 使用刚才的临时密码 [root@cm1 software]# mysql -uroot -p4rqjyg)Bl?qo #修改密码,密码默认是8位,并且包含大小写字母+特殊字符+数字, 这里设置密码验证级别为6位数字 mysql> set global validate_password_policy=0; #默认mysql密码长度是8位,这里修改成6位 mysql> set global validate_password_length=6; #设置简单好记的密码 mysql> alter user 'root'@'localhost' identified by '123456'; #也可删除user表中的数据,重置mysql root #进入mysql库 mysql>use mysql #查询user表 #旧版本 mysql>select User,Host,Password from user; #5.7版本以后 mysql>select User,host,authentication_string from user; #修改user表,把Host表内容修改为% 刷新权限 mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; mysql> flush privileges; #设置开机启动 [root@node01 ~]# systemctl enable mysqld [root@node01 ~]# systemctl list-unit-files | grep mysqld #以上设置密码验证级别和密码长度验证当mysql重启后还需要重复设置,可以在/etc/my.cnf进行全局设置 [mysqld] plugin-load=validate_password.so validate-password=off #配置完成后重启mysql即可 [root@node01 ~]# systemctl restart mysqld
1.2.5 安装第三方依赖包
在每台节点上安装ClouderManager需要的第三方依赖包,每台节点执行如下命令:
[root@cm1 ~]# yum install -y chkconfig bind-utils psmisc cyrus-sasl-plain cyrus-sasl-gssapi portmap /lib/lsb/init-functions httpd mod_ssl openssl-devel python python-psycopg2 MySQL-python libxslt zlib sqlite fuse fuse-libs redhat-lsb
1.3 CM安装部署
1.3.0 集群规划
1.3.1 创建cloudera-manager目录,存放cdh安装文件
在三台节点上创建安装目录
[root@cm1 software]# mkdir /opt/cloudera-manager [root@cm2 software]# mkdir /opt/cloudera-manager [root@cm3 software]# mkdir /opt/cloudera-manager
将clouderaManager rpm安装包’cm6.3.1-redhat7.tar.gz’上传至cm1节点的/opt/software目录下,解压到目录/opt/cloudera-manager下
[root@cm1 software]# tar -zxvf cm6.3.1-redhat7.tar.gz -C /opt/cloudera-manager/
1.3.2 RPM安装包分发
在cm1中将解压好的安装包里cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm和cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm分发到其他Agent节点
[root@cm1 cloudera-manager]# scp /opt/cloudera-manager/cm6.3.1/RPMS/x86_64/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm cm2:`pwd` [root@cm1 cloudera-manager]# scp /opt/cloudera-manager/cm6.3.1/RPMS/x86_64/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm cm2:`pwd` [root@cm1 cloudera-manager]# scp /opt/cloudera-manager/cm6.3.1/RPMS/x86_64/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm cm3:`pwd` [root@cm1 cloudera-manager]# scp /opt/cloudera-manager/cm6.3.1/RPMS/x86_64/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm cm3:`pwd`
1.3.3 在cm1节点安装CM Server
在cm1节点上安装daemons、servers RPM包,由于安装过程中会检查系统中的依赖包,如果没有会报错,可以安装时指定–nodeps不检查依赖关系,命令如下:
[root@cm1 ~]# cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64/ [root@cm1 x86_64]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm [root@cm1 x86_64]# rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
以上命令执行完成之后,会自动创建目录"/opt/cloudera",自动将RPM包安装到这个目录下
1.3.4 在CM Agent节点安装CM Agent
#在cm1节点上安装agent,可以指定--nodeps不检查依赖 [root@cm1 x86_64]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm #在cm2、cm3节点上安装daemons和agent [root@cm2 ~]# cd /opt/cloudera-manager/ [root@cm2 cloudera-manager]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm [root@cm2 cloudera-manager]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm [root@cm3 ~]# cd /opt/cloudera-manager/ [root@cm3 cloudera-manager]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm [root@cm3 cloudera-manager]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
当完成安装agent后,会在当前节点生成"/opt/cloudera/cm-agent"目录
1.3.5 配置CM Agent的server host
在所有的Agent节点上,修改Agent的配置文件"vi /etc/cloudera-scm-agent/config.ini", 修改“server_host=cm1”,指定所有Agent节点的server节点为cm1
1.3.6 配置CM Server数据库
在cm1 Server节点上,修改"/etc/cloudera-scm-server/db.properties"文件,配置内容如下:
com.cloudera.cmf.db.type=mysql # The database host com.cloudera.cmf.db.host=cm1 # The database name com.cloudera.cmf.db.name=cmf # The database user com.cloudera.cmf.db.user=cmf # The database user's password com.cloudera.cmf.db.password=123456 # The db setup type com.cloudera.cmf.db.setupType=EXTERNAL
将mysql-connector-java-5.1.27-bin.jar拷贝到cm1节点的/usr/share/java路径下,并重命名为"mysql-connector-java.jar"
[root@cm1 cm-agent]# mkdir /usr/share/java [root@cm1 cm-agent]# mv /opt/software/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar
MySQL中建库
[root@cm1 ~]# mysql -u root -p123456 mysql> grant all on *.* to 'cmf'@'%' identified by '123456' with grant option; mysql> quit
在CM Server节点cm1执行如下命令初始化数据库:
[root@cm1 ~]# cd /opt/cloudera/cm/schema/ #[-u用户 -p密码 数据库类型,数据库,用户,密码] [root@cm1 schema]# ./scm_prepare_database.sh -ucmf -p123456 mysql cmf cmf 123456
1.3.7 准备CDH Parcels本地源
在Server节点cm1上"/opt/cloudera/parcel-repo"目录下,上传如下文件:
CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcelCDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1manifest.json
1.3.8 启动CM Server、Agent
在Server节点启动ClouderaManager Server,分别在Agent节点启动ClouderaManager Agent
[root@cm1 parcel-repo]# mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha #在cm1节点上启动Server服务 [root@cm1 parcel-repo]# systemctl start cloudera-scm-server #在cm1、cm2、cm3节点上启动Agent服务 [root@cm1 parcel-repo]# systemctl start cloudera-scm-agent [root@cm2 parcel-repo]# systemctl start cloudera-scm-agent [root@cm3 parcel-repo]# systemctl start cloudera-scm-agent
访问 http://cm1:7180/
查看日志
[root@cm1 parcel-repo]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
至此,Cloudera Manager的安装完成
使用默认的用户名admin和密码admin登录
2.1接受条款和协议
Cloudera Manager主节点会将下载好的CDH分发到各个Agent节点,这时可以在cm1、cm2、cm3节点上看到路径/opt/cloudera/parcel-cache目录中有Cloudera Manager主节点传过来的CDH安装包,同时在完成传输之后每个Agent节点还会将CDH安装包解压到/opt/cloudera/parcels路径下
点击Inspect Network Performance, Inspect Hosts,稍等片刻会显示检查结果
点击显示检查结果,查看检查主机出现的问题
这里建议swappiness=10的时候表示最大限度使用物理内存。由于透明超大页面会导致意外的节点重新启动,可以在每台节点中执行如下命令,在检查主机正确性后面点击"重新运行"即可解决。命令如下:
#在cm1,cm2,cm3节点上执行如下命令: [root@cm1 ~]# echo 10 > /proc/sys/vm/swappiness [root@cm1 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag [root@cm1 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
关闭HDFS中的权限检查:dfs.permissions
Hive在安装完成后运行任务时需要设置队列名称,不然会报错
set mapred.job.queue.name=hive
点击继续之后,需要配置Hive依赖的mysql数据库,需要在cm1节点上连接mysql,执行创建数据库及分配权限语句
[root@cm1 ~]# mysql -uroot -p123456 mysql> create database hive DEFAULT CHARACTER SET utf8; mysql> grant all on hive.* to 'hive'@'%' identified by 'hive'; mysql> flush privileges;
在d出的页面中选择数据库,填写用户名及密码,点击"测试连接",测试数据库连接成功后,点击"继续"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)