找回密码
 立即注册
Qt开源社区 门户 查看内容

Ubuntu16.04 上搭建 CDH5.14 集群

2019-2-13 21:18| 发布者: admin| 查看: 1523| 评论: 0

摘要: 作者:河北东软大数据 0所需安装包1.apt-getinstallopenjdk-8-jdk#所有节点安装java2.apt-getinsta ...
作者:河北东软大数据

0 所需安装包


1. apt-get install openjdk-8-jdk    #所有节点安装java  

2. apt-get install mysql-server mysql-client   #主节点安装mysql服务器&客户端 

3. apt-get install mysql-client #从节点安装mysql客户端 

4. apt-get install libmysql-java #所有节点  

5. apt-get install python    #所有节点 

6. apt-get update  #安装更新

7. apt-get install libmysqlclient-dev          

8. apt-get install libxslt-dev 

9. apt-get install apache2 

在介绍具体的硬件、软件配置之前,需要强调一点,所有的命令都是在root用户下执行的。使用如下的命令可以切换到root用户:

1. sudo su  

在教程中使用的编辑器是vim,如果没有安装,请使用下面的命令安装,并自行查找相关的使用资料。

1. apt-get install vim  

1 硬件平台介绍


集群总共包括三台服务器,一台主机两台从机,服务器名称和IP地址对应关系如下:

hadoop-master 172.30.3.135

hadoop-slave1 172.30.3.136

hadoop-slave2 172.30.3.137



1.1 hostname、hosts和防火墙设置

1.1.1 hostname设置


首先设置所有节点的hostname,使用下面的命令:

1. vim /etc/hostname 

将xx-PC类似的名字改成hadoop-master(主机)或者是hadoop-slave1、hadoop-slave2(从机)。

1.1.2 hosts配置


修改所有节点的hosts配置,使用如下的命令:

1. vim /etc/hosts 

hosts文件修改后的内容如下所示:

1. 127.0.0.1 localhost   

2. #127.0.0.1 xx-pc 这一行一定要删除掉,否则后面配置CDH的时候会有问题    

3. 172.30.3.135 hadoop-master   

4. 172.30.3.136 hadoop-slave1   

5. 172.30.3.137 hadoop-slave2   

6. #ipv6相关的配置不需要更改



1.1.3 关闭防火墙


使用下面的命令关闭所有节点的防火墙:

1. iptables-save > /root/firewal.rules  #保存防火墙的规则 

2. service ufw stop  #关闭防火墙

如果不关闭防火墙,在后续配置集群的时候主节点会无法检测到其他的节点。

在执行完上面的所有配置以后,重启所有节点。

1. ufw status  #Status: inactive 

2. reboot  #重启服务器

1.1.4 测试配置结果


依次在所有节点的终端上,执行下面的命令:

1. ping hadoop-master 

2. ping hadoop-slave1 

3. ping hadoop-slave2 

如果都ping成功了,说明上面的配置就没有问题了。

1.2 ssh服务配置


为了能够让机器远程ssh登录到root账号,需要进行两个配置:修改ssh的配置,允许远程登录到root用户;拷贝公钥。

1.2.1 修改ssh配置


首先确认在所有的节点上都安装了ssh,测试的方法为在终端输入ssh会弹出提示信息,否则显 示没有这个可执行程序。

如果没有安装ssh,则使用下面的命令安装:

1. apt-get install openssh-* 

然后使用下面的命令打开ssh配置:

1. vim /etc/ssh/sshd_config 

修改ssh的root用户远程设置:

1. #PermitRootLogin prohibit-password  #注释掉下面这一行,有时候为without-password 

2. PermitRootLogin yes

退出vim并保存,重新启动ssh。

1. service ssh restart 

1.2.2 生成并拷贝ssh公钥


在所有的节点上,执行下面的命令生成ssh的公钥:

1. ssh-keygen -t rsa 

上面的命令会在当前用户目录(也就是root用户)下生成.ssh文件,里面存放了公钥和私钥,需要将公钥添加到hadoop-master和hadoop-slave[1-2]上

1. ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop-master 

2. ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop-slave1 

3. ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop-slave2 

上面的命令会将公钥添加到远程机器相同账号(root用户)的~/.ssh/authorized_keys文件夹中。

若以上方法失败,也可手动复制公钥,将/root/.ssh/id_rsa.pub复制到authorized_keys文件中。

【注意】在所有的机器上进行完上面的命令以后,再进行测试。

1.2.3 测试配置结果


在终端下,输入下面的命令测试:

1. ssh hadoop-master   #如果成功,请输入exit命令退出远程登录 

2. ssh hadoop-slave1   #如果成功,请输入exit命令退出远程登录 

3. ssh hadoop-slave2   #如果成功,请输入exit命令退出远程登录

ssh成功后,会进入到远程机器上,请使用exit命令退出远程登录再测试其他的机器。否则,会出现Access Denied的提示信息。

2 配置JDK环境和MySQL


下面介绍Cloudera Manager的安装需要的java和MySQL环境配置。

2.1 JDK安装


在Ubunt16.04上默认的jdk版本就已经够了,如果在系统上没有进行过修改, 输入java -version 命令应该就会直接显示java的版本。

1. apt-get install openjdk-8-jdk    #所有节点安装java  

2.2 安装MySQL


在hadoop-master节点上,使用下面的命令安装MySQL

1. apt-get install mysql-server mysql-client   #主节点安装mysql服务器&客户端   

2. apt-get install mysql-client  #从节点安装mysql客户端   

3 部署Cloudera Manager


为了安装Cloudera Manager,需要执行如下的几个步骤:

3.1 软件准备


这个步骤只需要在hadoop-master上执行。

首先需要准备四个文件cloudera-manager-xenial-cm5.14.0_amd64.tar.gz,CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel,manifest.json和CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha1文件。如果没有这四个文件,可以使用下面的命令安装:

1. # 默认下载在/root/backup文件夹下 

2. mkdir -p /root/backup 

3. cd /root/backup 

4. # 下载cloudera-manager 

5. wget -c http://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.14.0_amd64.tar.gz 

6. # 下载cdh的parcel文件 

7. wget -c http://archive.cloudera.com/cdh5/parcels/latest/CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel 

8. # 下载cdh的parcel.sha文件 

9. wget -c http://archive.cloudera.com/cdh5/parcels/latest/CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha1 

10. # 下载manifest文件 

11. wget -c http://archive.cloudera.com/cdh5/parcels/latest/manifest.json 

12. 下载了四个文件以后,需要将CDH-5.14.0-1.cdh5.14.0.p0.24-xenial-parcel.sha1改名为CDH-5.14.0-1.cdh5.14.0.p0.24-xenial-parcel.sha,使用下面的命令 

13. cd /root/backup 

14. mv CDH-5.14.0-1.cdh5.14.0.p0.24-xenial-parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-xenial-parcel.sha 

然后建立如下所示的文件树:

1. | --/opt 

2.       |--/cloudera 

3.                  |--/parcels 

4.                  |--/parcel-repo 

5.                              |--/CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel 

6.                              |--/CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha

7.                               |--/manifest.json 

8.       |--/cm-5.14.0 

具体的操作命令如下:

1. cd /opt 

2. mkdir cloudera #创建cloudera文件夹 

3. cd cloudera 

4. mkdir parcels #创建parcels文件夹 

5. mkdir parcel-repo #创建parcel-rep文件夹 

6. cd parcel-repo 

7. cp /root/backup/* ./ #将三个文件拷打percel-repo文件夹下 

8. tar -zxf cloudera-manager-xenial-cm5.14.0_amd64.tar.gz -C /opt #解压cm 

  • Winscp -->172.30.3.135-->账号密码   拖入文件到/home/ubuntu

  • -->高级-->密钥  拖入文件到/home/ubuntu

  • cd /etc/apt/  替换   sources.list

3.2 为Cloudera Manager连接MySQL

3.2.1 配置cm5数据库


首先在所有节点上安装mysql-connector-java软件包:

1. apt-get install libmysql-java 

在hadoop-master上链接mysql连接库到cm

加入mysql-connector-java-5.1.41-bin.jar 到下边指定位置

1. ln -s /usr/share/java/mysql-connector-java.jar /opt/cm-5.14.0/share/cmf/lib/mysql-connector-java.jar 

在hadoop-master上配置cm5的数据库:

1. cd /opt/cm-5.14.0/share/cmf/schema ./scm_prepare_database.sh mysql -uroot -p123456 scm scm scm --force 

在命令中加--force是为了防止重新配置时,因为scm数据库已经存在而终止执行命令。

3.2.2 配置Agent


在hadoop-master上修改配置文件的server:

1. vim /opt/cm-5.14.0/etc/cloudera-scm-agent/config.ini #打开config.ini文件 

2. server_host=hadoop-master #修改server_host为hadoop-master

将hadoop-master上的cm-5.14.0复制到其他的节点上:

1. scp -r /opt/cm-5.14.0 hadoop-slave1:/opt/ 

2. scp -r /opt/cm-5.14.0 hadoop-slave2:/opt/ 

3.2.3 启动Cloudera Manager的Server和Agent


在hadoop-master节点上启动Server进程和Agent进程:

1. cd /opt/cm-5.14.0/etc/init.d 

2. ./cloudera-scm-server start 

3. ./cloudera-scm-agent start 

在hadoop-slave[1-2]节点上启动Agent进程:

1. cd /opt/cm-5.14.0/etc/init.d 

2. ./cloudera-scm-agent start 

4 正式部署-可视化集群配置


在等待Cloudera Manager Server和Agent启动完毕后,就可以使用CDH5的可视化界面了,在集群的机器上浏览器输入链接http://hadoop-master:7180,登录管理界面。如果访问失败,可能需要稍微等几十秒,不停的刷新浏览器。如果还是不行,可能是前面的配置有问题,请确认前面的配置没有错误。

  • 登录 如果配置没有问题,登录以后的界面为如下所示,用户名和密码默认为admin。




  • 同意条款




  • 选择版本 选择中间的使用版本,在试用期结束后会默认进入免费版本。




  • 选择集群机器

    注意,一定要选择红色椭圆那个选项,如果红色的方框内主机数目和IP地址,如果数目不对,很有可能是没有关闭防火墙,注意所有的节点都需要关闭防火墙;如果是IP地址不对,那么需要检查hosts文件。




  • 选择集群安装方式

    请选择Parcel方式,如果CDH的版本没有5.14.0,那么请确认文件树是对的,并且xx-parcel.sha1文件名字修改为了xx-parcel.sha。




  • 分发Parcel到各个节点





  • 检测安装环境 如出现如下的警告,在所有的节点上输入echo 10 > /proc/sys/vm/swapiness,然后刷新下浏览器。






如出现某个主机不能正常运行的警告,请安装apt-get install openjdk-8-jdk 。

如出现用户或组缺失的警告,在所有节点上创建用户和组。

1. groupadd cloudera-scm  

2. useradd cloudera-scm -g cloudera-scm

  • 选择安装服务 仅选择了核心服务,如果后续需要增加,可以通过管理界面操作。




  • 角色配置




  • 数据库配置 数据库配置是最容易出错的地方,配置数据库之前,首先需要创建数据库,只需要在hadoop-master节点上配置数据,包括四个数据库(hive,rman,ozzie,hue)和四个用户名(hive,rman,ozzie,hue),配置的命令如下:

1. mysql -uroot -p123456 

2. #创建数据库 

3. create database hive DEFAULT CHARSET utf8; 

4. create database rman DEFAULT CHARSET utf8; 

5. create database oozie DEFAULT CHARSET utf8; 

6. create database hue DEFAULT CHARSET utf8; 

7. #创建用户名 

8. grant all on hive.* TO 'hive'@'%' IDENTIFIED BY '123456'; 

9. grant all on rman.* TO rman@'%' IDENTIFIED BY '123456'; 

10. grant all on oozie.* TO oozie@'%' IDENTIFIED BY '123456'; 

11. grant all on hue.* TO 'hue'@'%' IDENTIFIED BY '123456'; 

注意,上面的每一个命令后都会有分号,在输完一行命令以后都会在下面显示OK!



然后点击测试连接,如果测试失败,可以试试将hadoop-master改成localhost试试。

#No database server found running on host hadoop-master.

1. mysql -uroot -p123456 -h hadoop-master  #访问不了 

2. cd /etc/mysql/mysql.conf.d/ 

3. vim mysqld.cnf 

4. 注释掉 bind-address 

# Unexpected error. Unable to verify database connection.

安装   apt-get install libmysqlclient-dev   apt-get install libxslt-dev

  • 进行安装




  • 安装成功







5 Sqoop相关事项


【tips】1.安装时hive的mysql  jar放在

/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hive/lib

oozie的mysqljar放在/var/lib/oozie

2.tail -f cloudera-scm-server.log   #动态查看日志

3.修改用户权限

1. su - hdfs 

2. hadoop dfs -mkdir /user 

3. hdfs dfs -chmod 777 /user 

4. hdfs dfs -chmod 777 /tmp 

4.使用sqoop迁移mysql表到hadoop平台,同时通过hue可视化工具查看查询该表

将ojdbc6.jar 复制到:

1. cd /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/sqoop/   

6 kylin相关安装

6.1 kylin软件下载


社区版kylin下载地址:https://archive.apache.org/dist/kylin/ ,本次测试使用apache-kylin-2.3.1.tar.gz



6.2 配置安装kylin

6.2.1 kylin 安装的环境配置


1. tar -zxvf apache-kylin-2.3.1-cdh57-bin.tar.gz -C /usr/local/ 

2. cd /usr/local/   

3. mv apache-kylin-2.3.1-bin/ kylin 

4. vim /etc/profile 

5. ----### kylin #### export KYLIN_HOME=/usr/local/kylin 

6. PATH=$PATH:$HOME/bin:$KYLIN_HOME/bin 

7. ---source /etc/profile



6.2.2 kylin的启动验证


1. cd /usr/local/kylin/ 

2. ./check-env.sh 



1. su - hdfs  

2. hdfs fs -chmod -R 777 / 



1. #重新检测处理 

2. cd /usr/local/kylin/ 

3. ./check-env.sh 



1. #启动kylin 

2. ./kylin.sh start







默认用户名:ADMIN      密码:KYLIN



6.2.3 kylin 运行实例使用测试


1. cd /usr/local/kylin/bin 

2. ./sample.sh









1. #重启kylin 

2. cd /usr/local/kylin/bin 

3. ./kylin.sh stop  

4. ./kylin.sh start 





impala的加载表:

impala-shell -i "INVALIDATE METADATA"

单独刷新一张表:

refrash  + 表名

hive 的default库 当中多了几张kylin的表




  • 构建cube






  • 这个地方如果机器配置不够的话,尽量日期间隔选小一点。






这一步会比较耗时,因为这步会进行预计算,默认是MapReduce作业。






  • kylin的数据查询









  • 查询构建完成的cube

先运行简单的count,可以看到耗时4.12s,再次执行基本在0.5s级,基本是毫秒级别就可以查询出来,这是因为kylin 支持缓存的功能。

  • 复杂的查询

1. select sum(KYLIN_SALES.PRICE)  

2. as price_sum,KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME  

3. from KYLIN_SALES inner join KYLIN_CATEGORY_GROUPINGS 

4. on KYLIN_SALES.LEAF_CATEG_ID = KYLIN_CATEGORY_GROUPINGS.LEAF_CATEG_ID and  

5. KYLIN_SALES.LSTG_SITE_ID = KYLIN_CATEGORY_GROUPINGS.SITE_ID 

6. group by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME 

7. order by KYLIN_CATEGORY_GROUPINGS.META_CATEG_NAME asc,KYLIN_CATEGORY_GROUPINGS.CATEG_LVL2_NAME desc 





7 CDH5安装失败如何重新安装


CDH安装失败的原因可能有以下原因:

1、机器内存不足,(server节点我用了6G,两个agent节点均是4G才安装成功)。

2、需要的mysql驱动文件没有拷贝到指定位置。

具体重新安装步骤如下:

停止agent服务19001   netstat -tunlp|grep 19001

一、删除cm库

1. mysql> drop database scm; 

2. Query OK, 45 rows affected (1.69 sec)

二、删除agent节点相关信息

1. rm -rf /opt/cm-5.124.0/lib/cloudera-scm-agent/* 

三、如果安装过程中agent节点产生了dd,dn数据,还需要将数据删除。

四、重新创建cm数据库

1. cd /opt/cm-5.14.0/share/cmf/schema ./scm_prepare_database.sh mysql -uroot -p123456 scm scm scm --force 

五、分别启动cloudera-scm-server和cloudera-scm-agent。

到了这里,就可以通过浏览器进入http://node01:7180页面进行重新安装了。


-------------------------------------------------------------------------
我们尊重原创,也注重分享,如若侵权请联系qter@qter.org。
-------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了