cdh 安裝記錄

 

安裝文件準備

CDH

下載地址:http://archive.cloudera.com/cdh5/parcels/latest/html

下載操做系統對應的版本:java

1.CDH-5.3.0-1.cdh5.3.0.p0.30-e17.parcelnode

2.CDH-5.3.0-1.cdh5.3.0.p0.30-e17.parcel.sha1mysql

3.Manifest.jsonlinux

Cloudera Manager

下載地址:http://archive-primary.cloudera.com/cm5/cm/5/sql

下載操做系統對應的版本:shell

1.cloudera-manager-e17-cm5.3.0_x86_64.tar.gz數據庫

JDK

下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.htmlapache

CDH支持Java 8,若能夠請選擇Java 8版本或Java 7最新版:json

1.jdk-7u71-linux-x64.rpm

Mysql

下載地址:http://dev.mysql.com/downloads/connector/j/

須要登陸纔可下載:

1.mysql-connector-java-5.1.34-bin.jar

 

系統環境準備

若無特殊需求將CDH安裝在root用戶下最佳。

全部配置完成後需重啓集羣全部機器。

配置Hosts

登陸集羣全部機器

執行命令:

Vi /etc/hostname

把機器名寫入

   master

vi /etc/hosts

將集羣角色和IP寫入,相似

192.168.60.3 master

127.0.0.1 master  localhost

192.168.60.4 slave01

192.168.60.5 slave02

備註:

若出現域名/通訊方面的錯誤可將127.0.0.1該行註釋掉

打通SSH

登陸Master機器

執行命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

chmod 600 $_

將authorized_keys scp到全部Slave節點上:

scp ~/.ssh/authorized_keys hadoop@slaves:~/.ssh/

備註:

若沒法免密碼登陸,需登陸至Slave節點並執行命令:

chmod 600 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

關閉IPv6

登陸集羣全部機器

執行命令:

cat << EOF >> /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 =1

net.ipv6.conf.default.disable_ipv6 =1

EOF

sysctl -p

使用lsmod查看ipv6的模塊是否被加載

關閉SELINUX

登陸集羣全部機器

執行命令:

sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

 

查看SELinux狀態:

一、/usr/sbin/sestatus -v      ##若是SELinux status參數爲enabled即爲開啓狀態

SELinux status:                 enabled

 

關閉防火牆

登陸集羣全部機器

執行命令:

systemctl stop firewalld.service

systemctl disable firewalld.service

 

查看 iptables -L

打開句柄限制

登陸集羣全部機器

執行命令:

vi /etc/security/limits.conf

根據當前用戶名,添加

cat << EOF >> /etc/security/limits.conf

root   soft    nproc   102400

root   hard    nproc   163840

root   soft    nofile  102400

root   hard    nofile  655360

root   soft    stack   102400

EOF

執行命令:

cat << EOF >> /etc/pam.d/login

session required pam_limits.so

EOF

安裝JDK

登陸集羣全部機器

查看是否自帶OpenJDK:

rpm -qa | grep java

卸載再帶的JDK:

rpm -e --nodeps 包名

安裝JDK:

rpm -i jdk-7u71-linux-x64.rpm

安裝 必備軟件

yum -y install psmisc

yum -y install libxslt

yum -y install screen

yum -y install telnet

安裝Mysql

登陸Master機器

若能夠聯網,執行命令:

yum install mysql-server

若沒法聯網,google如何安裝(^_^)

添加爲自啓動:

chkconfig mysqld on

啓動mysql:

service mysqld start

修改root密碼:

mysqladmin -u root password '123456'

進入mysql:

mysql -uroot -p123456

建立數據庫:

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database ooz DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database hue default charset utf8 collate utf8_general_ci;

受權:

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

flush privileges;

NTP時間同步

master機器:

cat << EOF > /etc/ntp.conf

driftfile /var/lib/ntp/drift

restrict 127.0.0.1

restrict -6 ::1

restrict default nomodify notrap

server 127.127.1.0 prefer

includefile /etc/ntp/crypto/pw

keys /etc/ntp/keys

EOF

slave機器:

cat << EOF > /etc/ntp.conf

driftfile /var/lib/ntp/drift

restrict 127.0.0.1

restrict -6 ::1

restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

server master

include file /etc/ntp/crypto/pw

keys /etc/ntp/keys

EOF

啓動NTP服務:

systemctl enable ntpd.service

systemctl restart ntpd.service

登陸全部Slave機器

執行命令:

ntpdate master

/sbin/hwclock –w

systemctl enable ntpd.service

systemctl restart ntpd.service

查看命令:

 ntpq –p

 

cloudera manager 調優

  sysctl -w vm.swappiness=1

echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag

cat << EOF >> /etc/rc.local

echo 'never' >  /sys/kernel/mm/transparent_hugepage/defrag

EOF

Cloudera Manager安裝

建立cloudera-scm用戶

登陸集羣全部機器

執行命令:

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

安裝Cloudera Manager

登陸Master機器

將cloudera-manager-e17-cm5.3.0_x86_64.tar.gz文件加壓至/opt下,產生2個文件夾cloudera和cm-5.3.0。

添加mysql connector包

登陸Master機器

將mysql-connector-java-5.1.34-bin.jar拷貝至/opt/cm-5.3.0/share/cmf/lib/

初始化CM5的數據庫數據庫

登陸Master機器

執行命令:

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

修改Agent配置

登陸Master機器

執行命令:

vi /opt/cm-5.3.0/etc/cloudera-scm-agent/config.ini

將server_host的值改爲Master機器的名稱

同步Agent到其餘節點

登陸Master機器

執行命令:

scp -r /opt/cm-5.3.0 root@slave[1-xx]:/opt/

準備Parcels

登陸Master機器

將CDH-5.3.0-1.cdh5.3.0.p0.30-e17.parcel、CDH-5.3.0-1.cdh5.3.0.p0.30-e17.parcel.sha1和Manifest.json三個文件拷貝至/opt/cloudera/parcel-repo/文件夾下。

並將CDH-5.3.0-1.cdh5.3.0.p0.30-e17.parcel.sha1重命名爲CDH-5.3.0-1.cdh5.3.0.p0.30-e17.parcel.sha。

啓動Cloudera Manager

啓動Cloudera Manager後等待1-3分鐘,而後訪問http://主節點IP:7180,若能夠訪問則表示安裝成功。

登陸Master機器

執行命令:

/opt/cm-5.3.0/etc/init.d/cloudera-scm-server start

 

登陸集羣全部機器

執行命令:

/opt/cm-5.3.0/etc/init.d/cloudera-scm-agent start

 

CDH安裝

第一步

用戶名密碼皆爲admin。

 

第二步

勾選上須要安裝的主機。

 

第三步

能夠看到所下載並安裝的CDH版本表示前面部署成功,不然須要在線下載。

 

第四步

前面配置無誤則無須下載,不然表示前面配置有誤。

分發可能須要一段時間,視集羣大小而定(此時集羣必定要保證Master能夠免密碼登陸到其它機器上)。

 

第五步

檢查集羣的情況,可根據提示信息修改配置並從新檢查。

 

第六步

選擇須要安裝的組件,可自定義安裝。

 

第七步

給集羣各個節點分配角色,目前所知道須要注意的地方是HBase Thrift Server不要爲空,不然Hue沒法訪問HBase。

 

第八步

設置mysql鏈接。

 

第九步

後面的一路「繼續」下去便可。安裝所需時間較長,請耐心等待。

 

 

經常使用工具地址

Jobtracker

http://master:8088/cluster

Namenode

http://master:50070/dfshealth.jsp

Hue

http://master:8888/

Cloudera Manager

http://master:7180/

HBase

http://master:60010/master-status/

一些常見問題

1. 運行Hadoop程序報錯:org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

——修改dfs.permissions爲false,以下圖所示。

 

2. 訪問Cloudera Manager出現「沒法發出查詢:對 Service Monitor 的請求超時」。

——通常是沒有問題的,可能服務器較卡致使的,多刷新幾回便可。

3. hive建立表出問題

  把mysql-connector-java-5.1.34-bin.jar 拷到/opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/hive/lib

4. oozie建立表出問題

  把mysql-connector-java-5.1.34-bin.jar 拷到/opt/cloudera/parcels/CDH-5.3.6-1.cdh5.3.6.p0.11/lib/oozie/lib和

 /var/lib/oozie/下

5. 遇到 /opt/cm-5.4.3/etc/init.d/cloudera-scm-agent啓動不了

 能夠 ps -ef | grep agent看看,把啓動的agent服務關了

6. 遇到 /opt/cm-5.4.3/etc/init.d/cloudera-scm-server啓動不了

 能夠 ps -ef | grep server看看,把啓動的server服務關了

7. yarn啓動出問題,多是cm自身的bug,按照如下方法試試

解決方法爲修改/opt/cm-5.3.0/lib64/cmf/agent/src/cmf/util.py文件。將其中的代碼:

 

1

2

pipe = subprocess.Popen(['/bin/bash', '-c', ". %s; %s; env" % (path, command)],

                        stdout=subprocess.PIPE, env=caller_env)

修改成:

 

1

2

pipe = subprocess.Popen(['/bin/bash', '-c', ". %s; %s; env | grep -v { | grep -v }" % (path, command)],

                        stdout=subprocess.PIPE, env=caller_env)

而後重啓全部Agent便可。

8. 若要刪除cm目錄,而刪除不了,能夠用一下方法

  df -h 查看cm後臺進程,用umount 進程名  ,刪除再試試

9. 若出現數據庫鏈接出問題

  1)能夠看看是否建立了相應的數據庫

  2)多是master主機下的root用戶在mysql數據庫的密碼爲空

     登錄mysql,use mysql;

     update User set password=‘xxxx’where hostname=‘master’and user=‘root’;

     commit;

     flush privileges;

 

十、注意master要免密碼登陸本身

 

十一、8888,50070,8088等端口沒法訪問

現象:master機器經過wget能夠正確的獲得頁面,可是外網卻沒法獲取,並且網絡的設置是正確的。

查看端口占用發現這些端口所有綁定在內網IP上而不是0.0.0.0。

解決方法:去各自的配置文件中配置便可,選擇綁定至0.0.0.0端口,而後重啓便可。

十二、oozie服務啓動失敗

一般是第二次嘗試安裝中才會遇到,報錯內容大概是數據庫已存在。

解決方法:刪除/var/lib/oozie/data文件夾便可。

1三、HUE服務啓動失敗

報錯信息是找不到libxslt.so.1。

解決方法:yum install libxslt便可。

1四、若是hadoop fs -mkdir /user/mmm時出錯,是因爲權限問題引發的,能夠經過cm端找到hdfs服務修改   相應配置

1五、Phoenix

   http://archive-primary.cloudera.com/cloudera-labs/

1)phoenix和spark整合:

        在spark-conf/spark-env.sh中配置

SPARK_DIST_CLASSPATH="$SPARK_DIST_CLASSPATH:/opt/cloudera/parcels/CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000/lib/phoenix/phoenix-4.7.0-clabs-phoenix1.3.0-client.jar"

export SPARK_YARN_USER_ENV="CLASSPATH=$HADOOP_CONF_DIR"

2)phoenix 二級索引須要的配置

<property><name>hbase.regionserver.wal.codec</name><value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value></property>

3)phoenix 4.8 中使用 schema 和 Namespace 對應的配置

<property><name>phoenix.schema.isNamespaceMappingEnabled</name><value>true</value></property>

What is namespace and benefits of mapping table to namespace?

A namespace is a logical grouping of tables analogous to a database in relation database systems. This abstraction lays the groundwork for upcoming multi-tenancy related features:

    • Quota Management - Restrict the amount of resources (i.e. regions, tables) a namespace can consume.
    • Namespace Security Administration - Provide another level of security administration for tenants.
    • Region server groups - A namespace/table can be pinned onto a subset of RegionServers thus guaranteeing a course level of isolation.

注意:cloudera manager 目前phoenix最新版本是4.7(不支持此功能)

 

http://blog.cloudera.com/blog/2015/11/new-apache-phoenix-4-5-2-package-from-cloudera-labs/

1六、用Apache的spark調用 cdh的yarnHA會出問題,去掉HA配置就會好了,問題是:

   java.lang.IllegalArgumentException: Invalid ContainerId: container_e02_1483668670771_0005_02_000001

1七、應用 spark的HiveContext 時,若是沒有配置Hive服務以及和spark的依賴關係,則 HiveContext 會用derby 數據庫,形成不能同時有兩個應用運行。經過配置以MySQL爲元數據庫的Hive後,此問題不復存在。

     具體問題見下:

        Caused by: ERROR XSDB6: Another instance ofDerbymay have already booted the database ~~~~

1八、爲了能讓 nodemanager機器上也能啓動yarn任務,需在yarn-site.xml 中配置 

          

 <property><name>yarn.resourcemanager.address</name><value>XXX:8032</value></property>
<
property><name>yarn.resourcemanager.scheduler.address</name><value>XXX:8030</value></property>
<
property><name>yarn.resourcemanager.resource-tracker.address</name><value>XXX:8031</value></property>
<
property><name>yarn.resourcemanager.hostname</name><value>XXX</value></property>
<
property><name>yarn.resourcemanager.admin.address</name><value>XXX:8033</value></property>
相關文章
相關標籤/搜索