公司需求,之前做的impala单机安装并不满足需求,负责人叙述需求没有说清楚,还要过kerberos验证,导致最后需要单独在部署CDH并开启kerberos验证,当然,不装CDH独立部署也能够开启kerberos,不过那个麻烦一点,就不弄麻烦的那个方案了,就从新搞个CDH,弄一弄简单的,以后有时间可以给大家单独出一个教程,独立安装的impala集成kerberos。
CDH是Cloudera的100%开放源代码平台发行版,包括Apache Hadoop,是专门为满足企业需求而构建的。CDH可立即提供企业使用所需的一切。通过将Hadoop与十几个其他关键的开源项目集成在一起,Cloudera创建了功能先进的系统,可以帮助您执行端到端的大数据工作流程。
CDH解决了什么问题:一个对Apache Hadoop的集成环境的封装,可以使用Cloudera Manager进行自动化安装。也就是说让部署变得更容易,并且组件也更好管理了,大家想一下,如果你有1000个节点需要部署hadoop环境,那么你是不是要一台一台弄呢,那很麻烦,也很容易出问题,版本的问题杂七杂八的问题,很费时间,有的同学说,我可以,但是时间就1天呢?你有没有想过这个问题呢,是hadoop、zookeeper、spark、hbase、impala等等组件一起哦,显然是有很大问题的,那么cdh就出现了,方便了我们的部署,也方便了组件版本管理
这里还是简单的介绍一下kerberos是什么,他其实就是一种认证机制,主要用于计算机网络的身份鉴别,它使用了一个由两个独立的逻辑部分:认真服务器、票据授权服务器,这两个组成了“可依赖的第三方”,我们术语说的KDC密钥分发中心,就是这东西。kerberos工作在于证明用户身份的“票据”。这里就不继续往深说了,还是说部署的事情吧。
系统:centos 7
cdh版本:cdh 5.16.2
mysql:mysql5
jdk:java8
1、cm的安装包(这里多说一句,除了压缩包的方式还有rpm包的方式可以安装,我这里因为习惯就用压缩包了)
https://archive.cloudera.com/cm5/cm/5/
2、parcels文件(三个文件需要下载)
https://archive.cloudera.com/cdh5/parcels/5.16.2/
别下错了哈,下错了会出问题的,这里的包就是不同系统选择的包是不一样的我们就选el7,因为是centos7嘛
3、MySQL(我们这里使用的是rpm安装,方便)
mysql的多一点,不过都不算大,大家可以网上找找,这些都很容易找到的,这里就不叙述在哪下了,当然如果已经有了mysql当然更好了,方便就完事了
4、JDK
我是压缩包解压,然后在配置环境变量的,下载就不说了,这个大家都知道,版本确定一下是8哦,大家一定要把虚拟机自带的openjdk给卸载了哈
rpm -qa | grep jdk
如果是openjdk 就
rpm -e --nodeps 加上返回的结果名进行卸载
vi /etc/sysconfig/network 添加
NETWORKING=yes
HOSTNAME=master
我这里是master哈,大家跟自己的哈
vi /etc/hostname 删除文件内容添加如下内容(当前主机名)
master
vi /etc/hosts 添加
192.168.1.106 master
vi /etc/sysconfig/selinux 修改(这里内容别搞错了哈,搞错了就启动不了机子了)
SELINUX=disabled
重启服务器
reboot
更改防火墙配置
依次执行命令如下:
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
安装时间同步服务(单机可安可不安,万一以后加节点可能有用就加上咯)
yum -y install ntp
vi /etc/ntp.conf
注释掉所有server *.*.*的指向,新添加一条可连接的ntp服务器(百度上很多)参考服务器
server time1.aliyun.com
server time2.aliyun.com
server time3.aliyun.com
server time4.aliyun.com
server time5.aliyun.com
server time6.aliyun.com
server time7.aliyun.com
server 2.cn.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
执行命令
service ntpd start
ntpdate -u 1.asia.pool.ntp.org
service ntpd restart
在执行
ssh-keygen -t rsa 一直使用默认
查看是否已经安装MYSQL执行命令如下
rpm -qa | grep mariadb
如果存在那么就卸载
yum remove mariadb-libs 或者yum remove mariadb
安装MYSQL依赖:
yum install -y perl-Module-Install.noarch
yum install -y MySQL-python
yum remove mariadb-libs
rpm安装mysql的所有rpm文件
rpm -ivh **.rpm
修改配置文件路径:
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
在配置文件中增加以下配置并保存:
vi /etc/my.cnf
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
初始化数据库执行
/usr/bin/mysql_install_db
开启MYSQL服务:
service mysql restart
查看mysql root初始化密码:
cat /root/.mysql_secret
登陆mysql
mysql -uroot -p复制上一条命令打印出来的密码
改密码
SET PASSWORD=PASSWORD('123456');
退出
exit
开启开机启动
chkconfig mysql on
拷贝mysql-connector-java-5.1.25-bin.jar到/usr/share/java/mysql-connector-java.jar 注:如果没有/usr/share/java这个目录需先创建
cp mysql-connector-java-5.1.25-bin.jar /usr/share/java/mysql-connector-java.jar
创建相关数据库
mysql -uroot -p123456
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
开启MySQL远程访问
use mysql;
grant all on *.* to root@'master' Identified by '123456';
flush privileges;
MYSQL OK
CM(Cloudera-Manager)部署
cd /opt/
tar -zxvf /mydata/cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz
修改 cloudera-scm-agent/config.ini中的server_host为主节点主机名
vi /opt/cm-5.16.2/etc/cloudera-scm-agent/config.ini
server_host=cdh.master
创建cm用户
useradd --system --home=/opt/cm-5.16.2/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
如果没有安装psmisc 需要安装一下 (否则会报:cloudera-scm-agent:行109: pstree: 未找到命令)
yum install -y psmisc
这个我之前也没管,也去装,好像也没问题
初始化数据
cd /opt/cm-5.16.2/share/cmf/schema
#scm_prepare_database.sh [-数据库类型] [-h主机名 [-u用户名] [-p密码] [主机地址] [创建的数据库名] [用户] [密码]
./scm_prepare_database.sh mysql -hmaster -uroot -p123456 --scm-host master scm root 123456
把parcel包放到/opt/cloudera/parcel-repo 总共三个文件
修改文件名,这个不能忘
mv CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha1 CDH-5.16.2-1.cdh5.16.2.p0.8-el7.parcel.sha
chown cloudera-scm:cloudera-scm -R /opt/cloudera/parcel-repo/ #修改权限属性
然后就启动了瑟
/opt/cm-5.16.2/etc/init.d/cloudera-scm-server start
/opt/cm-5.16.2/etc/init.d/cloudera-scm-agent start
如果是单机那两个都启动 ,如果是集群 ,那么除了主节点要两个都启动,其他只需要启动agent
CDH各个文件所在位置
/etc/hadoop/conf #配置文件所在
/opt/cm-5.16.2/log #日志所在位置
/opt/cm-5.16.2/etc/cloudera-scm-server #数据库与日志相关配置文件在目录:
登录web界面 进行配置安装cdh
http://ip:7180
账号:admin
密码:admin
继续往下
选择主机了,这个我们是单机,那么就选自己那台了
选择需要安装的clouderamanager版本 要选择与之前下载好的CDH的版本一致(我之前就下载错了一次,那么就没有显示出来parcel包,贼尴尬)
继续,这一步就是安装parcel包,并且分发安装到各节点(时间消耗还可以,我单机,集群慢一点)
这里安装好了
出了两个问题,我是没有去管它的,也可以弄一弄,随意
然后就是集群设置和安装组建了,我就不一一叙述了(比较简单,配置-安装-启动)
我们服务器上面是没有这个的,那么我们得装一个通过yum直接安装,还是比较方便的,如果yum不能用,那就下载rpm包的方式安装哈,都可以
1、安装
yum -y install krb5-server krb5-libs krb5-auth-dialog krb5-workstation
2、修改/etc/krb5.conf配置
因为我是把kerberos交给CDH在管理的,所以我之前改的配置都让cdh给改了哈
3、修改/var/kerberos/krb5kdc/kadm5.acl配置
4、修改/var/kerberos/krb5kdc/kdc.conf配置
5、创建Kerberos数据库
kdb5_util create –r CDH.COM -s
要输密码
创建Kerberos的管理账号
kadmin.local
addprinc admin/[email protected] #也是要输密码的
exit
把kerberos加入开机启动
chkconfig krb5kdc on
chkconfig kadmin on
service krb5kdc start
service kadmin start
然后剩下就是CDH页面配置了
我这已经是开启了哈
管理->安全
启用,然后往后配置,到了一个页面的时候注意
我是直接交给CM管理的
时间那个默认就行,后期再改都可以
然后重启嘛,卸载的话CDH和关闭kerberos改天再说,先这样吧。
大家有疑问也可以留言和私信