一、概述
Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”),基于Web的用户界面,支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop,简化了大数据平台的安装、使用难度。
二、环境
| 序号 | IP地址 | 主机名 | 系统版本 | 磁盘 |
| 1 | 192.168.10.62 | cdh1 | CentOS Linux release 7.2.1511 (Core) | 30G |
| :—-: | :—-: | :—-: | —- | :—- |
| 2 | 192.168.10.63 | cdh2 | CentOS Linux release 7.2.1511 (Core) | 30G |
| 3 | 192.168.10.64 | cdh3 | CentOS Linux release 7.2.1511 (Core) | 50G |
| 4 | 192.168.10.65 | cdh4 | CentOS Linux release 7.2.1511 (Core) | 50G |
| 5 | 192.168.10.66 | cdh5 | CentOS Linux release 7.2.1511 (Core) | 30G |
| | | | | |
| 6 | 远程连接工具: |
| MobaXterm v20.0 | |
| | | | | |
| 7 | cdh_version | | cdh5.16.2 | |
| 8 | cm_version | | cm5.16.2 | |
| 9 | mysql-connector-java_version | | mysql-connector-java-5.1.27-bin.jar | |
注:如果要为主节点分配更多角色,建议主节点内存至少70-90个G
三、基础环境部署
0 关闭防火墙(所有节点)
#关闭防火墙
systemctl stop firewalld.service
#关闭防火墙开机自启
systemctl disable firewalld.service
#查看防火墙状态
systemctl status firewalld.service
1 修改主机名(所有节点)
#修改第一台主机
hostnamectl set-hostname cdh1
修改主节点后,从节点照做
#修改第二台主机
hostnamectl set-hostname cdh2
#修改第三台主机
hostnamectl set-hostname cdh3
#修改第四台主机
hostnamectl set-hostname cdh4
#修改第五台主机
hostnamectl set-hostname cdh5
2 配置节点ip、hostname映射(所有节点)
vi /etc/hosts
192.168.10.62 cdh1
192.168.10.63 cdh2
192.168.10.64 cdh3
192.168.10.65 cdh4
192.168.10.66 cdh5
#重启
reboot
3 配置免密码登录(cdh1)
# 生成公钥和私钥 三次回车
ssh-keygen
# 复制公钥和私钥
ssh-copy-id cdh1
ssh-copy-id cdh2
ssh-copy-id cdh3
ssh-copy-id cdh4
ssh-copy-id cdh5
4 禁用SELinux(所有节点)
SELinux就是Security-Enhanced Linux的简称,安全加强的linux。传统的linux权限是对文件和目录的 owner, group和other的rwx进行控制,而SELinux采用的是委任式访问控制,也就是控制一个进程对具体文件系统上面的文件和目录的访问,SELinux规定了很多的规则,来决定哪个进程可以访问哪些文件 和目录。虽然SELinux很好用,但是在多数情况我们还是将其关闭,因为在不了解其机制的情况下使用 SELinux会导致软件安装或者应用部署失败。
SELinux临时关闭
setenforce 0
修改/etc/selinux/config,重启生效
vi /etc/selinux/config
#修改
SELINUX=disabled
SELINUXTYPE=targeted
检查是否修改成功
cat /etc/selinux/config
5 设置swap空间(所有节点)
sysctl vm.swappiness=1
echo 1 > /proc/sys/vm/swappiness
Cloudera建议将交换空间设置为1,过多的交换空间会引起GC耗时的激增。
6 关闭透明大页面(所有节点)
Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transparent Huge Pages)。
1: 标准大页(Huge Pages)是从Linux Kernel 2.6后被引入的。目的是使用更大的内存页面(memory page size) 以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。
2: 透明大页面(Transparent Huge Pages)缩写为THP,这个是RHEL 6开始引入的一个功能。这两者的区别在于大页的分配机制,标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。目前透明大页与传统大页混合使用会出现一些问题,导致性能问题和系统重启。ORACLE官方不建议在使用RedHat 6, OEL 6, SLES 11 and UEK2 kernels 时开启透明大页(THP), 因为透明大页存在 一些问题:
1.在RAC环境下 透明大页(Transparent HugePages )会导致异常节点重启和性能问题;
2.在单机环境中,透明大页(Transparent HugePages ) 也会导致一些异常的性能问题;
echo never > /sys/kernel/mm/transparent_hugepage/defrag cat /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled cat /sys/kernel/mm/transparent_hugepage/enabled
配置/etc/rc.d/rc.local
vi /etc/rc.d/rc.local
文件末添加
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never >
/sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never >
/sys/kernel/mm/transparent_hugepage/defrag
fi
cat /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
ls -l /etc/rc.d | grep rc.local
7 设置用户最大可打开文件数,进程数,内存占用**(所有节点)**
vi /etc/security/limits.conf
* soft nofile 32728
* hard nofile 1024999
* soft nproc 65535
* hard noroc unlimited
* soft memlock unlimited
* hard memlock unlimited
8 安装ntp时间同步
在Redhat7.x的操作系统上,已经默认的安装了chrony,我们这里先卸载chrony,然后安装ntp。使用 ntp来配置各台机器的时钟同步,将cdh1(192.168.10.62)服务作为本地ntp服务器,其它4台服务器与其保持同步。
卸载chrony(所有节点)
yum -y remove chrony
安装ntp(所有节点)
yum -y install ntp
cdh1机器配置时钟与自己同步(cdh1)
vi /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10
修改如图
其他节点时间与cdh1同步,配置如下(除cdh1以外其他节点)
vi /etc/ntp.conf
server 192.168.10.62
重启ntp服务(所有节点)
#启动ntp服务
systemctl start ntpd
#设置开机自动启动
systemctl enable ntpd
#查看ntp服务状态
systemctl status ntpd
#重启节点
reboot
查看
ntpq -p
date
四、安装
0 配置本地yum(cdh1)
#挂载centos7镜像
mount /dev/cdrom /mnt/
#删除系统自带的源
rm -rf /etc/yum.repos.d/*
#新建一个本地yum源
cat >> /etc/yum.repos.d/local.repo << EOF
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
EOF
#验证
yum repolist
1 启动httpd(所有节点)
下载:
yum -y install httpd
启动服务
#启动httpd服务
systemctl start httpd
#设置开机自动启动
systemctl enable httpd
#查看httpd服务状态
systemctl status httpd
http服务可以帮助我们传输文件,默认静态资源的目录为/var/www/html
2 centos源配置为http方式获取(cdh1)
#在http服务的静态资源目录创建centos目录
mkdir /var/www/html/centos
#将centos的镜像文件复制到centos目录
cp -rvf /mnt/* /var/www/html/centos/
#可以通过http访问了
http://192.168.10.62/centos/
#修改cdh-1的本地centos源的配置
vi /etc/yum.repos.d/local.repo
baseurl=http://cdh1/centos
#取消挂载
umount /dev/cdrom /mnt
3 其他节点配置(cdh2,cdh3,cdh4,cdh5)
cat >> /etc/yum.repos.d/local.repo << EOF
[centos]
name=centos
baseurl=http://cdh1/centos
gpgcheck=0
EOF
#验证
yum repolist
4 配置CM(cdh1)
注意:CDH的版本一定要和CM的版本对应
上传cdh5.16.2、cm5.16.2至cdh1:home改名为cdh、cm目录下
#创建http服务器静态文件目录(所有节点)
mkdir /var/www/html/
cd /home
#将cdh和cm的包移动到创建目录下
mv cm cdh /var/www/html/
#将cm的包分发给其他节点
scp -r cm root@cdh1:/var/www/html
制作CM源生成repodata文件,需要用到createrepo包(cdh1)
#安装
yum install -y createrepo
#进入到cm的rpm包存放目录
cd /var/www/html/cm
# 生成repodata文件夹
createrepo .
5 配置yum源(所有节点)
cat >> /etc/yum.repos.d/cm.repo << EOF
[CM]
name=cm
baseurl=http://cdh1/cm/
gpgcheck=0
EOF
#验证
yum repolist
6 安装依赖(所有节点)
yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 Mysql-python fuse
7 安装Cloudera Manager和Cloudera Agent(cdh1)
#安装JDK
yum -y install oracle-j2sdk1.7-1.7.0+update67-1
#安装cloudera-manager
yum install -y cloudera-manager-agent cloudera-manager-daemons cloudera-manager-server cloudera-manager-server-db-2 postgresq-server
8 安装Mariadb
yum -y install mariadb
yum -y install mariadb-serve
启动并配置Mariadb
#启动
systemctl start mariadb
#查看状态
systemctl status mariadb
#设置开机自动启动
systemctl enable mariadb
#配置mariaDB
/usr/bin/mysql_secure_installation
#回车 一直y 设置密码:password
建立CM,Hive等需要的表
mysql -u root -p
# 输入密码,执行以下语句
create database metastore default character set utf8;
CREATE USER 'hive'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON metastore. * TO 'hive'@'%';
FLUSH PRIVILEGES;
create database cm default character set utf8;
CREATE USER 'cm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON cm. * TO 'cm'@'%';
FLUSH PRIVILEGES;
create database am default character set utf8;
CREATE USER 'am'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON am. * TO 'am'@'%';
FLUSH PRIVILEGES;
create database rm default character set utf8;
CREATE USER 'rm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON rm. * TO 'rm'@'%';
FLUSH PRIVILEGES;
create database hue default character set utf8;
CREATE USER 'hue'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hue. * TO 'hue'@'%';
FLUSH PRIVILEGES;
create database oozie default character set utf8;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON oozie. * TO 'oozie'@'%';
FLUSH PRIVILEGES;
create database sentry default character set utf8;
CREATE USER 'sentry'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%';
FLUSH PRIVILEGES;
create database nav_ms default character set utf8;
CREATE USER 'nav_ms'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nav_ms. * TO 'nav_ms'@'%';
FLUSH PRIVILEGES;
create database nav_as default character set utf8;
CREATE USER 'nav_as'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nav_as. * TO 'nav_as'@'%';
FLUSH PRIVILEGES;
show databases;
9 初始化管理节点(cdh1)
1 复制mysql的jdbc驱动包到/usr/share/java目录
#创建/usr/share/java目录
mkdir -p /usr/share/java
#复制jar包到/usr/share/java下
cp mysql-connector-java-5.1.27-bin.jar /usr/share/java/
#改名为mysql-connector-java.jar
mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar
2 初始化数据库
/usr/share/cmf/schema/scm_prepare_database.sh mysql cm cm password
10 安装agent节点(cdh1以外节点安装)
#安装jdk
yum install -y oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
#安装agent
yum install cloudera-manager-daemons cloudera-manager-agent -y
11 修改配置文件(所有节点)
修改Cloudera Agent配置文件/etc/cloudera-scm-agent/config.ini,配置server_host为主节点cdh-1
#通过vi命令修改
vi /etc/cloudera-scm-agent/config.ini
server_host=cdh1
12 配置JAVA_HOME(所有节点)
到jdk路径下复制根路径,不清楚在哪里可以使用which java查看
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export PATH=$PATH:$JAVA_HOME/bin
#保存退出后,并重新载入profile配置
source /etc/profile
五、启动
1 启动Cloudera Manager(cdh1)
在主节点启动Cloudera Manager
#启动
systemctl start cloudera-scm-server
#设置开机自启
systemctl enable cloudera-scm-server
2 启动Cloudera Agent(所有节点)
#启动
systemctl start cloudera-scm-agent
#开机自启
systemctl enable cloudera-scm-agent
六、使用
0 访问
网页访问http://192.168.10.63:7180
用户名:admin
密码都是:admin
接受协议
选择60天试用版本
继续
点击搜索后,继续到这一步
1 添加自定义的Parcel存储库URL
2 主机正确性检查
主机正确性检查,确保全部通过后点完成
组件安装
选择自己要安装的组件
例:lmpala
节点角色分配
3 数据库连接测试
测试数据库连接
继续
集群设置成功点击完成
参考搭建文档网页链接:https://blog.csdn.net/qq_40856560/article/details/109007683
自带搭建文档笔记:
CDH集群安装.pdf