CDH5 部署步驟

目錄
1規劃服務器 2
2安裝和配置Mysql數據庫 4
3離線安裝Cloudera Manager5和CDH5 7
3.1創建本地yum軟件源 7
3.2使用本地類庫安裝CM 11
3.3設置cloudera manager使用的mysql數據庫 11
3.4 使用本地類庫安裝CDH5 13
4HDFS啓用HA高可用性(基於Quorum-based Storage) 17
5.安裝使用GPL Extras 23
5.1 GPL Extras安裝 23
5.2 配置MapReduce(如果部署了) 24
5.3 配置HDFS 25
5.4 配置Yarn 26
5.3部署配置和重啓服務 26
6.安裝Storm 27
6.1安裝依賴 27
6.2安裝資源準備 27
6.3 安裝 28
6.4 配置 30
6.5 運行 30
7.附錄. 31
7.1CDH安裝部署問題記錄 32

1規劃服務器
1.1系統版本
Red Hat Enterprise Linux 6.2 and 6.4, and CentOS 6.2 and 6.4, 64-bit
內存64GB以上

1.2本地瀏覽器
在Cloudera Manager Admin 控制檯,你能配置、管理、監控CDH,目前支持的瀏覽器爲:
Firefox 11 or later
Google Chrome
Internet Explorer 9
Safari 5 or later

1.3硬盤要求
/var 最低20GB(40G)
/usr 最低15G
/opt 最低15G(20G)

1.4需要配置/etc/hosts
1、請根據實際需求爲每一臺主機配置hosts文件,例如:
127.0.0.1 localhost.localdomain localhost
192.168.1.1host-01.domain host-01
192.168.1.2 host-02.domain host-02
192.168.1.3 host-03.domain host-03
//Chenzr
192.168.248.128 centos-1
192.168.248.129 centos-2
192.168.248.130 centos-3
192.168.248.128 centos01.domain centos-1
192.168.248.129 centos02.domain centos-2
192.168.248.130 centos03.domain centos-3
2、爲每一臺主機修改主機名,例如將主機名修改爲host-01.domain可執行如下命令:
hostname host-01.domain
echo ‘NETWORKING=yes’ >/etc/sysconfig/network
echo ‘HOSTNAME=host-01.domain’>>/etc/sysconfig/network

1.5需要將規劃cluster中所有服務器的密碼統一

1.6 CentOS release 6.3系統需要配置(禁用透明大頁面):
執行命令:
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

執行以下命令,將命令加入:/etc/rc.local
echo ‘echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag’ >>/etc/rc.local
echo ‘service ip6tables stop’ >> /etc/rc.local

1.7關閉selinux服務:
關閉selinux:setenforce 0
修改/etc/selinux/config:SELINUX=disabled;

執行命令:
setenforce 0
sed -i ‘s/(SELINUX=)enforcing/\1disabled/g’ /etc/selinux/config

1.8需要同步各服務器時鐘
配置crontab 同步時鐘:0 3 * * * /usr/sbin/ntpdate 202.141.176.110;/sbin/hwclock –w

執行命令:
echo “0 3 * * * /usr/sbin/ntpdate 202.141.176.110;/sbin/hwclock –w”>>/var/spool/cron/root
service crond restart

即時時間同步命令(先關閉ntpd):ntpdate 202.141.176.110
其中202.141.176.110爲中科大時間服務器,也可採用其他授時服務器,請確保該服務器可達。

1.9啓用ntp服務(cloudera manager 5.0及以上)
service ntpd start
2.0禁用虛擬內存頁交換
echo 0 > /proc/sys/vm/swappiness
2.1 調整文件描述符
vi /etc/security/limits.conf 添加一行: * - nofile 65535
2.2設置防火牆
配置防火牆規則,使集羣內所有網段都能夠互通

systemctl stop firewalld.service
systemctl disable firewalld.service
2.3 修改tcp_keepalive默認值

vi /etc/sysctl.conf
添加net.ipv4.tcp_keepalive_time = 180
sysctl -p


2安裝和配置Mysql數據庫
2.1官方安裝文檔
安裝和配置Mysql數據庫的步驟來自於cloudera的官方文檔,鏈接如下:
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CM4Ent/latest/Cloudera-Manager-Installation-Guide/cmig_install_mysql.html
下載官方Yum源:http://dev.mysql.com/downloads/repo/
安裝官方Yum源:sudoyum localinstall mysql-community-release-el6-*.noarch.rpm
安裝mysql:sudo yum install mysql-server

2.2更新/etc/my.cnf或/etc/mysql/my.cnf
因爲更新配置文件可能會依照特定需求修改mysql數據文件及日誌文件等存儲目錄,爲確保mysql用戶對新目錄擁有相應的權限,可在更新配置文件前將原mysql擁有目錄複製至新目錄:
[mysqld]
datadir=/home/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
skip-name-resolve
skip-grant-tables
*# Disabling symbolic-links is recommended to prevent assorted security risks
*#symbolic-links=0

transaction-isolation=READ-COMMITTED
*# Disabling symbolic-links is recommended to prevent assorted security risks;
*# to do so, uncomment this line:
*# symbolic-links=0
(*記得去掉)
key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 16M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
*# Important: see Configuring the Databases and Setting max_connections
max_connections = 750

*# log-bin should be on a disk with enough free space
*#log-bin=/x/home/mysql/logs/binary/mysql_binary_log

*# For MySQL version 5.1.8 or later. Comment out binlog_format for older 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

2.3安裝MySQL JDBC Connector
sudo yum install mysql-connector-java
2.4啓動Mysql
sudo service mysqld start

2.5設置Mysql的root密碼,初始密碼爲空(非必須)rootcentos
$ sudo /usr/bin/mysql_secure_installation
[…]
Enter current password for root (enter for none):
OK, successfully used password, moving on…
[…]
Set root password? [Y/n] y
New password:
Re-enter new password:
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!

2.6設置Mysql爲開機自動啓動
sudo/sbin/chkconfigmysqldon sudo /sbin/chkconfig –list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2.7爲Cloudera Manager創建MySQL Databases
(1)用root登陸Mysql:$ mysql -u root –p
(2)腳本
create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO ‘amon’@’%’ IDENTIFIED BY ‘amon_password’;
create database smon DEFAULT CHARACTER SET utf8;
grant all on smon.* TO ‘smon’@’%’ IDENTIFIED BY ‘smon_password’;
create database rman DEFAULT CHARACTER SET utf8;
grant all on rman.* TO ‘rman ‘@’%’ IDENTIFIED BY ‘rman_password’;
create database hmon DEFAULT CHARACTER SET utf8;
grant all on hmon.* TO ‘hmon’@’%’ IDENTIFIED BY ‘hmon_password’;
create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO ‘hive’@’%’ IDENTIFIED BY ‘hive_password’;
create database nav DEFAULT CHARACTER SET utf8;
grant all on nav.* TO ‘nav’@’%’ IDENTIFIED BY ‘nav_password’;
(3)執行實例
Create a database for the Activity Monitor. The database name, user name, and password can be anything you want. For example:
mysql> create database amon DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql>grant all on amon.* TO ‘amon’@’%’ IDENTIFIED BY ‘amon_password’;
Query OK, 0 rows affected (0.00 sec)
(3)Create a database for the Service Monitor. The database name, user name, and password can be anything you want. For example:
mysql> create database smon DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on smon.* TO ‘smon’@’%’ IDENTIFIED BY ‘smon_password’;
Query OK, 0 rows affected (0.00 sec)
(4)Create a database for the Report Manager. The database name, user name, and password can be anything you want. For example:
mysql> create database rman DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on rman.* TO ‘rman ‘@’%’ IDENTIFIED BY ‘rman_password’;
Query OK, 0 rows affected (0.00 sec)
(5)Create a database for the Host Monitor. The database name, user name, and password can be anything you want. For example:
mysql> create database hmon DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on hmon.* TO ‘hmon’@’%’ IDENTIFIED BY ‘hmon_password’;
Query OK, 0 rows affected (0.00 sec)
(6)Create a database for the Hive metastore. The database name, user name, and password can be anything you want. For example:
mysql> create database hive DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on hive.* TO ‘hive’@’%’ IDENTIFIED BY ‘hive_password’;
Query OK, 0 rows affected (0.00 sec)
(7)Create a database for Cloudera Navigator. The database name, user name, and password can be anything you want. For example:
mysql> create database nav DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql>grant all on nav.* TO ‘nav’@’%’ IDENTIFIED BY ‘nav_password’;
Query OK, 0 rows affected (0.00 sec)

2.8爲Mysql設置備份
使用mysqldump,命令格式如下:
mysqldump-h-u-p>/tmp/.sql
For example, to back up database scm_database on the local host as the root user, with the password mypasswd:
mysqldumppmypasswdscmdatabase>/tmp/scmdatabasebackup.sqlTobackupdatabasescmdatabaseonremotehostmyhost.example.comastherootuser,withthepasswordmypasswd: mysqldump -hmyhost.example.com -uroot -pcloudera scm_database > /tmp/scm_database-backup.sql

3離線安裝Cloudera Manager5和CDH5
3.1創建本地yum軟件源
3.1.1下載Cloudera Manager安裝文件
Cloudera Manager的可以從如下網址獲得:http://archive.cloudera.com/cm5/installer/
這裏選擇Cloudera Manager 最新版5.0.1.13,可用如下命令下載:
*#wget http://archive.cloudera.com/cm5/installer/5.0.1.13/cloudera-manager-installer.bin
http://archive.cloudera.com/cm5/installer/5.11.1/cloudera-manager-installer.bin
3.1.2 下載相關的CM安裝所需要的RPM包
下載網址爲:http://archive-primary.cloudera.com/cm5/redhat/6/x86_64/cm/5.0.1/RPMS/
下載全部rpm包:
*# wget -c -r -nd -np -L -A rpmhttp://archive-primary.cloudera.com/cm5/redhat/6/x86_64/cm/5.0.1/RPMS/x86_64/
http://archive-primary.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/
注:由於CM當前的noarch/下沒有包,故只下載目錄x86_64/下的所有rpm包。
3.1.3創建和配置CM軟件源
將下載好的rpm文件拷貝到制定目錄,如:/home/cloudera/cm/中
[root@lemon cm]# ls
cloudera-manager-agent-5.0.1-1.cm501.p0.257.el6.x86_64.rpm
cloudera-manager-daemons-5.0.1-1.cm501.p0.257.el6.x86_64.rpm
cloudera-manager-installer.bin
cloudera-manager-server-5.0.1-1.cm501.p0.257.el6.x86_64.rpm
cloudera-manager-server-db-2-5.0.1-1.cm501.p0.257.el6.x86_64.rpm
enterprise-debuginfo-5.0.1-1.cm501.p0.257.el6.x86_64.rpm
jdk-6u31-linux-amd64.rpm
oracle-j2sdk1.7-1.7.0+update45-1.x86_64.rpm
如果創建軟件源的主機沒有安裝createrepo,可以通過shell命令yum install createrepo安裝。
當在包含文件的目錄下運行如下創建命令:
[root@lemon cm]# createrepo .
程序會在當前目錄下創建一個repodata目錄,該目錄包含一些描述軟件源的xml文件。
[root@lemon cm]# createrepo .
Spawning worker 0 with 7 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

[root@lemon cm]# cd repodata/
[root@lemon repodata]# ls
other.xml.gz
other.sqlite.bz2
filelists.sqlite.bz2
primary.xml.gz
filelists.xml.gz
primary.sqlite.bz2
repomd.xml
此命令之後,RPM包就會加入到本地的軟件源中。
在客戶端要配置好reppo文件,命名爲cloudera-manager.repo
Repo 配置如下:
[root@host-127 yum.repos.d]# cat cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, Version 5.0.1
baseurl = http://192.168.5.81/cm/
gpgkey = http://192.168.5.81/cm/RPM-GPG-KEY-cloudera
gpgcheck = 1

注意:name不能出現中文字符
3.1.4下載相關的CDH安裝所需要的Parcel包
新建parcel源目錄
*#mkdir -p /home/cloudera/parcel-repo
進入parcel源目錄並下載CentOS6對應的parcel
*#cd /home/cloudera/parcel-repo
*#wget http://archive.cloudera.com/cdh5/parcels/5.0.1/CDH-5.0.1-1.cdh5.0.1.p0.47-el6.parcel
下載同目錄下的manifest.json文件
*#wget http://archive.cloudera.com/cdh5/parcels/5.0.1/manifest.json
創建一個sha文件,在manifest.json中找到對應parcel的Hash值,並輸入sha文件中:

命令:
*#cat >CDH-5.0.1-1.cdh5.0.1.p0.47-el6.parcel.sha
ec68971d2969a5a31e720a2a79ce7a7c1d38e397
總之,要確保/home/cloudera/parcel-repo下面有三個文件:
CDH-5.0.1-1.cdh5.0.1.p0.47-el6.parcel
CDH-5.0.1-1.cdh5.0.1.p0.47-el6.parcel.sha
manifest.json
3.1.5安裝Apache httpd web服務器
如果你已經安裝了一個web服務器,可以略過此步,如果未安裝可以通過如下shell命令安裝
[root@lemon ~]yuminstallhttpdhttpd[root@lemon ] service httpd start

3.1.6發佈軟件源文件
Linux下面Web服務器的默認是/var/www/html目錄
1、 發佈CM Yum源
對parcel-repo目錄更改文件權限,使用戶、同組、其他組都可以讀/執行文件,並在目錄/var/www/html下創建/home/cloudera/cm的軟連接cm。
[root@lemon ~]chmodRugo+rx/home/cloudera/cm[root@lemonhtml] ln -s /home/cloudera/cm ./cm
瀏覽器訪問http://:80/cm,測試文件首頁是否正常顯示各文件的索引,如下:

個人心得:如果打開不成功
1,關閉防火牆
2,在/etc/httpd/conf/httpd.conf添加 ServerName localhost
3 iptables -L之後關閉 執行 iptables -F

2、發佈CDH Parcel源
對parcel-repo目錄更改文件權限,使用戶、同組、其他組都可以讀/執行文件,並在目錄/var/www/html下創建/home/cloudera/parcel-repo的軟連接parcel-repo。
[root@lemon ~]chmodRugo+rx/home/cloudera/parcelrepo[root@lemonhtml] ln -s /home/cloudera/parcel-repo ./parcel-repo
瀏覽器訪問http://:80/parcel-repo,測試文件首頁是否正常顯示各文件的索引,如下:

3.2使用本地類庫安裝CM
CM安裝必須通過package方式,而CDH可以通過package、parcel方式安裝。

安裝程序默認從網絡下載程序包安裝,如果你已經配置好了本地軟件源,並將本機(客戶端)做了識別配置,只需要在安裝的時候添加參數(--skip_repo_package=1),shell命令如下:

$ sudo ./cloudera-manager-installer.bin –skip_repo_package=1

3.3設置cloudera manager使用的mysql數據庫
Cloudera manager 默認使用嵌入式數據庫postgresql,此步驟可以忽略。如果需要使用mysql作爲cloudera manager的數據庫,需要預先設定。

步驟一:創建數據庫、用戶,並授權。例如:
創建數據庫:cmf,用戶:cmf,密碼:123456,爲遠程服務器 125.88.76.170授權。
create database cmf DEFAULT CHARACTER SET utf8;
grant all on cmf.* TO ‘cmf’@’%’ IDENTIFIED BY ‘123456’;

create user ‘cmf’@’125.88.76.170’ IDENTIFIED BY ‘123456’;
grant all privileges on . to ‘cmf’@’125.88.76.170’ with grant option;

步驟二:預設cloudera manager的數據庫
cd /usr/share/cmf/schema/
./scm_prepare_database.sh mysql cmf cmf 123456 -h host-128
(數據庫類型:mysql ,數據庫:cmf,用戶:cmf,密碼:123456 ,mysql主機:host-128)

scm_prepare_database.sh使用說明如下:
usage: ./scm_prepare_database.sh [options] (postgresql|mysql|oracle) database username [password]

Prepares a database (currently either MySQL, PostgreSQL or Oracle)
for use by Cloudera Service Configuration Manager (SCM):
o Creates a database (For PostgreSQL and MySQL only)
o Grants access to that database, by:
- (PostgreSQL) Creating a role
- (MySQL) Creating a grant
o Creates the SCM database configuration file.
o Tests if the database connection parameters are valid.

MANDATORY PARAMETERS
database type: either “oracle”, “postgresql” or “mysql”
database: For PostgreSQL and MySQL, name of the SCM database to create.
For Oracle this is the SID of the Oracle database.
username: Username for access to SCM’s database.

OPTIONAL PARAMETERS
password: Password for the SCM user. If not provided, will
prompt for it.

OPTIONS
-h|–host Database host. Default is to connect locally.
-P|–port Database port. If not specified, the database specific
default will be used: namely, 3306 for MySQL,
5432 for PostgreSQL, and 1521 for Oracle.
-u|–user Database username that has privileges for creating
users and grants. The default is ‘root’.
Typical values are ‘root’ for MySQL and
‘postgres’ for PostgreSQL. Not applicable for Oracle.
-p|–password Database Password. Default is no password.
–scm-host SCM server’s hostname. Omit if SCM is colocated with MySQL.
–config-path Path to SCM configuration files.
Default is /etc/cloudera-scm-server.
-f|–force Don’t stop when an error is encountered.
-v|–verbose Print more informational messages.
-?|–help Show this message.

步驟三:重啓cloudera-scm-server
service cloudera-scm-server restart
3.4 使用本地類庫安裝CDH5
通過Cloudera Manager Admin控制檯(用戶名和密碼皆爲admin),可以配置、管理、監控集羣上的Hadoop,WEB端的URL地址是:http://myhost.example.com:7180
首次登錄頁面如下:

搜尋你要部署的主機:

選擇Parcels安裝方式和parcel源:

配置Cloudera Manager Yum源

所有主機使用相同的密碼:

點擊Continue進行安裝,安裝完成後的檢測如果沒有錯誤或警告即說明安裝成功,可以進入下一步的服務配置。

選擇你需要部署的服務:

爲服務選擇主機:

設置前面創建的Activity Monitor和hive metadata數據庫連接:

根據各服務所在主機空間分配情況和實際需求配置存儲目錄:

點擊Continue完成配置,致此即完成了CDH5的安裝部署,其間可能會遇到各類問題請參照附錄,如果是新問題請蒐集至本手冊附錄。

4HDFS啓用HA高可用性(基於Quorum-based Storage)
HDFS高可用性(可選),在非正式環境中可不啓用。

Hive啓用HA高可用性

設置故障切換方式:

Mapreduce JobTracker啓用HA高可用性

CDH集羣運行狀況驗證
1. 驗證HDFSHA高可用性是否生效
2. 驗證JobTracker HA高可用性是否生效

5.安裝使用GPL Extras
在CDH5中HADOOP_LZO正式更名爲GPL Extras,且CDH5.0.0對應版本GPLEXTRAS-5.0.0,CDH5.0.1對應GPLEXTRAS-5.0.1。
5.1 GPL Extras安裝
配置GPL Extras安裝路徑:

添加入GPLEXTRAS-5.0.1的parcels的路徑,注意爲你的CDH找到對應的版本:
http://archive.cloudera.com/gplextras5/parcels/5.0.1/

安裝GPL Extras的Parcels:

5.2 配置MapReduce(如果部署了)
5.2.1加入hadoop_lzo的lib目錄到MapReduce服務客戶端環境安全閥值中
A. 進入MapReduce服務的配置>查看和編輯,搜索”MapReduce Client Safety”.
B. 將以下值加入到MapReduce服務客戶端環境安全閥值:
HADOOP_CLASSPATH=HADOOPCLASSPATH:/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/JAVALIBRARYPATH= JAVA_LIBRARY_PATH:/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/native

5.2.1將lzo編碼解碼方式加入到MapReduce服務的壓縮編碼解碼器中
A. 進入MapReduce服務的配置>查看和編輯,搜索”io.compression”.
B. 將以下值加入到MapReduce服務的壓縮編碼解碼器中:
com.hadoop.compression.lzo.LzoCodec
com.hadoop.compression.lzo.LzopCodec

5.2.3部署客戶端配置以及重啓服務
A. 以上配置修改,保存修改。將修改的客戶端配置部署到集羣內節點上

B. 重啓MapReduce服務

5.3 配置HDFS

A. 進入HDFS服務的配置>查看和編輯,搜索”io.compression”.
B. 將以下值加入到HDFS服務的壓縮編碼解碼器中:
com.hadoop.compression.lzo.LzoCodec
com.hadoop.compression.lzo.LzopCodec

5.4 配置Yarn
A. 進入Yarn服務的配置>查看和編輯,搜索”hadoop-env.sh “.
B. 將以下值加入到Yarn服務客戶端環境安全閥值:
HADOOP_CLASSPATH=HADOOPCLASSPATH:/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/JAVALIBRARYPATH= JAVA_LIBRARY_PATH:/opt/cloudera/parcels/GPLEXTRAS/lib/hadoop/lib/native

5.3部署配置和重啓服務
A. 重啓HDFS服務
B. 重啓HBase服務
C. 重啓Impala服務
D. 重啓Hive服務
E. 重啓Yarn服務
完成以上步驟之後,驗證lzo壓縮是否可用。

另外Hadoop自帶有高速壓縮庫snappy,下附如何爲Yarn壓縮啓用snappy。
Snappy已經被Google開源,作爲一個壓縮庫,它可以利用單顆Intel Corei7處理器內核處理至少每秒250MB~500MB的數據流。
進入Yarn配置編輯,搜索mapreduce.output.fileoutputformat.compress,啓用Job輸入輸出壓縮,並將codec的值設置爲org.apache.hadoop.io.compress.SnappyCodec,如下:

重啓Yarn,驗證snappy壓縮是否可用。

6.安裝Storm
6.1安裝依賴
Storm安裝依賴下面的環境
jdk,python,zookeeper,zeromq,jzmq,storm
這些環境在本文檔的安裝過程中,大部分已經安裝好了,但是有版本的要求
Python 2.6.6CentOS版本爲6.5中,已經安裝好了
Storm 0.9.1目前開發使用的版本
Jdk 1.6
6.2安裝資源準備
下載storm,下載位置http://storm.incubator.apache.org/downloads.html
特別注意: 版本是0.9.1,並且是zip壓縮格式的。

下載zeromq,下載位置http://zeromq.org/
版本選擇zeromq-4.0.4

    選擇posix tarball

下載jzmq,下載位置https://github.com/nathanmarz/jzmq
通過svn或者git下載到本地
6.3 安裝
將上述下載的資源上傳到需要運行storm的所有機器上
6.3.1 Zeromq安裝
解壓zeromq
tar zxvf zeromq-4.0.4.tar.gz
進入zeromq-4.0.4目錄
cd zeromq-4.0.4
chmod +x autogen.sh
./autogen.sh
./configure
make && make install
默認安裝在/usr/local/lib下,通過ls –l /usr/local/lib檢查一下,有如下文件就ok

更新庫的搜索路徑
ldconfig
6.3.2 Jzmq安裝
進入jzmq的目錄
cd jzmq
生成configure
chmod +x autogen.sh
./autogen.sh
生成makefile
./configure
上述過程中可能遇到JAVA_HOME沒有配置的情況
可以在當前用戶的bash_profile中添加此環境變量

編譯安裝
make && make install
默認情況下,安裝在/usr/local/lib下
可以通過 ls –l /usr/local/lib查看,有如下文件

更新庫的搜索路勁
ldconfig
6.3.3 Storm安裝
解壓storm安裝包
upzip apache-storm-0.9.1-incubating.zip
如果發現unzip沒有安裝,需要安裝包含unzip相關的rpm包
相關的資源可以在http://rpm.pbone.net/上去下載

6.4 配置
進入storm的解壓路徑
修改conf/storm.yaml
基本的樣式

Storm.zookeeper.servers 表示zookeeper服務器的主機名
Ui.port 表示storm ui的監聽端口
Nimbus.host 表示nimbus的主機名
Storm.local.dir 表示storm的本地工作目錄
Supervisor.slots.ports 表示supervisor中worker的監聽端口

配置的格式特別說明:
Storm.zookeeper.servers中的主機名的新行不能以tab開始,以空格開始
並且分隔符’-‘兩邊需要留一個空格
Supervisor.slots.ports也要遵循上面的規則
配置項與取值之間的”:”後面要留一個空格
6.5 運行
Storm的運行由ui,nimbus,supervisor組成
6.5.1 Nimbus啓動
進入storm的安裝目錄
執行./bin/storm nimbus &
啓動後通過jps命令查看 nimbus是否啓動成功

6.5.2 supervisor啓動
進入storm的安裝目錄
執行./bin/storm supervisor &
啓動後,通過jps命令查看supervisor是否啓動成功

6.5.3 ui啓動
進入storm的安裝目錄
執行./bin/storm ui &
啓動後,通過lsof –I 8081,查看ui是否成功監聽端口8081

也可以通過jps查看是否有core進程

7.附錄.
7.1CDH安裝部署問題記錄
1、 IOException thrown while collecting data from host: No route to host
原因:agent開啓了防火牆
解決:service iptables stop (不推薦)
2、 Cloudera recommends setting /proc/sys/vm/swappiness to 0. Current setting is 60. Use the sysctl command to change this setting at runtime and edit /etc/sysctl.conf for this setting to be saved after a reboot. You may continue with installation, but you may run into issues with Cloudera Manager reporting that your hosts are unhealthy because they are swapping. The following hosts are affected:
解決:
*# echo 0 > /proc/sys/vm/swappiness (to apply for now)
*# sysctl -w vm.swappiness=0 (to make this persistent across reboots)
3、 時鐘不同步(同步至中科大時鐘服務器202.141.176.110)
# echo “0 3 * * /usr/sbin/ntpdate 202.141.176.110;/sbin/hwclock –w”>>/var/spool/cron/root
*# service crond restart
*# ntpdate 202.141.176.110
4、 The host’s NTP service did not respond to a request for the clock offset.
*#service ntpd start
*# ntpdc -c loopinfo (the health will be good if this command executed successfully)
5、 The Cloudera Manager Agent is not able to communicate with this role’s web server.
一種原因是元數據數據庫無法連接,請檢查數據庫配置:

6、 Hive Metastore Server無法啓動,修改Hive元數據數據庫配置:

7.2 在安裝CHD之前,所有主機必須安裝一下包:
chkconfig
python (2.6 required for CDH 5)
yum–y install bind-utilspsmisclibxsltzlibsqlitecyrus-sasl-plaincyrus-sasl-gssapifuseportmapfuse-libsredhat-lsb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章