一、大数据环境发展历史
2009年新的Apache Hadoop子项目成立,2011年3月被称为"21世纪的瑞士军刀",12月27日发布1.0.0可用,2013年10月15日发布2.2.0可用,推动大数据技术快速落地企业。
1、安装方式分为原生包(tar包安装),和集群管理工具安装(HDP,CDH,CDP)
- 原生包方式
缺点:就是要自己安装每个组件,做组件与组件的集成,监控平台啊等需要自行适配,运维成本高
优点:可以自定义各种组件版本,对于二次开发,兼容协调有很好的优势
- 集群管理工具安装
缺点:对于自定义各种组件版本不友好,对于二次开发,兼容协调非常不方便
优点:不需要管理组件与组件的集成,已提供良好的监控平台,运维成本较低
2、集群管理工具对比
比较项/产品 |
HDP |
CDH |
CDP |
公司 |
Hortonworks |
Cloudera |
Cloudera |
全名 |
Hortonworks Data Platform |
Cloudera's Distribution Including Apache Hadoop |
Cloudera Data Platform |
集群管理工具 |
Ambari |
Cloudera Manager |
Cloudera Manager |
最早时间 |
2011年 |
2008年 |
Cloudera和Hortonworks2018年合并后 |
收费情况 |
免费 |
社区版免费,企业版收费(4000$一台节点) |
10000$一台节点,内存硬盘自行购买 |
二、Cloudera Manager介绍
Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署利器,这款利器具有集群自动化安装、中心化管理、集群监控、报警等功能,使得安装集群从几天的时间缩短在几小时以内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
三、Cloudera Manager功能
Cloudera Manager有四大功能:
1)管理:对集群进行管理,如添加、删除节点等操作。
2)监控:监控集群的健康情况,对设置的各种指标和系统运行情况进行全面监控。
3)诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。
4)集成:对hadoop的多组件进行整合。
四、环境准备
序号 |
操作系统 |
主机名 |
IP地址 |
硬件配置 |
1 |
CentOS 7.9.2009 |
cdh-server |
172.168.1.156 |
8 vCPU 16 GiB 60G |
2 |
CentOS 7.9.2009 |
node1 |
172.168.1.18 |
8 vCPU 16 GiB 200G |
3 |
CentOS 7.9.2009 |
node2 |
172.168.1.19 |
8 vCPU 16 GiB 200G |
4 |
CentOS 7.9.2009 |
node3 |
172.168.1.20 |
8 vCPU 16 GiB 200G |
1)所需资源获取地址:
链接:https://pan.baidu.com/s/1cNj28m8XkQcRED47iex29Q
提取码:qn71
- MySQL5.7
mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
- MySQL驱动包
mysql-connector-java.jar
- cloudera-manager包
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
allkeys.asc
- parcel数据包
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1
CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha256
manifest.json
1、更新系统(所有主机)
[root@localhost ~]# yum -y update
2、修改主机名(所有主机)
# cdh-server
[root@localhost ~]# hostnamectl set-hostname cdh-server
# node1
[root@localhost ~]# hostnamectl set-hostname node1
# node2
[root@localhost ~]# hostnamectl set-hostname node2
# node3
[root@localhost ~]# hostnamectl set-hostname node3
3、配置hosts(所有主机)
[root@cdh-server ~]# cat >>/etc/hosts <<EOF
172.168.1.156 cdh-server
172.168.1.18 node1
172.168.1.19 node2
172.168.1.20 node3
EOF
4、配置免密钥
# cdh-server
[root@cdh-server ~]# ssh-keygen
[root@cdh-server ~]# ssh-copy-id root@node1
[root@cdh-server ~]# ssh-copy-id root@node2
[root@cdh-server ~]# ssh-copy-id root@node3
5、关闭防火墙、selinux(所有主机)
[root@cdh-server ~]# systemctl stop firewalld
[root@cdh-server ~]# systemctl disable firewalld
[root@cdh-server ~]# sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config
[root@cdh-server ~]# setenforce 0
6、安装httpd服务
# cdh-server
[root@cdh-server ~]# yum -y install httpd httpd-devel
# 启动httpd
[root@cdh-server ~]# systemctl start httpd
# 配置开机自启
[root@cdh-server ~]# systemctl enable httpd
7、安装yum-utils、createrepo
[root@cdh-server ~]# yum -y install yum-utils createrepo
8、安装NTP服务(所有主机)
[root@cdh-server ~]# yum -y install ntp ntpdate
[root@node1 ~]# yum -y install ntp ntpdate
[root@node2 ~]# yum -y install ntp ntpdate
[root@node3 ~]# yum -y install ntp ntpdate
# 启动NTP服务
[root@cdh-server ~]# systemctl start ntpd
[root@node1 ~]# systemctl start ntpd
[root@node2 ~]# systemctl start ntpd
[root@node3 ~]# systemctl start ntpd
9、配置YUM源(所有主机)
[root@cdh-server ~]# cat >/etc/yum.repos.d/cloudera-manager.repo <<EOF
[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://172.168.1.156/cloudera-repos/cm6/6.3.1/redhat7/yum
gpgcheck=0
enabled=1
EOF
10、上传资源包(cdh-server)
将下载好的软件包都上传至/var/www/html目录下面
11、安装JDK(所有主机)
[root@cdh-server ~]# yum -y install oracle-j2sdk1.8
12、配置环境变量(所有主机)
[root@cdh-server ~]# cat >>/etc/profile <<EOF
export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
export CLASSPATH=\$CLASSPATH:\$JAVA_HOME/lib:\$JAVA_HOME/jre/lib
export PATH=\$JAVA_HOME/bin:\$JAVA_HOME/jre/bin:\$PATH:\$HOMR/bin
EOF
五、安装MySQL-5.7
# cdh-server机器
1、解压Mysql压缩包
[root@cdh-server ~]# cd /var/www/html
[root@cdh-server html]# chown -R apache.apache /var/www/html
[root@cdh-server html]# tar xf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
2、安装Mysql
[root@cdh-server html]# yum -y install libaio net-tools *.rpm
3、配置Mysql
[root@cdh-server html]# echo character-set-server=utf8 >> /etc/my.cnf
4、启动Mysql服务
[root@cdh-server html]# systemctl start mysqld
[root@cdh-server html]# systemctl enable mysqld
# 获取Mysql密码
[root@cdh-server html]# grep password /var/log/mysqld.log | sed 's/.*\(............\)$/\1/'
(tPlKjWa6NAy
注:(tPlKjWa6NAy为Mysql登录密码
5、创建数据库并授权
# 创建cm需要的库的用户
服务名 |
数据库名 |
用户名 |
Cloudera Manager Server |
scm |
scm |
Activity Monitor |
amon |
amon |
Reports Manager |
rman |
rman |
Hue |
hue |
hue |
Hive Metastore Server |
metastore |
hive |
Sentry Server |
sentry |
sentry |
Cloudera Navigator Audit Server |
nav |
nav |
Cloudera Navigator Metadata Server |
navms |
navms |
Oozie |
oozie |
oozie |
[root@cdh-server html]# mysql -p
方法一(密码123456Aa.)
mysql> source initSQL.sql;
方法二(密码123456)
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE monitor DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> set password for root@localhost = password('123456');
mysql> GRANT ALL privileges on *.* to 'root'@'%' identified by '123456';
mysql> GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON monitor.* TO 'monitor'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
mysql> flush privileges;
mysql> show databases;
6、配置JDBC驱动包
[root@cdh-server html]# mkdir -p /usr/share/java/
[root@cdh-server html]# cp mysql-connector-java.jar /usr/share/java
[root@cdh-server html]# cd /usr/share/java
[root@cdh-server java]# scp mysql-connector-java.jar root@node1:/usr/share/java/
[root@cdh-server java]# scp mysql-connector-java.jar root@node2:/usr/share/java
[root@cdh-server java]# scp mysql-connector-java.jar root@node3:/usr/share/java
六、安装Cloudera Manager
# cdh-server机器
1、安装Cloudera Manager
[root@cdh-server html]# yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
2、配置本地Parcel存储库
将本地存储库cdh6目录放到httpd可访问目录/var/www/html下(前面已经做了,可忽略)
3、初始化scm库
[root@cdh-server html]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm 123456Aa.
4、启动Cloudera Manager服务
[root@cdh-server html]# systemctl start cloudera-scm-server
5、查看日志
[root@cdh-server ~]# tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
# 出现Started Jetty server,代表启动成功。
6、查看端口
[root@cdh-server ~]# netstat -lntup |grep 7180
7、访问Cloudera Manager
1)浏览器访问http://172.168.1.156:7180/,出现如下界面
# 账号密码均为admin
2)添加集群
3)这里我们选择免费版本
4)输入群集名称
5)配置需要增加的机器
6)配置存储库地址,这里选择更多选项
7)配置数据包地址
# 这里全部都打√
8)配置SSH登录凭据
9)安装Agents
10)处理相关警告:所有机器都要修改
- 问题一
# 临时
[root@cdh-server ~]# sysctl vm.swappiness=10
# 永久
[root@cdh-server ~]# echo 'vm.swappiness=10'>> /etc/sysctl.conf
-
问题二
[root@cdh-server ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@cdh-server ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 修改启动脚本
[root@cdh-server ~]# vim /etc/rc.local
# 添加以下内容
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
11)重新运行检查
12)选择安装组件,这里选择自定义服务(根据需要选择),这里选择Hbase、HDFS、Hive、YARN、Zookeeper服务
13)自定义角色分配
14)数据库配置
# 检查成功后,点击继续
# 基本配置,不需要管,直接下一步
15)运行命令
16)安装完成,如下图
17)问题处理
1)HDFS:Java Heap Size of NameNode in Bytes
解决方法:堆大小,最小1G,建议使用4G
2)NameNode and SecondaryNameNode have different heapsizes
# NameNode和SecondaryNameNode具有不同的堆大小
解决方法:群集 -->> HDFS -->> 配置 -->> 搜索 Java Heap Size
3)Memory Overcommit Validation Threshold
解决方法:主机node3上的内存被调拨过度。总内存分配额是16.0 GiB个字节,但是RAM只有15.8 GiB个字节
内存调拨为15.8/16=0.9875 > 默认值0.8,改成1.0就OK了。
4)Erasure Coding Policy Verification Test
# 擦除编码策略需要9个数据节点:RS-6-3-1024k。数据节点数仅为3个。
解决方法:擦除编码策略验证测试,直接抑制或者直接再添加6个节点
5)Java Heap Size of Host Monitor in Bytes
解决方法:推荐的堆大小为1.0吉字节,大于配置768.0兆字节。
6)Maximum Non-Java Memory of Host Monitor
解决方法:建议的非 Java 内存大小为 2.0 吉字节,大于配置1.2吉字节。
7)Java Heap Size of Service Monitor in Bytes
解决方法:建议的非 Java 内存大小为 2.0 吉字节,大于配置1.8吉字节。
8)Maximum Non-Java Memory of Service Monitor
解决方法:建议的非 Java 内存大小为12.0吉字节,大于配置11.2吉字节。
至此,Linux搭建Cloudera Manager+CDH6.3.1环境完毕。
若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!
评论