CDH 简介(Cloudera Hadoop) -->仅供学习
1. Cloudera Manager
- 安装CDH 即安装 Cloudera Manager,以下简称CM。
- Cloudera Manager 是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件)。可以实现对集群的可视化监控和管理。
2. CM 的架构
-
Server:负责软件安装、配置,启动和停止服务,管理服务运行的群集。
-
Agent:安装在每台主机上。负责启动和停止的过程,配置,监控主机。
-
Management Service:由一组执行各种监控,警报和报告功能角色的服务。
-
Database:存储配置和监视信息。
-
Cloudera Repository:软件由 Cloudera 管理分布存储库。(有点类似 Maven 的中心仓库)
-
Clients:是用于与服务器进行交互的接口(API 和 Admin Console)
单节点安装CDH(离线安装)
安装须知:由于CDH集群启动时服务较多,因此非常消耗内存,如果你的机器是16G内存,可以为虚拟机分配8GB内存,来安装CDH,单节点安装最好是8G,否则可能安装不成功,如果你的机器内存是8G,可以为虚拟机非配6G内存,不能小于6G,否则很大概率启动不来。如果你的内存小于8G,不要装CDH,不满足安装条件,cdh真的是很吃内存。那么接下来我们开始安装单节点的CDH:
1. 安装前准备
1. 安装前下载:
# cm安装包和离线安装文件和JDK等
链接:https://pan.baidu.com/s/1Ke0zCxGM99gpkmM2bqlQvg 密码:7bxy
2. 安装前准备环境
- 版本声明:
- 虚拟机:Centos6.7
- JDK:1.8.0_73
- mysql:5.1.73
- cdh:5.14
1.准备一台虚拟机,单独的一台,强烈建议不要安装在已有hadoop集群的虚拟机中,根据上述所讲,为该台虚拟机分配内存(根据机器物理内存决定)。
注意:以下操作都是在root用户下进行,因为非root用户会涉及到很多日志文件等一系列权限的问题
我的虚拟机配置:
物理机: 一台8G内存的Mac
虚拟机:Centos6.7
虚拟机cpu:2core
虚拟机内存:6G
2.上传文件
# 将所需要用的的文件上传到/root/software/cdh下,该目录可以任意指定:用来存放安装包等
[root@zzm-cdh cdh]# mkdir -p /root/software/cdh/
3.安装JDK
# 将 jdk 解压到/usr/java/下,注意一定是在该目录下,因为CM启动服务时,会去这个目录下找 jdk。该目录需要自行创建。
[root@zzm-cdh cdh]# mkdir -p /usr/java
# 配置jdk的环境变量
[root@zzm-cdh cdh]# vim /etc/profile
# 追加以下内容:
##JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@zzm-cdh cdh]# source /etc/profile
# 检查是否安装成功
[root@zzm-cdh cdh]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
4.配置静态IP
# 1.查看自己的Ip
[root@zzm-cdh cdh]# ifconfig
# 我的初始Ip为172.16.147.124,静态Ip为172.16.147.111
inet addr:172.16.147.124 Bcast:172.16.147.255 Mask:255.255.255.0
# 2. 修改网卡的配置文件:
[root@zzm-cdh cdh]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
# 将以下内容中的IPADDR、GATEWAY、DNS1、HWADDR、UUID修改为自己的。
DEVICE=eth0 # 网卡设备名
HWADDR=00:0C:29:23:42:E4 # Mac 地址
TYPE=Ethernet
UUID=b02df7df-2669-48ab-a422-a1228f9884b1
ONBOOT=yes
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.147.111 # 想要设置的静态IP
PREFIX=24
GATEWAY=172.16.147.2 # 网关
DNS1=172.16.147.2
5.修改主机名:(改成你自己的)
[root@zzm-cdh cdh]# vim /etc/sysconfig/network
HOSTNAME=zzm-cdh
6.配置ip映射
[root@zzm-cdh cdh]# vim /etc/hosts
# 在末尾添加你的IP和对应的映射
172.16.147.111 zzm-cdh
7.配置免密登陆
[root@zzm-cdh cdh]# ssh-keygen
[root@zzm-cdh cdh]# ssh-copy-id zzm-cdh
8.安装mysql
使用yum 源安装
# 安装mysql
sudo yum install -y mysql-server
# 完成后启动mysql服务
sudo service mysqld start
# 登录mysql
mysql -u root -p
# 修改mysql的用户名和密码
update user set host='%' where host ='localhost';
update user set password=PASSWORD('你的密码') where user='root';
flush privileges;
# 退出mysql
quit;
# 重启mysql服务
sudo service mysqld restart
9.安装cm中一些服务说需要的依赖。
[root@zzm-cdh cdh]# yum -y install ntp python-lxml httpd mod_ssl cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi
10.启动相关服务并加入到开机启动中
# 1. ntpd服务
[root@zzm-cdh cdh]# service ntpd start
[root@zzm-cdh cdh]# chkconfig ntpd on
# 2. httpd服务
[root@zzm-cdh cdh]# service httpd start
[root@zzm-cdh cdh]# chkconfig httpd on
# 3. 若启动httpd报以下警告
Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain
name, using 172.16.147.111 for ServerName
[root@zzm-cdh cdh]# vim /etc/httpd/conf/httpd.conf
#注释 ServerName www.example.com:80
#添加 ServerName localhost:80
[root@zzm-cdh cdh]# service httpd restart
# 4. 关闭防火墙,并开机默认关闭
[root@zzm-cdh cdh]# service iptables stop
[root@zzm-cdh cdh]# chkconfig iptables off
11.在mysql中创建库,并授予远程登录权限
注意:将建表语句中zzm-cdh替换为你自己的主机名
# 创建原因:各个组件是由【各自组件名为用户名】的【用户】管理的。没有这些库,在安装chd的时候无法通过数据库的验证,即无法管理。
# 建表语句如下:
create database cmf DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("%","cmf",password("cmf"),"1","1","1");
grant all privileges on cmf.* to cmf@'%' identified by 'cmf';
grant all privileges on cmf.* to cmf@'zzm-cdh' identified by 'cmf';
create database metastore DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("%","metastore",password("metastore"),"1","1","1");
grant all privileges on metastore.* to metastore@'%' identified by 'metastore';
grant all privileges on metastore.* to metastore@'zzm-cdh' identified by 'metastore';
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("%","oozie",password("oozie"),"1","1","1");
grant all privileges on oozie.* to oozie@'%' identified by 'oozie';
grant all privileges on oozie.* to oozie@'zzm-cdh' identified by 'oozie';
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("%","hive",password("hive"),"1","1","1");
grant all privileges on hive.* to hive@'%' identified by 'hive';
grant all privileges on hive.* to hive@'zzm-cdh' identified by 'hive';
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("%","hue",password("hue"),"1","1","1");
grant all privileges on hue.* to hue@'%' identified by 'hue';
grant all privileges on hue.* to hue@'zzm-cdh' identified by 'hue';
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("%","monitor",password("monitor"),"1","1","1");
grant all privileges on monitor.* to monitor@'%' identified by 'monitor';
grant all privileges on monitor.* to monitor@'zzm-cdh' identified by 'monitor';
grant all privileges on *.* to 'root'@'zzm-cdh' identified by 'root' with grant option;
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
- 效果如下
2. 开始安装CM
- 创建以下目录用来存放CM的安装包
[root@zzm-cdh cdh]# mkdir -p /opt/cloudera-manager
# 注意:不要解压在其他目录中,否则安装会出现很多问题,因为这是默认路径。
# 解压我们先前上传文件的tar.gz文件到上述目录下:
[root@zzm-cdh cloudera-manager]# tar -zvxf /root/software/cdh/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz -C ./
2.修改配置文件中主节点hostname
[root@zzm-cdh cloudera-manager]# vim /opt/cloudera-manager/cm-5.14.0/etc/cloudera-scm-agent/config.ini
#将server_host=localhost修改为server_host=zzm-cdh
3.在节点上添加用户:cloudera-scm(必须为该名字)
[root@zzm-cdh ~]# useradd --system --home=/opt/cloudera-manager/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
4.创建cdh实体文件存放目录并修改所有者为 cloudera-scm 用户
注意:该目录也必须为该路径,为cm的默认配置目录。
[root@zzm-cdh ~]# mkdir -p /opt/cloudera/parcels
[root@zzm-cdh ~]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
#该目录就是安装好后的cdh实体文件的目录
5.创建cdh安装包文件目录,并将安装包复制到这个文件下
注意:目录必须为这个,理由同上
# 1、创建目录
[root@zzm-cdh ~]# mkdir -p /opt/cloudera/parcel-repo
# 2、移动安装包到该目录下
[root@zzm-cdh ~]# cp /root/software/cdh/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz /opt/cloudera/parcel-repo/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz
[root@zzm-cdh ~]# cp /root/software/cdh/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel /opt/cloudera/parcel-repo/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel
# 注意末尾是sha不是sha1
[root@zzm-cdh ~]# cp /root/software/cdh/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha
[[root@zzm-cdh ~]# cp /root/software/cdh/manifest.json /opt/cloudera/parcel-repo/manifest.json
# 3、更改该目录及文件的所有者,cloudera-scm 为我们上述创建的那个用户。
[[root@zzm-cdh ~]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
# 该目录是安装包的目录,即cm在安装cdh版hadoop时,会从这个目录读取安装文件进行解压安装。
6.配置mysql
数据库驱动包
注意:必须为该目录
# 1.创建驱动包存放目录,组件连接数据库时会去该目录下找。
[[root@zzm-cdh ~]# mkdir /usr/share/java
# 2. 必须重新命名
[[root@zzm-cdh ~]# cp /root/software/cdh/mysql-connector-java-5.1.48-bin.jar /usr/share/java/mysql-connector-java.jar
7.初始化数据库用户
# -h后不需要空格,紧跟你的主机名,--scm-host后跟你的hosts中配置的映射
[root@zzm-cdh ~]# /opt/cloudera-manager/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql -hzzm-cdh --scm-host zzm-cdh cmf cmf cmf
- 说明初始化成功,我的已经装好了,不能再次初始化,所以就网上找了张图。
8.启动cm server
# 1. 启动
[root@zzm-cdh ~]# /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server start
#查看启动服务日志
[root@zzm-cdh ~]# tail -f /opt/cloudera-manager/cm-5.14.0/log/cloudera-scm-server/cloudera-scm-server.log
- 启动了7180端口,说明server启动成功。
9.启动 agent
# 1. 启动cm agent
[root@zzm-cdh ~]# /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start
# 2. 查看启动agent日志
[root@zzm-cdh ~]# tail -f tail -f /opt/cloudera-manager/cm-5.14.0/log/cloudera-scm-agent/cloudera-scm-agent.log
# 不报错,说明启动成功
10.通过web端访问cm安装cdh
前提:在你的物理机上配置了主机映射
- 通过zzm-cdh:7180访问
- 用户名和密码默认都是admin
11.条款,确定下一步
12.选择安装版本
- 选择免费的
- 继续
13.选择安装节点,选择当前管理的主机,即安装agent的节点,zzm-cdh,若是多节点安装,可以选择多个节点。点击继续
- 我已经安装好,就没有这个图了,网上找的图
14.选择安装 cdh 版本,继续
- 点击更多选项就可以看到:
这样就是我们为什么要指定创建那个目录
15.等待分配、解压、激活
- 完成
16.检查集群,等待完成点击完成。
17.选择组件:可以先随便选,安装完成后也可自定义的添加和删除,选择完成后点击继续
18.节点规划,单节点默认都是zzm-cdh, 多节点可自定义的规划(符合要求),点击继续
19.测试数据库连接,测试完成,点击继续
- 数据库名称,用户名、密码就是我们创建库时设置的密码:如下
20.集群设置,保持默认,点击继续
21.cdh帮助我们一键启动我们分配的组件,完成后点击继续
- 这一步很重要,稍有不慎,就会出现很多权限和jdk路径的问题,这也是我们为什么在前面那样配置的原因。
- 完成
22.恭喜你!!!
23.界面展示
- 这个图是我自己的,哈哈,内存太小了,有很多报红,看着就吓人。
24.jsp验证
25.HDFS 验证---- hadoop fs -ls /
3. 安装总结
-
大家安装时候一定要细心,把这个文档分享给大家,大家有时间尝试着转一下,毕竟工作后都是cdh,不会有我们我们装的开源 hadoop 集群,熟悉cdh集群的架构是非常重要的。
-
如若遇到什么问题,可以和我讨论,我也将该文档,放在CSDN博客上,https://blog.csdn.net/sinat_38885949,也欢迎大家来分享和讨论,指出问题。