CDH安装过程

来源:互联网 发布:java定时任务 编辑:程序博客网 时间:2024/05/29 08:31

一、准备工作

1、安装Java JDK(所有节点)

从官网上下载rpm包,可从以下网址下载Java JDK

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

我使用的是 jdk-8u121-linux-x64.rpm,执行命令:

rpm -ivh jdk-8u121-linux-x64.rpm

由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可:

<1> 打开文件:

vi /etc/profile

<2> 在文件下面添加 :

export JAVA_HOME=/usr/java/jdk1.8.0_121export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

<3> 执行生效

source /etc/profile

<4> 验证

java -version

2、卸载系统自带的OpenJDK(所有节点)

此处也可先安装新的JDK,再通过yum remove卸载自带的OpenJDK。

查看当前java版本:
java -version
OpenJDK Runtime Environment (build 1.6.0-b09)OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)...

由上可知,说明系统中已经安装了OpenJDK,执行一下命令查看系统中有哪些OpenJDK相关包:

rpm -qa | grep java
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64tzdata-java-2016g-2.el7.noarchpython-javapackages-3.4.1-11.el7.noarchj rpm -ivh ava-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64javapackages-tools-3.4.1-11.el7.noarch

使用 rpm -e –nodeps 命令卸载OpenJDK,例如:

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64

3、修改主机名

<1> 修改 /etc/sysconfig/network 文件:

NETWORKING=yesHOSTNAME=master.hadoop

<2> 设置hosts

其中HOSTNAME与主机名一致。主机名如果跟系统安装时不一致请执行hostname命令让其立即生效,否则会影响各节点互相访问。

修改 /etc/hosts 文件,添加:
10.0.1.166  master.hadoop (IP自行设置)

其中,前面的IP为主机IP,后面为主机名

<3> 执行命令:

service network restart

另一种方法是(仅限在CentOS7上使用):

hostnamectl set-hostname master.hadoopsu -

上面这个命令可以直接修改hostname并重置hosts中的主机名

4、设置SSH无密码登录(所有节点)

免密码登录点击查看

5、关闭防火墙(所有节点)

  • 防火墙会引起hadoop相关组件通讯的各种异常

CentOS6关闭防火墙

service iptables stop (临时关闭)chkconfig iptables off (重启后生效)

CentOS7关闭防火墙

systemctl stop firewalld.servicesystemctl disable firewalld.service

6、关闭SELinux(关闭安全模式)(所有节点)

进入 config 配置文件

vi /etc/selinux/config

修改配置

# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#       enforcing - SELinux security policy is enforced.#       permissive - SELinux prints warnings instead of enforcing.#       disabled - SELinux is fully disabled.SELINUX=disabled  (注意此处的disabled别写错!!!)# SELINUXTYPE= type of policy in use. Possible values are:#       targeted - Only targeted network daemons are protected.#       strict - Full SELinux protection.SELINUXTYPE=targeted

然后重启查看状态

sestatus

7、安装配置MySQL(master主节点)

安装方法一:

yum  install  wgetwget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm#卸载无关数据库软件rpm -qa |grep mariadb rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64#安装mysql  rpmrpm  -ivh mysql57-community-release-el7-8.noarch.rpm #查看安装那个版本的yum repolist all | grep mysql#若想换版本才操作该文件vi mysql-community.repo#安装yum install mysql-community-server

安装方法二:

安装方法二:
CentOS7下快速安装MySQL,CentOS7的yum源中貌似没有正常安装MySQL时的mysql-sever文件,需要去官网上下载

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpmrpm -ivh mysql-community-release-el7-5.noarch.rpmyum install mysql-community-server

成功安装之后重启mysql服务

service mysqld restart

删除安装下的mysql文件

rm -Rvf /var/lib/mysql/*

重新解压初始化mysql软件文件

mysqld --initialize-insecure

如果报以下错误

Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. 

执行

chown -R mysql:mysql /var/lib/mysql
初次安装mysql是root账户是没有密码的
设置密码的方法
mysql -urootmysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword ');mysql> exit

远程授权连接mysql

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

二、安装clourdera-manage

1、创建数据库(此步骤不先创建数据库也可以,以后需要用到时创建)

  • 若在后面的配置安装时,选择了下面的服务,则需要安装相应的数据库

Hive

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

Activity Monitor

mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

Hue

mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

Activity Oozie (可选)

mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

2、授权root用户在主节点拥有所有数据库的访问权限

mysql> grant all privileges on *.* to 'root'@'主机名hostname,也可以是IP' identified by '数据库密码' with grant option;mysql> flush privileges;

3、下载安装CDH所需要的文件

<1>下载CDH安装文件

这里写图片描述

上图标示了安装CDH所需要的文件。

可从官网下载,下面给出官网下载链接:

CM下载地址:

http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.9.0_x86_64.tar.gz

CDH下载地址:

http://archive.cloudera.com/cdh5/parcels/5.9.0.23/CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel
http://archive.cloudera.com/cdh5/parcels/5.9.0.23/CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.9.0.23/manifest.json

解压安装

(1)解压 cloudera-manager-centos7-cm5.9.0_x86_64.tar.gz

(2)将cloudera-manager-centos7-cm5.9.0_x86_64.tar.gz解压至/opt,注意必须解压至/opt目录

tar -xzvf cloudera-manager-centos7-cm5.10.0_x86_64.tar.gz  -C /opt/

(3)将mysql-connector-java-5.1.40-bin.jar拷贝至/usr/share/java 并重新命名为mysql-connector-java.jar(有时包jdbc驱动找不到一般是此步骤未做)

(4)初始化CM mysql库

执行下面的语句会创建名称为:cm的数据库,该数据库是Cloudera Manager相关数据保存的数据库

/opt/cm-5.9.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm

其中,mysql后面跟的是数据库名,-u后面跟数据库用户名 -p后面跟数据库用户密码,执行成功之后,进入mysql就会发现已经有cm库了。

(5)创建用户(所有节点执行)

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

(6)Agent配置

进入config.ini文件

vi /opt/cm-5.9.0/etc/cloudera-scm-agent/config.ini
server_host=master.hadoop

修改 server_host=master.hadoop,该server_host设置为当前主机名,不知道可通过hostname命令查看。

(7)将parcel文件放至/opt/cloudera/parcel-repo目录

这里写图片描述

同时将CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1重命名为CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha,执行以下命令:

mv CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha

这里写图片描述

(8)启动服务

#启动服务端/opt/cm-5.9.0/etc/init.d/cloudera-scm-server start#启动Agent服务(在server服务启动完毕之后再启动agent服务)/opt/cm-5.9.0/etc/init.d/cloudera-scm-agent start

(9)启动完agent服务之后,查看log

# server服务log文件位置/opt/cm-5.9.0/log/cloudera-scm-server/cloudera-scm-server.log# agent服务log文件位置/opt/cm-5.9.0/log/cloudera-scm-agent/cloudera-scm-agent.log

若Agent服务log出现以下报错,则可能是系统自带OpenJDK残留文件的问题,需要卸载jdk重新安装,具体查找问题及解决方法在下面给出。

Traceback (most recent call last):  File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/agent.py", line 710, in start    self._init_after_first_heartbeat_response(resp_data)  File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/agent.py", line 840, in _init_after_first_heartbeat_response    self.client_configs.load()  File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/client_configs.py", line 682, in load    new_deployed.update(self._lookup_alternatives(fname))  File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/client_configs.py", line 432, in _lookup_alternatives    return self._parse_alternatives(alt_name, out)  File "/usr/lib64/cmf/agent/build/env/lib/python2.7/site-packages/cmf-5.8.2-py2.7.egg/cmf/client_configs.py", line 444, in _parse_alternatives    path, _, _, priority_str = line.rstrip().split(" ")ValueError: too many values to unpack
解决方法

依次执行以下两条命令:

alternatives --list | awk '{print $1}' | xargs -n1 alternatives --display |grep "^/" > all_alternatives.txt
awk -F ' ' -v NCOLS=4 'NF!=NCOLS{printf "Wrong number of columns at line %d\n", NR}' all_alternatives.txt

若有错误,会打印出类似于下面的错误:

Wrong number of columns at line 7

此时会生成一个 all_alternatives.txt文件,打开该文件到指定行处查看引发错误的原因,一般错误为:

usr/lib64/IcedTeaPlugin.so - family java-1.8.0-openjdk.x86_64 priority 18000

此时需要通过yum remove 卸载已安装的jdk,并重新安装,再进行上面的命令测试,一般错误解除。

#查看已安装和可安装的JDKyum list |grep jdk#卸载已安装的JDKyum remove jdk1.8.0_121.x86_64#再次安装JDKrpm -ivh jdk-8u121-linux-x64.rpm

三、进入Cloudera Manager安装图解

1、使用admin登录,账号密码均为admin

这里写图片描述

2、勾选然后继续

这里写图片描述

3、按需选择,选择免费

这里写图片描述

4、选择当前主机

这里写图片描述

5、选择自己的主机

仅在自己机器上安装了CDH时,只会显示自己的机器信息,则选择该机器就行。

6、选择存储库,并选择CDH版本

由于我们已经预先将CDH5.9.0的包放到了服务器,所以选择5.9.0即可,此处选择时要慎重,若选择了别的版本,会重新下载文件,若该文件选择列表没有我们预先放置到 /opt/cloudera/parcel-repo 该目录下的CDH-5.9.0文件时,则查看log,看下载的文件是否有问题,更改后重启服务。

7、正在安装选定Parcel

这里写图片描述

8、检验主机正确性

这里写图片描述

9、集群设置(选择自定义服务)

这里写图片描述

10、安装的服务(可自行选择)

此处可选择一些基本的服务,安装完成后,可以再根据自己的需求添加需要的服务。
这里写图片描述

11、自定义角色分配(使用默认配置)

这里写图片描述

12、数据库设置

这里写图片描述

13、数据库设置时的问题

1、此处填写的数据库名称即为前面步骤中创建的数据库名,若没有选择安装这些服务,则不会出现相应的服务数据库配置。
2、若数据库设置时,数据库易创建,用户名、密码均无误,但出现下图所示问题,则需要在本机配置host,配置表位置:C:\Windows\System32\drivers\etc\hosts (若在该目录内改不了,复制到桌面修改完之后再复制回去),这样才能够通过hostname从本地访问到远程服务器的数据库。

这里写图片描述

14、解决hue数据库连接出错问题

这里写图片描述

查看cloudera-scm_server.log发现如下报错:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory

从别的机器中拷贝 libmysqlclient.so.18.1.0文件,放置以下目录并创建相关软链接

/usr/lib64/mysqllrwxrwxrwx  1 root root      20 222 15:09 libmysqlclient_r.so.18 -> libmysqlclient.so.18lrwxrwxrwx  1 root root      24 222 15:08 libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0lrwxrwxrwx  1 root root      24 222 15:07 libmysqlclient.so.18 -> libmysqlclient.so.18.1.0-rwxr-xr-x  1 root root 9579456 222 15:05 libmysqlclient.so.18.1.0

进入 /usr/lib64目录,创建软链接

ln -s /usr/lib64/mysql/libmysqlclient.so.18 libmysqlclient.so.18

再进行测试连接,成功~

15、审核更改,先使用默认

这里写图片描述

16、首次运行命令

该地方会运行前面你选择安装的服务,根据安装服务的多少,等待时间不同,耐心等待,全部运行完成后,再点击继续。
这里写图片描述

最后,安装配置运行全部搞定~~~

Flume、hive、hbase、hue等经常用到的大数据实现软件,都可以在CDH上进行安装,并且可统一在CDH上进行配置、参数调优等操作,极大的方便了大数据业务的开展。