CDH搭建一直对萌新是一个不大不小的门槛,想想起七年前看隔壁小王手动搭建hadoop,10次fdisk,吓得下巴都掉下来了。一晃七年过去了,隔壁小王已早生华发,变成了隔壁老王,真的是恍如隔世。
1. 申请机器
这里申请的是阿里云ecs机器,2C8G*4台,各位萌新可以根据荷包和实际需要伸缩扩容集群。阿里云操作系统的好处就是可以比网上通用教程少做一些步骤,比如操作系统的安装,防火墙, NTP时间同步安装等。
2. 预备工作:
安装JDK
到官网下载rpm包:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
运行:
rpm -i jdk-7u71-linux-x64.rpm
MySQL安装
①官网下载mysql-server(yum安装)
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
若wget不可用,下载安装wget:yum -y install wget
②解压
rpm -ivh mysql-community-release-el7-5.noarch.rpm
③安装
yum install mysql-community-server
④重启mysql服务:service mysqld restart (以后开机不需启动mysql)
⑤创建用户:mysqladmin -u root password 123456
登陆:mysql -uroot -p123456
远程连接设置:
把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户:
mysql> grant all privileges on *.* to root@' hadoop.learning001' identified by '123456';
mysql>flush privileges; 刷新权限
关闭防火墙
好消息,不用做,阿里云做好了。
NTP时间服务同步
好消息,不用做,阿里云做好了。
修改所有节点 /etc/hosts文件 (IP 主机名) 的形式配置所有节点:
172.16.105.6 hadoop.learning001
172.16.204.43 hadoop.learning002
172.16.204.42 hadoop.learning003
172.16.204.41 hadoop.learning004
配置SSH免密
步骤:
打开master节点,即你要作为主节点的虚拟机
ssh 回车
ssh-keygen -t rsa 回车三次
cd ~/.ssh 会看到两个文件, id_rsa 私匙,id_rsa.pub 公匙
授权公匙
cp id_rsa.pub authorized_keys 或者 cat id_rsa.pub >> authorized_keys
登陆其他各个节点,分别执行如下操作
ssh
ssh-keygen -t rsa 回车三次
cd ~/.ssh
ssh-copy-id -i xxx //xxx代表你master主节点的主机名,如果没有在/etc/hosts文件配置,会找不到
当所有节点执行完毕,进入master,分发authorized_keys文件
cd ~/.ssh
scp authorized_keys root@slave:~/.ssh //slave是你子节点的主机名,需要分发所有节点,所以有几个节点,就要执行几次,但要修改slave名字执行此操作需要输入一次yes,一次当前子节点的登陆密码
然后执行 ssh slave 就可以不用密码切换到子节点
3. 正式安装Cloudera Manager:
创建cloudera-scm用户
登录集群所有机器执行命令:
useradd --system --home=/opt/cm-5.7.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
CM包准备:
下载地址:https://archive.cloudera.com/cm5/cm/5/
登录Master机器
将cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz文件加压至/opt下,产生2个文件夹cloudera和cm-5.3.0。
登录Master机器
下载地址:http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/
将mysql-connector-java-5.1.47-bin.jar拷贝至/opt/cm-5.7.0/share/cmf/lib/
初始化CM5的数据库数据库
登录Master机器
执行命令:
/opt/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
修改Agent配置
登录Master机器
执行命令:
vi /opt/cm-5.7.0/etc/cloudera-scm-agent/config.ini
将server_host的值改成Master机器的名称(hadoop.learning001)
同步Agent到其他节点
登录Master机器
执行命令:
scp -r /opt/cm-5.7.0 root@slave[1-xx]:/opt/
准备Parcels,下载地址:https://archive.cloudera.com/cdh5/parcels/5.7.0/
登录Master机器
将CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel、CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1和Manifest.json三个文件拷贝至/opt/cloudera/parcel-repo/文件夹下。
并将.sha1重命名为.sha。
启动Cloudera Manager
登录Master机器
执行命令:
/opt/cm-5.7.0/etc/init.d/cloudera-scm-server start
登录集群所有机器
执行命令:
/opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start
如果启动出现一下情况:
cloudera-scm-agent start
Starting cloudera-scm-agent: [FAILED]
则做一下操作:
mkdir /opt/cm-5.7.0/run/cloudera-scm-agent
chown -R cloudera-scm:cloudera-scm /opt/cm-5.7.0/run/cloudera-scm-agent
启动Cloudera Manager后等待1-3分钟,然后访问http://主节点IP:7180,若可以访问则表示安装成功。
这里主节点上要配置一下安全组,暴露7180端口。
用户名和密码都是admin。
然后一路操作傻瓜式就好了,无非是一些配置,日后都可以修改。
注意:
当选择需要安装的组件,可自定义安装。首席运维建议我选第一个,先最小化安装,其它以后再说,免得有些组件有坑导致装不下去。
一些坑:
将mysql-connector-java-5.1.34-bin.jar拷贝至/opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hive/lib/下
Hue同样有相同坑爹问题,通过看上图没截到的日志: "Copying JDBC jar from /usr/share/java/mysql-connector-java.jar to /var/lib/oozie",定位应该把mysql驱动放到下图文件夹里。
/usr/share/java/mysql-connector-java.jar
cdh Table 'oozie.VALIDATE_CONN' doesn't exist
oozie实例--操作--创建Oozie数据库表,如下图:
hue问题汇总
1、hue 启动报错:ImportError: libxslt.so.1: cannot open shared object file: No such file or directory
原因:OS缺少相关包
解决办法: 安装hue需要的依赖包即可
sudo yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel -y
Tips:首席运维告诉我怎么查看组件日志:
组件->配置:
先这样。