Ubuntu安装CDH及可能遇到的问题解决

1. 安装前的准备工作

我采用的是使用CM 5.14.0来安装CDH,因此只讲这一种。目前,根据官方给的文档所给出的数据,支持的各个环境最新版本如下:

Ubuntu 16.04

jdk 1.8u144

mysql 5.7

python2.4以上 不支持python3

同时为了以防万一,全程采用root用户安装。

修改主机名:

gedit /etc/hostname

在打开的文件中写入主机名我的主节点是cdhmaster,从节点是cdh01,注意主机名最好不要有下划线和大写。

配置hosts文件

将主节点与从节点的ip与主机名的映射关系配置好。

需要特别注意的是:

主机名不能有大写,最好不要有127.0.0.1 和localhost的字眼出现,不要有ip地址重复的条目,配置主机名时最好加上域名。不然那后期会出现一些莫名奇妙的错误,排查起来有点困难。最好按照如下格式:

122.222.233.244  cdhaaa.bbb.com cdhaaa

122.222.233.144   cdhbbb.bbb.com cdhbbb

防火墙关闭

ufw disable

SSH

首先运行 一下命令来安装SSH服务。

sudo apt-get install openssh-server

但是在有些机器上可能会出现下列错误:

Ubuntu安装CDH及可能遇到的问题解决_第1张图片

此时,我们安装openssh-client,并且加上版本号,命令如下:

sudo apt install openssh-client=1:6.6p1-2ubuntu1

成功之后在重新执行就没有问题了。安装成功之后,

$ ssh-keygen -t rsa -P ""

然后把生成的id_rsa.pub加入authorized_keys里:

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

这时本机已经可以对localhost免密访问了

$ ssh localhost

接下来,为了使master能免密访问slave:

ssh-keygen -t rsa

ssh-copy-id -i ~/.ssh/id_rsa.pub name@ip

这样就能免密码登陆了。

注意,在配置免密登录时,为了以防万一,所需要的免密登录的用户均为root用户。

mysql

使用如下命令可以直接安装mysql数据库。

apt-get install mysql-server

安装完成之后,使用一下命令进去命令行界面

mysql -uroot -p

按照提示输入密码,但是有些可能会出现以下错误问题:

 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

进入mysql的安装目录,打开debian.cnf文件,查看client节的用户名和密码来直接使用。

sudo etc/mysql/debian.conf

获取到用户名和密码后,使用提供的用户名和密码来登陆mysql

mysql -udebian-sys-maint -p

Enter password: <输入[client]节的密码>

进去mysql后,然后来更新root的密码:

mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass')

mysql> FLUSH PRIVILEGES;

mysql> quit

然后重启mysql就能使用你新改的密码来登录进mysql数据库了。

创建cdh服务组件所需要用到的数据库

  1. create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  2. create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  3. create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  4. create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  5. create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

同时需要授权mysql数据库可以远程登录:

grant all on *.* to root@'%' Identified by 'root';

flush privileges;

ntp安装(网上很多这里不详细列出)

安装jdk(网上同样有很多)

2. 正式开工:

2.1 解压缩(所有节点)

首先下载CM5.14.0压缩包,地址http://archive.cloudera.com/cm5/cm/5/ 选择合适的版本。然后进入下载目录解压到/opt/cloudera-manager下:

tar -xzvf cloudera-manager-trusty-cm5.10.0_amd64.tar.gz -C /opt/cloudera-manager

等待解压完成。

2.2 添加cloudera-scm账户(所有节点)

useradd --system --home=/opt/cloudera-manager/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

2.3 指定cloudera server 地址(从节点)

gedit /opt/cloudera-manager/cm-5.10.0/etc/cloudera-scm-agent/config.ini

将server_host的值改为服务器的主机名。

2.4 创建cloudera-manager-server的本地元数据保存目录(主节点)

  1. mkdir /var/cloudera-scm-server
  2. chown cloudera-scm:cloudera-scm /var/cloudera-scm-server
  3. chown cloudera-scm:cloudera-scm /opt/cloudera-manager

2.5 创建parcel-repo仓库目录(主节点)

  1. mkdir -p /opt/cloudera/parcel-repo
  2. chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
注意 可以提前将CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel,CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha1,manifest.json提前下载好,也可以不下载只创建目录,由CM在安装的时候自动下在,但是由于是国外的网站,网速不是很理想,这样会导致安装过程变得十分缓慢,所以建议提前下载好,下载地址https://archive.cloudera.com/cdh5/parcels/5.14.0/,下载好后进入下载目录执行一下命令
  1. 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
  2. cp CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel CDH-5.14.0-1.cdh5.14.0.p0.24-xenial.parcel.sha manifest.json /opt/cloudera/parcel-repo

2.6 创建parcels目录(所有节点)

  1. mkdir -p /opt/cloudera/parcels
  2. chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

Clouder-Manager将CDHs从主节点的/opt/cloudera/parcel-repo目录中抽取出来,分发解压激活到各个节点的/opt/cloudera/parcels目录中。

2.7 初始脚本配置数据库scm_prepare_database.sh(主节点)

/opt/cloudera-manager/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql -hmaster -uroot -proot --scm-host master scmdbn scmdbu scmdbp

参数解释:

mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。

-uroot:root身份运行mysql。-proot:mysql的root密码是root。

--scm-host localhost :CMS的主机,一般是和mysql安装的主机是在同一个主机上。

最后三个参数是:数据库名,数据库用户名,数据库密码。

注意:如果填充失败了,请先删去数据库与其用户,再看错误报告后,进行排错

2.8 启动

主节点:

      1. /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server start

      2./opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start

从节点

      /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start

2.9 使用web登录

打开浏览器输入127.0.0.1:7180,可能需要等3分钟就可以弹出cm的登录界面了,默认的账户密码都是admin,登录之后进入进群安装向导:

选择部署免费版,进入添加主机向导:

Ubuntu安装CDH及可能遇到的问题解决_第2张图片

注意此时最好填入主机的域名。不要直接填IP地址,可能会导致之后一些不明所以的安装错误。填好后点击search,等待寻找主机。

搜索到之后点击继续,之后保持默认点击继续,如果已经安装java则不需要在安装java,点击继续,输入配置的root用户的密码。点击继续,来到安装主机的界面.如下所示:

Ubuntu安装CDH及可能遇到的问题解决_第3张图片

耗时较长,需要耐心等待.可能会出现如下错误:

Ubuntu安装CDH及可能遇到的问题解决_第4张图片

这是由于之前的hosts文件没按上面说的要求配置导致出现的莫名其妙的问题。


Ubuntu安装CDH及可能遇到的问题解决_第5张图片

这是由于hive已经后面的oozie等等都默认需要jdbc驱动,需要在所有节点中把驱动放到/opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/hive/lib/ /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/oozie/lib/   /var/lib/oozie/ 目录下即可。

由于是安装完成后根据回忆写的,可能有遗漏之处,多多谅解。

你可能感兴趣的:(Ubuntu安装CDH及可能遇到的问题解决)