简介:关于CDH和Cloudera Manager
CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。
官方参考文档:https://www.cloudera.com/documentation/enterprise/6/6.0/topics/installation.html
相关包的下载地址:
Cloudera Manager下载地址:https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPMS/x86_64/
- cloudera-manager-agent-6.0.0-530873.el7.x86_64.rpm
- cloudera-manager-daemons-6.0.0-530873.el7.x86_64.rpm
- cloudera-manager-server-6.0.0-530873.el7.x86_64.rpm
- cloudera-manager-server-db-2-6.0.0-530873.el7.x86_64.rpm
- oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
CDH安装包:https://archive.cloudera.com/cdh6/6.0.0/parcels/
(根据操作系统选择相应文件版本)
- CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel
- CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel.sha256
- manifest.json
1.准备工作:系统环境
注:环境中准备工作已完成,这里只是提示
1.1 网络配置(所有节点)
修改主机名
#vi /etc/sysconfig/network
HOSTNAME=hadoop1
配置静态ip
vi /etc/sysconfig/network-scripts/ifcfg-em1
Ip主机名对应
#vi /etc/hosts
1.2 SSH配置
# ~/.ssh
1.3 关闭防火墙和SELinux
systemctl stop firewalld
Systemctl disable firewalld
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
1.4 配置NTP服务
注:测试环境中没有进行配置
master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。
所有datanode节点以master节点为基础同步时间。
所有节点安装相关组件:yum install ntp。
启动服务: systemctl start ntpd
注:jdk1.8提前安装配置
2.安装cloudera manager server
2.1 安装存储库(所有节点)
wget https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/
导入存储库签名GPG秘钥
rpm --import https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/RPM-GPG-KEY-cloudera
2.2 安装cloudera manager包
Master节点:
yum -y install cloudera-manager-agent cloudera-manager-daemons cloudera-manager-server
Node 节点:
yum -y install cloudera-manager-daemons cloudera-manager-agent
cloudera-manager-daemons是server和agent必须安装的,大概有1.3G大小。
网络环境不好可直接安装rpm包
如果用rpm包安装,先安装cloudera-manager-daemons,然后在安装cloudera-manager-server和cloudera-manager-agent
(注 rpm -ivh cloudera-manager-daemons)
2.3 mysql安装
注:采用了hadoop1中的mysql
Mysql驱动放置:
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar zxvf mysql-connector-java-5.1.46.tar.gz
mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
必须配置数据库以支持MySQL UTF8 字符集编码。
以及CDH需要的数据库创建及赋予权限
需要建的库有:scm、amon、rman、hue、metastore、sentry、nav、navms、oozie
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY ' amon@123';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';
2.4 设置Cloudera Manager数据库
Mysql在本地执行(即同一服务器中):
rm -rf /etc/cloudera-scm-server/db.mgmt.properties
/opt/cloudera/cm/schema/scm_prepare_database.sh <databaseType> <databaseName> <databaseUser> <datapasswd>
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
注:会生成/etc/cloudera-scm-server/db.properties,里面是数据库的连接信息,如果这个文件有误,或者不存在,后面的服务无法启动。
Mysql不在本地时执行(即不在同一服务器):
在Cloudera Manager Server主机上运行脚本(hadoop3)并连接到远程MySQL主机(hadoop1):
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h hadoop1 --scm-host hadoop3 scm scm
3.安装CDH
将CDH6.0相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中,如果没有此目录,可以自己创建。
注意:最后将CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel.sha256,重命名为CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel.sha,这点必须注意,否则系统会重新下载CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel文件。
3.1 启动Cloudera Manager Server
启动Cloudera Manager Server:
systemctl start cloudera-scm-server
可以查看启动日志
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
看到此条信息,说明启动完成
INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
3.2 登录Cloudera Manager Server
在Web浏览器中,转到 119.254.13.185:7180,其中<server_host> 是运行Cloudera Manager Server的主机的IP地址。
注:账号密码都是 admin
3.3 安装步骤
登录进来按照步骤设置:
点击免费版本
搜索需要安装的主机名(所有节点)
选择存储库:
此处要注意 CDH版本选择 使用Parcel –更多选项—配置存储库路径—
加载出CDH6.0版本
注 远程路径:https://archive.cloudera.com/cdh6/6.0.0/parcels/
下一步JDK选择不安装:
注:服务器中已有jdk1.8版本
配置SSH登录凭证:
注:没有提供密码 采用秘钥登录的形式
完成之后到角色分配:可自由选择
角色分配官方推荐:https://www.cloudera.com/documentation/enterprise/6/6.0/topics/cm_ig_host_allocations.html#host_role_assignments
数据库设置
审核更改:
安装目录及数据目录:
需要修改的选项如下:(不修改也可以,根据自己需要)
HDFS 根目录 /data/hbase
DataNode 数据目录 /data/dfs/dn
NameNode 数据目录 /data/dfs/nn
HDFS 检查点目录 /data/dfs/snn
Hive 仓库目录 /data/user/hive/warehouse
ShareLib 根目录 /data/user/oozie
NodeManager 本地目录 /data/yarn/nm
4.重新安装及问题解决
4.1 安装过程中错误卸载相关重新开始
移除服务:
sudo yum -y remove 'cloudera*'
sudo systemctl daemon-reload
寻找cloudera相关然后删除:
sudo find / -name 'cloudera*'
sudo umount -v /var/run/cloudera-scm-agent/process
sudo rm -rf /opt/cloudera/
sudo rm -rf /var/run/cloudera* /etc/cloudera*
sudo rm -rf /var/lib/cloudera*
sudo rm -rf /var/cache/yum/x86_64/6/cloudera*
sudo rm -rf /var/log/cloudera*
查看agent 和 daemon 端口是否还有:
netstat -tunlp | grep 9001
netstat -tunlp | grep 9000
4.2 安装过程中的错误
问题1:
解决方法:查看这个进程,然后杀死进程,重新启动就可以了
ps -ef | grep supervisord
kill -9 <processID>
systemctl restart cloudera-scm-agent
问题2:
hue数据库连接测试失败
解决办法:将 mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm 这个rpm装到主节点上,问题解决。
直接安装不上:
解决办法: 安装包后面增加2个参数(安装时不再分析包之间的依赖关系而直接安装)
sudo rpm -ivh mysql-community-client-5.7.13-1.el7.x86_64.rpm --nodeps –force
问题3:
hadoop datanode重启出现namenode的clusterID和datanode的不一致。
解决方法:
首先要确认你的数据文件夹是正确的。文件夹权限是正确的。
然后删除datanode里面的数据,不要删除文件夹。删除里面的文件就行了。
这样重启datanode的时候会重新去生成文件。
引起这个问题,可能是重启namenode或者format namenode的时候,datanode是死的。所以引起datanode和namenode上面的数据不一致。