热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CDH5.3.2安装详细文档以及相关问题处理

版本约定操作系统版本centos6.5,64位jdk1.6的版本也支持jdk1.7的版本python版本为2.6或者2.7集群版本cdh5.3.2clouderamanager5.3mysql5.0以上版本CM安装前说明防火墙关闭serviceiptablesstopchkconfigiptablesoff关闭SELINUXvietcselin

版本约定 操作系统版本centos6.5,64位 jdk1.6的版本也支持jdk1.7的版本 python版本为2.6或者2.7 集群版本cdh5.3.2 cloudera manager 5.3 mysql5.0以上版本 CM安装前说明 防火墙关闭 service iptables stop chkconfig iptables off 关闭SELINUX vi /etc/selin

版本约定

操作系统版本centos6.5,64位
jdk1.6的版本也支持jdk1.7的版本

python版本为2.6或者2.7

集群版本cdh5.3.2
cloudera manager 5.3

mysql5.0以上版本

CM安装前说明

  • 防火墙关闭

service iptables stop chkconfig iptables off

  • 关闭SELINUX

vi /etc/selinux/config设置SELINUX=disabled

  • 确认端口7180没有被占用

  • 在安装coudera manager 前先安装数据库mysql.并配置数据库的配置文件和创建相应的数据库。
  • 需要将mysql数据库默认存储引擎改为innodb.

CM安装方式

安装方式采用yum安装,由于内网机器无法访问外网,所以我们必须搭建一个本地的yum仓库,yum仓库机器10.100.3.17。

本地YUM仓库搭建

yum安装所需rpm安装包包括cloudera manager 5 相关安装包,下载地址:http://archive-primary.cloudera.com/cm5/redhat/6/x86_64/cm/5.3.2/RPMS/x86_64/ ,

CDH5.3.2相关安装包,下载地址:http://archive-primary.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.3.2/RPMS/x86_64/,http://archive-primary.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.3.2/RPMS/noarch/

上传相关安装包到10.100.3.17机器/var/ftp/pub/Packages目录下,然后执行createrepo命令:

createrepo -g /var/ftp/pub/repodata/repomd.xml /var/ftp/pub/

cdh集群机器配置本地yum源:

cd /etc/yum.repos.d/

rm -rf * #删除无用配置yum源文件

vi ftp-server.repo #加入ftp-server.repo文件加入如下配置:

[base]

name=ftp-server

baseurl=ftp://10.100.3.17/pub/

gpgcheck=0

Clouera Manager安装

cdh集群说明

cdh集群机器为3台,分别为10.100.3.95,10.100.3.96,10.100.3.97,10.100.3.98,10.100.3.99

将cloudera manager agent 分别部署在这五台机器上,

将cloudera manager server 和mysql部署在10.100.3.95上

安装jdk

首先检查集群机器是否安装过openJDK,如果有安装过,请卸载,执行命令 :

rpm -qa | grep jdk

rpm -e xxx #xxx为上一步输出的rpm包名

在所有机器上安装jdk,并配置JAVA_HOME,执行命令:

yum install jdk

vi /etc/profile #加入以下配置

export JAVA_HOME=/usr/java/jdk1.6.0.31

export PATH=$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH

#使配置生效

source /etc/profile

配置NTP服务

我们需要配置集群ntp时间同步,因为集群安装完毕后Cloudera Manager会对集群做时间同步检测,如果不同步会报警

Bad Health --Clock Offset

The host's NTP service did not respond to a request for the clock offset.

我们采用10.100.3.95作为master机器,所有机器都同步该机器上的时间,所有机器安装ntp服务

yum install ntp

配置95机器上NTP Server,修改/etc/ntpd.conf文件加入如下配置

restrict 0.0.0.0master 0.0.0.0nomodify nostrap #让所有网段都可以同步该机器的时间

server 127.127.1.0

fudge 127.127.1.0stratum 8

启动NTP服务

/etc/init.d/ntpd start

chkconfig ntpd on

其他机器同步该机器时间,并且也开启ntpd服务,如果其他机器不开启ntpd服务,Cloudera Manager同样会报警,因为Cloudera Manager 会使用ntpdc -c loopinfo 这个命令来判断集群的延迟时间。集群同步时间命令为:

ntpdate 10.100.3.95

#并在crontab中加入命令

crontab -e

*/15* * * * ntpdate 10.100.3.95

安装Mysql

Cloudera Manager通过数据库来管理服务信息和集群配置信息。可以使用内置的PostgreSQL或者外部数据库系统,目前支持Mysql,Oracle,以及外部PostgreSQL数据库。这里我们安装外部的Mysql数据库。

$ yum install mysql mysql-devel mysql-server

#安装mysql后启动;

$ service mysqld start

#配置mysql数据库,添加如下内容,添加以后。重启mysql数据库。如果没报错,则配置成功;

[mysqld]

transaction-isolation = READ-COMMITTED

# Disabling symbolic-links is recommended to prevent assorted security risks;

# to doso, uncomment thisline:

# symbolic-links = 0

key_buffer = 16M

key_buffer_size = 32M

max_allowed_packet = 32M

thread_stack = 256K

thread_cache_size = 64

query_cache_limit = 8M

query_cache_size = 64M

query_cache_type = 1

max_cOnnections= 550

#log_bin should be on a disk with enough free space. Replace '/var/lib/mysql/mysql_binary_log'with an appropriate path foryour system and chown the specified folder to the mysql user.

#log_bin=/var/lib/mysql/mysql_binary_log

#expire_logs_days = 10

#max_binlog_size = 100M

# For MySQL version 5.1.8or later. Comment out binlog_format forolder versions.

binlog_format = mixed

read_buffer_size = 2M

read_rnd_buffer_size = 16M

sort_buffer_size = 8M

join_buffer_size = 8M

# InnoDB settings

innodb_file_per_table = 1

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 64M

innodb_buffer_pool_size = 4G

innodb_thread_cOncurrency= 8

innodb_flush_method = O_DIRECT

innodb_log_file_size = 512M

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

移除这两个文件:/var/lib/mysql/ib_logfile0;/var/lib/mysql/ib_logfile1,重启mysql服务。

安装 MySQL JDBC Connector

驱动下载地址:http://dev.mysql.com/downloads/connector/j/5.1.html,把驱动包放在/usr/share/java目录下,如果目录/usr/share/java不存在,则创建它,并且将驱动包重新命名。

$ mkdir -p /usr/share/java/

$ cp mysql-connector-java-5.1.17.jar /usr/share/java/mysql-connector-java.jar

配置Mysql

设置root账号的密码:

$ sudo /usr/bin/mysql_secure_installation

[...]

Enter current password forroot (enter fornone):

OK, successfully used password, moving on...

[...]

Set root password? [Y/n] y

New password:

Re-enter newpassword:

Remove anonymous users? [Y/n] Y

[...]

Disallow root login remotely? [Y/n] N

[...]

Remove test database and access to it [Y/n] Y

[...]

Reload privilege tables now? [Y/n] Y

All done!

创建Mysql数据库

创建数据库用来保存Activity Monitor,Report Manager, Hive MetaStore Server, Sentry Server, Cloudera Navigator Audit Server, Cloudera Navigator Metadata Server服务相关配置信息。

使用root用户登陆Mysql数据库

$ mysql -u root -p

Enter password:

创建数据库

mysql> create database database DEFAULT CHARACTER SET utf8;

Query OK, 1row affected (0.00sec)

mysql> grant all on database.* TO 'user'@'%'IDENTIFIED BY 'password';

Query OK, 0rows affected (0.00sec)

其中database,user,password查看下表

Activity Monitor amon amon amon_password
Reports Manager rman rman rman_password
Hive Metastore Server metastore hive hive_password
Sentry Server sentry sentry sentry_password
Cloudera Navigator Audit Server nav nav nav_password
Cloudera Navigator Metadata Server navms navms navms_password

Role

Database

User

Password

安装Cloudera Manager Server

$ yum install cloudera-manager-daemons

$ yum install cloudera-manager-server

配置Cloudera Manager Server数据库

这里Cloudera Manager Server和Mysql安装在同一台机器,执行命令

/usr/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p --scm-host localhost scm scm scm

出现Successful 表示执行成功。

启动Cloudera Manager Server服务

service cloudera-scm-server start

Cloudera Manager agent 不需要手动安装直接进入CM得web界面自动安装配置即可。

web登录

url 格式:http://:

打开浏览器,输入url ,http://10.100.3.95:7180

默认用户名:admin 密码:admin

安装Cloudera Manager Agent,以及CDH相关组件

1.根据CM引导界面,选择Cloudera Express 免费版。点击下一步到为CDH集群安装指定主机。

2.输入需要安装集群的机器IP地址,包括Cloudera Manager Server 机器。

3.选择集群的安装方式,选择使用数据包,CDH版本选择自定义,并输入yum源地址ftp://10.100.3.17/pub/, Cloudera Manager Agent选择自定义,输入yum源地址ftp://10.100.3.17/pub/。点击继续

4.集群安装状态,可以看到每台集群的安装状态,如果正常则进入下一步。

5.选择要安装的CDH组件,我们选择自定义,安装HBase、HDFS、Hive、Hue、Key-Value Store Indexer、Oozie、Solr、Spark、Sqoop 2、YARN、Zookeeper服务。点击继续

6.CM会检测安装环境,会提示一处安装警告: cloudera 建议将/proc/sys/vm/swappiness设置为0,当前设置为60, 我们需要在集群每台机器上执行命令:

echo 0> /proc/sys/vm/swappiness

7.选择集群机器的角色分配,对于默认的选择都可以选择在Master(10.100.3.95)机器上,当然像Second NameNode可以选择在非NameNode机器上。注意Cloudera Management Service都选Master(10.100.3.95),也就是安装mysql的主机。因为其他主机没有安装mysql.点击继续

8.数据库配置。根据创建数据表选择所对应的服务即可。

9.集群设置。选择默认,集群开始安装。

oozie配置

oozie安装完毕之后还需要做以下配置才能使用:

1.安装Oozie共享库,操作如下:

  • 选择oozie服务
  • 点击操作->停止
  • 点击安装Oozie共享库
  • 点击启动

2.配置Ext JS库,操作如下:

  • 下载ext-2.2.zip文件,下载地址http://dev.sencha.com/deploy/ext-2.2.zip
  • 把该文件放入运行Oozie Server的主机/var/lib/oozie/目录下
  • 解压该文件
  • 重启oozie服务

3.配置外部数据库这里配置mysql,操作如下:

  • 选择oozie服务,点击配置面板
  • 选择Oozie Server Default Group->数据库
  • 配置Oozie服务器数据库类型选择mysql,选择Oozie服务器数据库名称,默认为oozie,选择Oozie服务器数据库主机地址,选择Oozie服务器数据库用户,选择Oozie服务器数据密码。并保存配置
  • 选择操作->停止
  • 选择操作->创建数据库
  • 选择操作->启动
HUE配置

配置流程见:Cloudera Manager 安装文档#添加hue服务.不同之处在于要启动HUE服务,HUE依赖其它服务配置,需要修改如下配置:

  • 进入CM主机面板
  • 选择配置->资源管理,修改启用基于Cgroup的资源管理属性,设置为true,默认为false;
  • 进入YARN服务面板
  • 选择配置->服务范围,修改将CGroups用于资源管理属性,设置为true,默认为false。修改始终使用Linux Container Executor,设置为true,默认为false;
  • 进入Impala服务面板
  • 选择配置->服务范围->Admission Control,修改Enable Dynamic Resource Pools属性,设置为true,默认为false。

遇到的问题

1.第一次安装时,由于98,99机器内存问题异常关机,导致安装一半中止,以及自己的错误操作导致又回到了安装的第一步,但是选择输入安装的机器集群时,引导界面里面多了3个已经加入到集群的机器,导致这3台机器无法选择。解决办法:这3台机器卸载重装。步骤如下:

service cloudera-scm-agent stop

service cloudera-scm-agnet hard_stop_confirmed

yum remove 'cloudera-manager-*'avro-tools crunch flume-ng hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hbase-solr hive-hbase hive-webhcat hue-beeswax hue-hbase hue-impala hue-pig hue-plugins hue-rdbms hue-search hue-spark hue-sqoop hue-zookeeper impala impala-shell kite llama mahout oozie pig pig-udf-datafu search sentry solr-mapreduce spark-python sqoop sqoop2 whirr

yum clean all

rm -rf /tmp/.scm_prepare_node.lock

rm -rf /var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/solr* /var/lib/zookeeper* /var/lib/spark/

然后重新从安装Cloudera Manager Server步骤开始即可。

2.10.100.3.98,10.100.3.99机器下载安装CDH相关组件不成功,提示:network_interfaces INFO NIC iface eth0 doesn't support ETHTOLL (95),并且在98,99机器上运行service network restart 则IP会自动丢失,原因是安装机器的时候采用的动态IP导致,修改为静态IP。

3.10.100.3.98,10.100.3.99机器在下载CDH包时一直卡在’正在获取安装锁‘,点击详细信息提示:Begin Flock 4 Cloudera。产生的原因是多次安装Cloudera-manager-agent服务,并且启动过Clouder-scm-agent服务导致产生了锁文件。删除掉该文件即可。执行命令:

rm -rf /tmp/.scm_prepare_node.lock

4.10.100.3.98,10.100.3.99机器下载安装CDH相关组件不成功,点击详细信息提示:

MainThread agent ERROR HEARbeating to 10.100.3.95:7182 failed

...

...

AttributeError: ‘NoneType’ object has no attribute ‘Type’

解决办法:进入相关机器,重启cloudera-scm-agent服务,执行命令

service clouder-scm-agent restart

5.安装完毕后集群HDFS报警,提示 ’集群中有293个副本不足的块。集群众共有296个块。百分比副本不足的块:98.99%。临界阈值:40% Under-Replicated Blocks‘,产生的原因是因为一开始98,99机器故障,只安装了3台机器,DataNode节点只有2个,而安装过程中采用的都是默认配置,dfs.replication 设置的为3,所以导致次报警。通过使用hadoop fsck /命令检查hdfs块信息会提示安装hbase的时候写入的数据块 Target replica is 3 but found 2 replica(s)。解决办法:配置dfs.replication值为2并执行以下命令:

su hdfs

hadoop fs -setrep 2/

6.安装HUE之后HUE WEB UI启动不起来,首页报错:

Traceback (most recent call last):

...

...

ImportError: No module named useradmin

查看/usr/lib/hue/目录可以看到app.reg文件的软连接文件失效,并没有创建此文件,解决办法是:在/usr/lib/hue/tools/app_reg/目录下有一个app_reg.py的文件 是用来产生该注册文件的,查看它的语法,使用命令tools/app_reg/app_reg.py --install apps/xxx/ ,其中xxx为apps目录下的所有文件加名称。执行完之后问题解决。

此次是安装过程中遇到的所有问题,之后会把原有集群从CDH3U5升级到CDH5.3.2,期间遇到的问题后续整理。
推荐阅读
author-avatar
素材火2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有