数仓运维之CDH搭建

  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:首席运维告诉我怎么查看组件日志:

组件->配置:


先这样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。