分类: 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 节点安装daemons、server、agent(先装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-1、slave-2节点安装daemons、agent(先装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安装需要联网)
六、在master、slave-1、slave-2 节点安装JDK、oraclejdk
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 数据库并启动cm的server及agent程序
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
十一、测试agent和server是否通信成功
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
更新cloudera manager server
使用packages方式更新。
停止cloudera manager server, database, agent
1 |
$ sudo service cloudera-scm-server stop |
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 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源。
使用vsftp作为ftp服务器,配置文件在/etc/vsftpd/下,ftp路径在/var/ftp/下。
1 2 |
$ yum install vsftpd $ service vsftpd start |
新建目录/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 2 3 4 |
[cloudera-manager] name = Cloudera Manager, Version 5.7.0 baseurl = ftp://${local-repo-ip}/pub/cloudera-repo gpgcheck = 0 |
进行升级
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时,有两种选择
这两种方式都会在每台机器/etc/yum.repos.d/目录下生成cloudera-manager.repo,不过其中的baseurl参数不同。
手动进行更新
验证CDH升级是否成功
在页面上hosts页面,点击Inspect All Hosts,检测完成后可以查看结果,能够比较详细的查看各机器情况。
服务升级
CDH升级后,更要重的是对CDH管理的服务进行升级,这里使用parcels进行升级。
创建临时远程仓库
1 2 |
$ wget $ wget |
1 2 |
$ wget $ wget |
1 2 |
$ wget $ wget |
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 |
$ python -m SimpleHTTPServer 8080 |
在浏览器中打开链接查看是否启动成功,http://{http-server-ip}:8080,成功后可以在parcels的配置Remote Parcel Repository URLs中添加相关的parcel地址:
CDH Parcel(服务)升级
参考Upgrading to CDH 5.7 Using Parcels
另外的途径可以在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
CDH Client(Gateway)升级
在升级后,发现各Client中的命令引用没有更新,需要手动将/etc/alternatives/目录下CDH相关更新为最新。
以spark-shell为例。
可以使用shell脚本批量将/etc/alternatives下CDH相关软链接指向最新的版本。
参考