关于CDH和Cloudera Manager
CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。
Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。
系统环境
实验环境:Windows(16G内存)下VMware虚拟机
操作系统:CentOS 7.5 x64 (内存分配要啊)
(重点说明:一、在后面大数据组件安装时不要将很多服务聚集在一个虚拟机上,不然你会
发现根本没法运行,内存根本不够使用。
二、最先安装最简服务,安装好后再去根据需求安装其他服务。)
Cloudera Manager:5.15.0
CDH:5.15.0
centos 7.5镜像:(安装镜像选择带桌面,会给你带来很多方便)
http://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
相关包的下载地址
Cloudera Manager下载地址:
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz
CDH安装包地址:http://archive.cloudera.com/cdh5/parcels/latest/
由于我们的操作系统为CentOS7.5,需要下载以下文件:
-CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
-CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
-manifest.json
mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
mysql-connector-java-5.1.46.tar.gz
准备工作:系统环境搭建
以下操作均用root用户操作。
1. 网络配置(所有节点) ($> 后面是命令)只说步骤具体操作,自行查资料。
一、修改为静态ip ,通过 $>service network restart 重启网络,静态ip生效,$>ifconfig
检查IP是否生效。
二、修改hostname,$> vi /etc/sysconfig/network 添加 NETWORKING=yes 和
HOSTNAME=c01,也可以修改 $> vi /etc/hostname.
三、修改hosts文件,修改ip与主机名的对应关系,$> vi /etc/hosts 添加
192.168.xxx.101 c01
192.168.xxx.101 c02
192.168.xxx.101 c03
注意: 这里需要将每台机器的ip及主机名对应关系都写进去,本机的也要写进去,否则启动Agent的时候会提示hostname解析错误,还有不要把hosts原有的删掉,并在最上面添加 0.0.0.0 localhost ,不然后面的mysql 有可能会连不上 导致cdh无法安装服务。
2.打通SSH,设置ssh无密码登陆(所有节点)
在主节点上执行ssh-keygen -t rsa一路回车,生成无密码的密钥对。
在所有节点全部生成密钥后,使用命令 $> ssh-copy-id c01(ip也可以) 将公钥发给其他节点,相互操作,另一种方法是 scp远程复制,自行查资料。
3.安装jdk(所有节点)
安装jdk的方法 不多说,需要说明的是,首先要卸载了centos自带的openjdk ,其次安装方法的不同:第一种使用 rpm 默认安装路径 ,第二种如果是自定义安装,在后面的安装服务中会出现,找不到JAVA_HOME的错误,(详见 CDH坑 )
4. 关闭防火墙(所有节点)
centos 7 默认使用的是firewall,不是iptables
$> systemctl stop firewalld.service
$> systemctl disable firewalld.service
5. 关闭SELinux(所有节点)
$> vim/etc/selinux/config 设置SELINUX=disabled
6. 配置NTP服务(所有节点)(这里也有可能会出现错误)
安装 $> yum install ntp
设置开机启动 $> chkconfig ntpd on
服务启动 $> service ntpd start
7. 所有节点上创建用户(所有节点)这是CDH默认使用账户
$> useradd--system\
--home=/opt/cm-5.15.0/run/cloudera-scm-server/\
--no-create-home--shell=/bin/false--comment"Cloudera SCM User"cloudera-scm
8. 安装MySQL(主节点安装即可)
(1)卸载mariadb
此处需要注意的是centos 7 默认安装的是mariadb,如果不卸载直接安装的话会报错,报错信息mariadb-libs is obsoleted by mysql-community-libs-5.7.21-1.el7.x86_64
注意:必须先做一下步骤,要先删除mariadb
rpm -qa | grep mariadb#查看安装信息
$> rpm --nodeps-emariadb-libs-5.5.56-2.el7.x86_64#根据查找到的软件包信息卸载
(2)安装MySQL(必须按以下顺序安装)
解压tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
$> rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
$> rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
$> rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
$> rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm
$> rpm -ivh mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm
(compat解决hue数据库连接不上)
$> rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm
#安装mysqlclient需要用到
(3)基本设置
service mysqld start#启动服务
cat /var/log/mysqld.log |grep password#查看初始密码
mysql -uroot -p#登录
set password = password('1234');#设置密码
报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
validate_password_length参数默认为8,可以设置为其它值,最小4位
mysql> set global validate_password_length=1;
mysql> set password = password('1234');
Query OK, 0 rows affected,1 warning (0.00 sec)
授权用户root使用密码passwd从任意主机连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql密码' WITH GRANT OPTION;
mysql> flush privileges;
(4)建数据库(用于后边组件安装)
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
安装Cloudera Manager Server 和Agent
(1)解压
将下载好的cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz解压到主节点的/opt/,解压出来的文件夹为cloudera与cm-5.15.0
(2)为Cloudera Manager建立数据库
将前边下载好的mysql-connector-java-5.1.46.tar.gz解压,找到文件夹中的
mysql-connector-java-5.1.46-bin.jar
$> cp mysql-connector-java-5.1.46-bin.jar /opt/cm-5.15.0/share/cmf/lib/
$> cp mysql-connector-java-5.1.46-bin.jar /usr/java/(此处jdk自定义安装的话将jar放在郁jdk同级目录下即可)
$> /opt/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p scm scm
(3)配置Agent
$> vim /opt/cm-5.15.0/etc/cloudera-scm-agent/config.ini
server_host=c01
拷贝到其他节点
$> scp -r /opt/cm-5.15.0/ root@c02:/opt/
$> scp -r /opt/cm-5.15.0/ root@c03:/opt/
(4)准备parcels
将CDH相关文件拷贝到主节点/opt/cloudera/parcel-repo/
相关文件
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
manifest.json
需要将CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1改成CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcell.sha,否则安装时会重新下载,很重要!!
$> mv CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha
(5)启动
主节点
$> /opt/cm-5.15.0/etc/init.d/cloudera-scm-server start
主节点及其他节点
$> /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start
启动需要点时间,可以查看数据库scm中的HOSTS表,如果里面出现节点信息表示server启动完成
安装hadoop集群:
安装的时候没有做截图,将我参考的文章的图片放在下边
1.登录主界面
登录主节点IP的7180端口,默认登录用户名和密码都是admin
2.选择安装版本
3.为CDH群集安装指定主机
4.集群安装
5.主机检查
第一个警告直接在所有节点上执行$> echo 10 > /proc/sys/vm/swappiness
第二个警告按照上面的说明,在所有节点上执行这两条命令
echo never >/sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
将这两条命令 复制 添加到 $> vi /etc/rc.local 里面
6.集群设置
服务配置,保持默认就可以(Cloudera Manager会根据机器的配置自动进行配置)
数据库设置(我们使用的mysql 所以在数据设置中要注意看清数据库位置)
审查更改(默认即可)
开始安装
如有疑问,请留言,看到后尽量解决,一同学习。