因为以前搭建过CDH 5.10
本次教程在三台虚拟机cent os7
里面,提供一个CDH 6.1
基础的搭建
对CDH 6.x
的版本熟悉一下
关闭防火墙
# 检查防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 开机禁止防火墙重启
systemctl disable firewalld
关闭selinux
# 检查selinux状态
getenforce
# 关闭selinux
vim /etc/selinux/config
设置ip
# 检查ip
ifconfig
# 编辑修改ip
vim /etc/sysconfig/network-script/ifcfg-enss33
192.168.1.10
192.168.1.11
192.168.1.12
修改hostname
vim /etc/hostname
检查`hosts
vim /etc/hosts
免密登录
ssh-keygen -t rsa
连续敲四下回车
接着用ssh-copy-id
复制到其它的两台机器上
ssh-copy-id cdh2
ssh-copy-id cdh3
yum
安装必要包
yum install -y perl python-psycopg2 iproute ntp
添加yum源,(三台机器)
sudo wget https://archive.cloudera.com/cm6/6.1.1/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/
sudo rpm --import https://archive.cloudera.com/cm6/6.1.1/redhat7/yum/RPM-GPG-KEY-cloudera
下载cloudera
的必要包
地址:cloudera的RPM
都下载下来,这里我只手动安装了前面三个和最后一个,其它两个没有使用,我这边是联网的环境,所以,即便我没有安装的话,它也会自己下载,如果完全是离线的老哥,那么可能就要把这些东西放入自己搭建的yum环境了
下载parcel
软件包:
下载地址cdh 6.1的parcel软件包
红框标注为的是注意系统的版本号(我们是cent os7的版本)
cdh1:上传
cloudera-manager-server-6.1.1-853290.el7.x86_64.rpm
cloudera-manager-agent-6.1.1-853290.el7.x86_64.rpm
cloudera-manager-daemons-6.1.1-853290.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
cdh2:上传
cloudera-manager-agent-6.1.1-853290.el7.x86_64.rpm
cloudera-manager-daemons-6.1.1-853290.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
cdh3:上传
cloudera-manager-agent-6.1.1-853290.el7.x86_64.rpm
cloudera-manager-daemons-6.1.1-853290.el7.x86_64.rpm
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
三台机器分别安装以上的rpm
包
按照
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
cloudera-manager-daemons-6.1.1-853290.el7.x86_64.rpm
cloudera-manager-agent-6.1.1-853290.el7.x86_64.rpm
cloudera-manager-server-6.1.1-853290.el7.x86_64.rpm (只需要安装在一台机器上)
这样的顺序,命令是:
yum install 安装包的名字 -y
安装完毕之后,挑一台机器安装mysql
用作存储元数据,这里我挑hostname
为cdh2
的机器.
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
wget http://repo.mysql.com/mysql57-community-release-el7.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum update
sudo yum install mysql-server
sudo systemctl start mysqld
mysql 相关设置:
mysql
# 设置密码
update mysql.user set authentication_string=password('123') where user='root' and Host = 'localhost';
flush privileges;
创建cloudera所需要的数据库
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
给权限
GRANT ALL ON scm .* TO 'scm'@'%' IDENTIFIED BY '123';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY '123';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123';
下载mysql-connector驱动
sudo mkdir -p /usr/share/java
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar zxvf mysql-connector-java-5.1.46.tar.gz
cd mysql-connector-java-5.1.46
sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
# 保险起见,三台都安排上
下面这个
语法:
-h
后面是mysql
的hostname
-p
后面是mysql
的密码
--scm-host
后面是cloudera-server
的hostname
下面的一行一行执行
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 scm scm
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 amon amon
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 rman rman
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 hue hue
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 metastore metastore
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 sentry sentry
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 nav nav
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 navms navms
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h cdh2 --scm-host cdh1 oozie oozie
接下来,上传parcel包(之前说过要下载的,1.9G的那个,没下的要拉出去\去打p股)
找到要指定的cloudera-scm-server
角色主机,我这里是cdh1
进入目录
cd /opt/cloudera/parcel-repo
将这两个文件传到上述的目录当中
CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel
CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha256
将CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha256
名字修改为CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha1
利用命令sha1sum
计算CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel
的值
sha1sum CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel
这个时间比较长,请耐心等待。完成之后如下所示:
将这一串数字bbfd29850786eea398c53d57e2b0c1a3a226559c
写入到CDH-6.1.1-1.cdh6.1.1.p0.875250-el7.parcel.sha1
中(把里面原来的内容覆盖掉)
前期准备已经到此完毕。。
在cloudera-scm-server
主机(cdh1
)上面使用命令:
sudo systemctl start cloudera-scm-server
利用命令,可以查看日志
tail -100f /var/log/cloudera-scm-server/cloudera-scm-server.log
如果日志中出现了如下的字样:
可以打开浏览器,开始进行web ui
方式的安装了
建议将cdh1的hostname加入到hosts
浏览器打开 https://192.168.1.10:7180
默认账号:admin 默认密码:admin
一路acppect
只不过在选择版本的 时候,我选择了Cloudera Express,然后点击继续。
稍微等待后出现下面的界面
选择主机,这里有一个模式匹配,上面可以点击看规则
点击继续,下面的图我选择了第一个Public Cloudera Repository
点击继续,这里我选择了第一个选项,如果有加密需求的选项的小伙伴可以选择第二个
这里输入密码,或者选择ssh
秘钥
下面就正在安装中了
安装完毕的样子
分发中
安装中
激活完毕
点击完成之后可以看到
NameNode
的webUI
yarn的web端口
修改hdfs的权限(dfs.permissions 去掉勾,然后保存设置,重新启动服务),在linux
里面输入spark-shell --master yarn-client
可以在
yarn
的web UI
里面看到
本次的CDH的图文教程安装完毕,都是一步一步亲测过来。如果有什么问题,或者更好的建议,请在下方留言,谢谢!