Chinaunix首页 | 论坛 | 博客
  • 博客访问: 609540
  • 博文数量: 74
  • 博客积分: 1845
  • 博客等级: 上尉
  • 技术积分: 731
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-14 20:49
文章分类

全部博文(74)

文章存档

2017年(3)

2016年(7)

2015年(4)

2014年(6)

2013年(7)

2012年(10)

2011年(10)

2010年(4)

2009年(5)

2008年(4)

2007年(7)

2006年(6)

2005年(1)

分类: HADOOP

2017-04-05 11:45:23

把需要注意的事项写前面吧,后面碰到坑可以翻到前面看看。

安装CDH的时候这个提示    Requires libpython2.4.so.1.0()(64bit)
系统缺包,yum 装不上,yum安装了python-devel 也不行,系统是2.6.6的,后来网上下了个 rpm的,装的时候加上 --nodeps 强制安装。
下载地址:

服务安装顺序  zookeeper-hdfs-yarn-hbase
注意:ulimit 改成65535  jdk误报可以不管。 如果是centos6.5以下的系统,启动项加

echo 0 >  /proc/sys/vm/swappiness  (不使用交换分区swap 系统默认是60)

echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag


 

集群节点数量3

192.168.1.170 cdh-master

192.168.1.171 cdh-slave-1

192.168.1.172 cdh-slave-2

一、安装CentOS6.5 64位)并搭建基本环境,包括:

(1)添加sudo 权限

(2)修改主机名、网关、静态IP地址、DNS

(3)关闭SELINUX、防火墙

(4)修改系统时区、配置ntp服务 
 基本的东西不写了。

二、克隆为三台机器,分别修改静态IP 地址、MAC、主机名、hosts文件:

主机名、网关修改 /etc/sysconfig/network文件

MAC 修改 /etc/udev/rules.d/70-persistent-net.rules

IP地址是修改 /etc/sysconfig/network-scripts/ifcfg-eth0

host 文件修改 /etc/hosts 需要添加集群内所有的主机名和ip的对应关系,而且主机名的名称要和真实的主机名(/etc/sysconfig/network)完全一致

三、下载clouder-manger的安装包及parcel文件:

cm 文件

cloudera-manager-daemons-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

cloudera-manager-server-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

cloudera-manager-agent-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

jdk-6u31-linux-amd64.rpm

oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

parcel 

CDH-5.2.1-1.cdh5.2.1.p0.12-el6.parcel

四、在master 节点安装daemonsserveragent(先装daemons

yum --nogpgcheck localinstall cloudera-manager-daemons-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

yum --nogpgcheck localinstall cloudera-manager-server-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

yum --nogpgcheck localinstall cloudera-manager-agent-5.2.1-1.cm521.p0.109.el6.x86_64.rpm(注:agent安装需要联网)

五、在slave-1slave-2节点安装daemonsagent(先装daemons

yum --nogpgcheck localinstall cloudera-manager-daemons-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

yum --nogpgcheck localinstall cloudera-manager-agent-5.2.1-1.cm521.p0.109.el6.x86_64.rpm(注:agent安装需要联网)

六、在masterslave-1slave-2 节点安装JDKoraclejdk

rpm -ivh jdk-6u31-linux-amd64.rpm

七、在master节点安装mysql 数据库,并配置cdh需要的数据库选项

yum install mysql-server mysql mysql-deve (注:需要联网)

chkconfig mysqld on

service mysqld start

mysql –u root

use mysql

update user set password=password('1234') where user='root';

update user set password=password('1234') where host='localhost';

update user set password=password('1234') where host='cdh-mater';

service mysqld restart

mysql -u root -p1234

create database cloudera

八、在master节点配置cloudera manager 数据库并启动cmserveragent程序

1.拷贝mysql-connector-java-5.1.7-bin.jar 到 /usr/share/java 下并重命名mysql-connector-java.jar

2.运行 /usr/share/cmf/schema/scm_prepare_database.sh -h 主机名 mysql cloudera root 1234

3.启动cm server :service cloudera-scm-server start

4.添加cm server服务 :chkconfig cloudera-scm-server on

5.启动cm agent :chkconfig cloudera-scm-agent on

6.添加cm agent服务 :service cloudera-scm-agent start

九、修改所有节点的agent 配置文件

/etc/cloudera-scm-agent/config.ini 将配置文件中的host 改成 主机名

十、在slave节点配置cloudera manager  agent程序

1.启动cm agent :chkconfig cloudera-scm-agent on

2.添加cm agent服务 :service cloudera-scm-agent start

十一、测试agentserver是否通信成功

   service cloudera-scm-server status

   service cloudera-scm-agent status

   netstat –anp | grep 7182

  # server 端开启的是7182端口,用于和agent进行通讯

   启动失败时可以查看日志

   server 日志 /var/log/cloudera-scm-server

   agent 日志 /var/log/cloudera-scm-agent

十二、将下载的parcel文件及官方网站上获取对应版本的 sha 文件和 manifest.json文件上传至/opt/cloudera/parcel-repo目录下。

十三、启动浏览器,开始集群web安装配置

##########################################################################################################################################################



升级到5.10.

数据库备份

cloudera manager数据备份

cloudera manager使用postgres来存储,信息可以在/etc/cloudera-scm-server/db.properties中找到。

备份命令:

1

pg_dump -p 7432 -U scm > /data/backup/scm_server_db_backup.$(date +%Y%m%d)

服务数据备份

使用的是,涉及的库有, hue, sentry, oozie, sqoop

  • mysqldump -h vlnx107010 -uroot -p hive > /data/backup/hive-backup.$(date +%Y%m%d).sql
  • mysqldump -h vlnx107010 -uroot -p hue > /data/backup/hue-backup.$(date +%Y%m%d).sql
  • mysqldump -h vlnx107010 -uroot -p sentry > /data/backup/sentry-backup.$(date +%Y%m%d).sql
  • mysqldump -h vlnx107010 -uroot -p oozie_oozie_server > /data/backup/oozie-backup.$(date +%Y%m%d).sql
  • mysqldump -h vlnx107010 -uroot -p sqoop > /data/backup/sqoop-backup.$(date +%Y%m%d).sql

更新cloudera manager server

使用packages方式更新。

停止cloudera manager server, database, agent

  1. 停止正在运行的命令
  2. 停止cloudera-manager服务

1

$ sudo service cloudera-scm-server stop

  1. 使用内嵌的PostgreSQL数据库的话,停止此服务

1

$ sudo service cloudera-scm-server-db stop

2.  ==Important:== If you are not running the embedded database service and you attempt to stop it, you receive a message indicating that the service cannot be found. If instead you get a message that the shutdown failed, the embedded database is still running, probably because services are connected to the Hive metastore. If the database shutdown fails due to connected services, issue the following command:
RHEL-compatible 7 and higher:

1

2

3

4

5

$ sudo service cloudera-scm-server-db next_stop_fast

$ sudo service cloudera-scm-server-db stop

```

All other Linux distributions:

>

  1. sudo service cloudera-scm-server-db fast_stop

1

2

3

4

5

4. 停止cloudera-agent服务

``` bash

$ sudo service cloudera-scm-agent stop

设置repo

在线升级,使用cloudera

如果网络速度比较快,可以直接新建cloudera-manager.repo:

1

2

3

4

5

6

[cloudera-manager]

# Packages for Cloudera Manager, Version 5, on RHEL or CentOS 6 x86_64

name = Cloudera Manager

baseurl =

gpgkey =

gpgcheck = 1

搭建本地源

如果访问cloudera源不太稳定,可以搭建本地的repo源。

  1. 安装vsftp

使用vsftp作为ftp服务器,配置文件在/etc/vsftpd/下,ftp路径在/var/ftp/下。

1

2

$ yum install vsftpd

$ service vsftpd start

  1. 下载rpm包和repodata

新建目录/var/ftp/pub/cloudera-repo作为repo源目录,从按下载所需的rpm包和repodata目录,完成后目录结构如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

$ tree /var/ftp/pub/cloudera-repo/

/var/ftp/pub/cloudera-repo/

├── repodata

│   ├── filelists.xml.gz

│   ├── filelists.xml.gz.asc

│   ├── other.xml.gz

│   ├── other.xml.gz.asc

│   ├── primary.xml.gz

│   ├── primary.xml.gz.asc

│   ├── repomd.xml

│   └── repomd.xml.asc

└── RPMS

└── x86_64

├── cloudera-manager-agent-5.7.0-1.cm570.p0.76.el6.x86_64.rpm

├── cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm

├── cloudera-manager-server-5.7.0-1.cm570.p0.76.el6.x86_64.rpm

└── cloudera-manager-server-db-2-5.7.0-1.cm570.p0.76.el6.x86_64.rpm

  1. 新建本地repocloudera-manager.repo如下:

1

2

3

4

[cloudera-manager]

name = Cloudera Manager, Version 5.7.0

baseurl = ftp://${local-repo-ip}/pub/cloudera-repo

gpgcheck = 0

    • 如果手动升级各机器的cloudera-manager-agent,需要将cloudera-manager.repo更新到所有节点上
    • 如果使用cloudera升级各机器的cloudera-manager-agent,在升级时注意选择Custom Repository,填写repository地址为ftp://${local-repo-ip}/pub/cloudera-repo。

进行升级

1

2

$ sudo yum clean all

$ sudo yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-server-db-2 cloudera-manager-agent

重启cloudera manager服务

1

2

$ sudo service cloudera-scm-server-db start

$ sudo service cloudera-scm-server start

更新cloudera manager agent

==Important:== All hosts in the cluster must have access to the Internet if you plan to use archive.cloudera.com as the source for installation files. If you do not have Internet access, create a custom repository.

以下两种升级任选一种。

使用cloudera进行升级

进入cloudera manager后,会自动弹出升级页面,选择Yes, I would like to upgrade the Cloudera Manager Agent packages now,然后一步步进行。

在选择Cloudera Manager Agent Release时,有两种选择

  1. 如果进行在线升级,选择Matched Release for this Cloudera Manager Server,这样会直接从进行更新。
  2. 如果自己下载了rpm包,并建立了本地repo源,选择Custom Repository,然后填写本地repo源地址。

这两种方式都会在每台机器/etc/yum.repos.d/目录下生成cloudera-manager.repo,不过其中的baseurl参数不同。

手动进行更新

  1. 在每台机器上添加cloudera-manager.repo并清理yum cache,yum clean all。
  2. 停止cloudera-scm-agent服务: service cloudera-scm-agent stop。
  3. 更新cloudera-manager-agent: yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-server-db-2 cloudera-manager-agent。
  4. 启动cloudera-scm-agent服务: service cloudera-scm-agent start。

验证CDH升级是否成功

在页面上hosts页面,点击Inspect All Hosts,检测完成后可以查看结果,能够比较详细的查看各机器情况。

服务升级

CDH升级后,更要重的是对CDH管理的服务进行升级,这里使用parcels进行升级。

创建临时远程仓库

  1. 新建目录/data/cloudera-parcel-server
  2. 下载CDH parcelmanifest.json

1

2

$ wget

$ wget

  1. 下载kafka parcelmanifest.json

1

2

$ wget

$ wget

  1. 下载gplextras5manifest.json

1

2

$ wget

$ wget

  1. 整体目录结构如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

$ tree /data/cloudera-parcel-server/

/data/cloudera-parcel-server/

├── cdh

│   ├── CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel

│   └── manifest.json

├── gplextras

│   ├── GPLEXTRAS-5.6.1-1.cdh5.6.1.p0.5-el6.parcel

│   └── manifest.json

└── kafka

├── KAFKA-2.0.1-1.2.0.1.p0.5-el6.parcel

└── manifest.json

3 directories, 6 files

  1. 启动一个server

1

$ python -m SimpleHTTPServer 8080

在浏览器中打开链接查看是否启动成功,http://{http-server-ip}:8080,成功后可以在parcels的配置Remote Parcel Repository URLs中添加相关的parcel地址:

  • http://{http-server-ip}:8080/cdh/
  • http://{http-server-ip}:8080/kafka/
  • http://{http-server-ip}:8080/gplextras/

CDH Parcel(服务)升级

参考Upgrading to CDH 5.7 Using Parcels

  1. 在Hosts -> Parcels处设置上一个步骤中的parcel临时远程仓库
  2. 在首页cluster名右侧小三角处点击『Upgrade Cluster』,仔细阅读升级前的准备,并提前准备好
  3. 在节点检测完后,选择Let me upgrade the cluster,手动进行重启服务以避免服务不可用。
  4. 升级Oozie ShareLib,在Oozie服务页面,点击Actions > Install Oozie ShareLib。
  5. 升级Sqoop2,在Sqoop2页面,点击Actions > Upgrade Sqoop。
  6. 升级Spark,在spark页面,点击Actions > Install Spark JAR和Actions > Create Spark History Log Dir。
  7. 手动将服务一个个重启,可以在每个服务的InstancesTab页,一个实例一个实例的重启,这样可以避免服务不可用。
  8. 重启完后,运行Deploy Client Configuration。
  9. parcels页面可以删除之前的parcel

另外的途径可以在Hosts > parcels页面手动进行Distribute和Active,然后进行上面的步骤4–步骤9

KAFKA Parcel升级

在Hosts > parcels页面手动对Kafka Parcel进行Distribute和Active,然后对Kafka Broker一台台进行重启,确定没问题后可以删除旧的parcel

GPLEXTRAS Parcel升级(添加对lzo的支持)

参考Configuring Services to Use the GPL Extras Parcel

  1. 在Hosts > parcels页面手动对gplextras parcel进行Distribute和Active
  2. HDFS服务中修改配置Compression Codecs,添加com.hadoop.compression.lzo.LzoCodec和com.hadoop.compression.lzo.LzopCodec,重启HDFS
  3. 在每台Oozie Server上建立hadoop-lzo.jar的软链接,ln -sf /opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/hadoop-lzo.jar /var/lib/ooziehadoop-lzo.jar,重启Oozie
  4. Sqoop2服务中修改配置Sqoop Service Environment Advanced Configuration Snippet,添加HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/*和JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH:/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/native,重启Sqoop2
  5. 重启其他需要重启的服务。
  6. 运行Deploy Client Configuration。

CDH Client(Gateway)升级

在升级后,发现各Client中的命令引用没有更新,需要手动将/etc/alternatives/目录下CDH相关更新为最新。
以spark-shell为例。

  1. 执行which spark-shell,发现指向/usr/bin/spark-shell
  2. 执行ls -l /usr/bin/spark-shell,发现是个软链接并指向了/etc/alternatives/spark-shell
  3. 执行ls -l /etc/alternatives/spark-shell,发现是个软链接并指向了/opt/cloudera/parcels/CDH-5.4.8-1.cdh5.4.8.p0.4/bin/spark-shell,明显还指向升级前的版本。
  4. 执行ln -sf /opt/cloudera/parcels/CDH/bin/spark-shell /etc/alternatives/spark-shell将其指向最新的版本。

可以使用shell脚本批量将/etc/alternatives下CDH相关软链接指向最新的版本。

参考

  1. Upgrading Cloudera Manager 5 to the Latest Cloudera Manager: http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ag_upgrade_cm5.html
  2. Upgrading CDH and Managed Services Using Cloudera Manager: http://www.cloudera.com/documentation/enterprise/latest/topics/cm_mc_upgrading_cdh.html
  3. Upgrading to CDH 5.7 Using Parcels: http://www.cloudera.com/documentation/enterprise/latest/topics/install_upgrade_to_cdh57_parcels.html
  4. Creating a Temporary Remote Repository: http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_create_local_parcel_repo.html
  5. postgresql常用命令: http://blog.chinaunix.net/uid-26642180-id-3485465.html
  6. Running Hive on Spark: http://www.cloudera.com/documentation/enterprise/latest/topics/admin_hos_oview.html
  7. Configuring Services to Use the GPL Extras Parcel: http://www.cloudera.com/documentation/enterprise/latest/topics/cm_mc_gpl_extras.html
  8. CDH 5.7.0 Properties: http://www.cloudera.com/documentation/enterprise/latest/topics/cm_props_cdh570.html
 升级转自: http://blog.csdn.net/bdchome/article/details/52438138


阅读(1831) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~