CDH集群安裝


1 軟硬件准備

1.1 准備三個節點

序號 主機名 內存 CPU IP地址 角色
1 cdh1 8G 8核心 192.168.5.78 cloudera-scm-server,mysql
2 cdh2     4G 8核心 192.168.5.79 cloudera-scm-agent
3 cdh2 4G 8核心 192.168.5.80 cloudera-scm-agent

1.2 軟件版本信息

OS:RedHat EL 6.5
CDH: 5.6.0
Java:1.7
MySQL:5.6
 

2 主機環境准備

 
說明: 以下操作默認在節點1上面, 如果在節點2和節點3上操作會特別說明。
 

2.1 搭建yum源

(1)、掛載系統鏡像
  1. [root@hadoop1 ~]# mount /dev/cdrom /mnt
(2)、配置yum源
編輯/etc/yum.repos.d/rhel-source.repo配置文件:
  1. [root@hadoop1 yum.repos.d]# cat rhel-source.repo
  2. [rhel-source]
  3. name=RedHat
  4. baseurl=file:///mnt
  5. enabled=1
  6. gpgcheck=0
 
 
(3)、設置緩存和驗證
  1. [root@hadoop1 yum.repos.d]# yum clean all
  2. [root@hadoop1 yum.repos.d]# yum makecache
  3. [root@hadoop1 yum.repos.d]# yum list | more
 
 
(4)、安裝上傳工具rz和sz
  1. [root@hadoop1 yum.repos.d]# yum whatprovides \*rz
  2. [root@hadoop1 yum.repos.d]# yum install lrzsz-0.12.20-27.1.el6.x86_64 -y
 
 

2.2 配置JDK

(1)、卸載本機的Open JDK信息
  1. [root@hadoop1 ~]# java -version
  2. [root@hadoop1 ~]# rpm -qa | grep java
  3. [root@hadoop1 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
  4. [root@hadoop1 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
  5. [root@hadoop1 ~]# rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
 
 
(2)、上傳JDK安裝包並解壓
  1. [root@hadoop1 java]# mkdir /usr/java
  2. [root@hadoop1 java]# tar -xzvf jdk-7u79-linux-x64.tar.gz -C /usr/java/
  3. [root@hadoop1 data]# cd /usr/java/
  4. [root@hadoop1 java]# mv jdk1.7.0_79 default
 
 
注意: JDK一定要解壓到/usr/java/default下面,即JAVA_HOME= /usr/java/default, 否則CDH的后續安裝將會報錯(通過日志發現必須指定到此目錄,可能其他的CM版本不需要)。
 
(3)、配置環境變量
編輯 /etc/profile,  加入如下內容:
  1. [root@hadoop1 default]# vim /etc/profile
  2. export JAVA_HOME=/usr/java/default
  3. export JRE_HOME=/usr/java/default/jre
  4. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
  5. export PATH=$JAVA_HOME/bin:$PATH
 
 
使用環境變量配置馬上生效:
  1. [root@hadoop1 default]# source /etc/profile
 
(4)、將節點1的Java傳到其他節點並配置環境變量
    在節點2和節點3上分別新建目錄/usr/java/default, 將節點1的目錄/usr/java/default下的文件傳到節點2和節點3的目錄 /usr/java/default:
   
  1. [root@hadoop1 default]# scp -r /usr/java/default/* root@192.168.5.79:/usr/java/default/
  2. [root@hadoop1 default]# scp -r /usr/java/default/* root@192.168.5.80:/usr/java/default/
 
配置環境變量:
  1. [root@hadoop2 default]# tail -4/etc/profile
  2. export JAVA_HOME=/usr/java/default
  3. export JRE_HOME=/usr/java/default/jre
  4. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
  5. export PATH=$JAVA_HOME/bin:$PATH
(5)、驗證
 

2.3 修改主機名

(1)、在所有節點修改配置文件/etc/sysconfig/network
其中cdh1為主機名, 其他節點也修改為對應的主機名稱。
 
(2)、在所有節點的/etc/hosts加入域名解析
  1. [root@hadoop1 default]# cat /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 192.168.5.78 cdh1
  5. 192.168.5.79 cdh2
  6. 192.168.5.80 cdh3
然后每個節點主機執行:hostname 主機名,比如節點1執行:# hostname cdh1
 
(3)、測試主機名是否正常解析
 

2.4 配置SSH免密碼認證

在主信任機cloudera-scm-server(192.168.5.78)生成key, 並將key分發到各個節點。
(1)、生成key
  1. [root@cdh1 ~]#/usr/bin/ssh-keygen -t rsa -N ""
 
(2)、分發key到各個節點上
  1. # cat /root/.ssh/id_rsa.pub | ssh 192.168.5.78 'cat >> .ssh/authorized_keys'
  2. # cat /root/.ssh/id_rsa.pub | ssh 192.168.5.79 'cat >> .ssh/authorized_keys'
  3. # cat /root/.ssh/id_rsa.pub | ssh 192.168.5.80 'cat >> .ssh/authorized_keys' (注意, 本機也要做免密碼認證)
 
(3)、驗證免密碼認證
 
 

2.5 關閉防火牆

在所有節點執行如下步驟:
(1)、關閉iptables
  1. # service iptables stop
  2. # chkconfig iptables off
  3. # chkconfig --list | grep iptables
 
(2)、關閉 selinux
  1. # vim /etc/sysconfig/selinux
  2. # setenforce 0
 
 
 

2.6 配置內核參數

在所有節點執行如下步驟:
(1)、在所有節點修改內核參數(涉及主機檢查):
  1. # echo 0 > /proc/sys/vm/swappiness
  2. # echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
 
以上參數,重啟后可能會丟失。
(2)、修改系統編碼格式
  1. # vim /etc/sysconfig/i18n
  2. LANG="en_US.UTF-8"
  3. SYSFONT="latarcyrheb-sun16"
 
 
 

2.7 配置NTP服務

 
(1)、修改配置文件/etc/ntp.conf
在cdh1加入如下配置:
  1. restrict 192.168.5.0 mask 255.255.255.0 nomodify notrap
  2. server 127.127.1.0# local clock
  3. fudge 127.127.1.0 stratum 10
 
在cdh2和cdh3等其他節點加入如下配置:
  1. #server 0.rhel.pool.ntp.org iburst
  2. #server 1.rhel.pool.ntp.org iburst
  3. #server 2.rhel.pool.ntp.org iburst
  4. server 192.168.5.78
  5. restrict 192.168.5.78 nomodify notrap noquery
 
(2)、啟動服務,並同步時間
cdh1:
  1. [root@cdh1 ~]# service ntpd restart
  2. [root@cdh1 ~]# ntpdate -u 0.rhel.pool.ntp.org
  3. 16Feb14:13:39 ntpdate[32551]: step time server 85.199.214.101 offset -27310.823198 sec
  4. [root@cdh1 ~]# date
  5. 20170216星期四14:13:41 CST
 
cdh2、cdh3:
  1. # service ntpd restart
  2. # ntpdate -u 192.168.5.78
 
 
 

3、編譯安裝MySQL

Mysql的安裝在節點1上
也可以使用其他方式安裝MySQL

3.1 檢查並卸載本機的MySQL

  1. # rpm -qa | grep mysql
  2. # yum -y remove mysql-libs-5.1.71-1.el6.x86_64
 

3.2 配置用戶、目錄和環境

(1)、添加用戶
  1. [root@cdh1 ~]# useradd mysql
 
(2)、創建目錄並賦權
創建目錄:
  1. [root@cdh1 ~]# mkdir -p /home/u01/my3306/data
  2. [root@cdh1 ~]# mkdir -p /home/u01/my3306/log/iblog
  3. [root@cdh1 ~]# mkdir -p /home/u01/my3306/log/binlog
  4. [root@cdh1 ~]# mkdir -p /home /u01/my3306/run
  5. [root@cdh1 ~]# mkdir -p /home/u01/my3306/tmp
 
設置權限:
  1. [root@cdh1 ~]# chown -R mysql:mysql /home/u01/my3306/
  2. [root@cdh1 ~]# chmod -R 755/home/u01/my3306/
 
(3)、配置環境變量
在/etc/profile里面加入如下配置:
  1. export PATH=$PATH:/home/u01/my3306/bin
 
(4)、安裝cmake
  1. [root@cdh1 data]# yum install -y cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl libxml2 libxml2-devel openssl-devel
 

3.3 安裝MySQL

(1)、上傳並解壓
上傳mysql通用的源碼包到目錄/home/data, 並解壓到/home/u01目錄。
  1. [root@cdh1 data]# tar -xzvf mysql-5.6.35.tar.gz -C /home/u01
 
(2)、進入mysql的解壓目錄, 並執行如下的cmake命令
  1. cmake \
  2. -DCMAKE_INSTALL_PREFIX=/home/u01/my3306 \
  3. -DINSTALL_DATADIR=/home/u01/my3306/data \
  4. -DDEFAULT_CHARSET=utf8 \
  5. -DDEFAULT_COLLATION=utf8_general_ci \
  6. -DEXTRA_CHARSETS=all \
  7. -DWITH_SSL=yes \
  8. -DWITH_EMBEDDED_SERVER=1 \
  9. -DENABLED_LOCAL_INFILE=1 \
  10. -DWITH_MYISAM_STORAGE_ENGINE=1 \
  11. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  12. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  13. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  14. -DWITH_FEDERATED_STORAGE_ENGINE=1 \
  15. -DWITH_PARTITION_STORAGE_ENGINE=1 \
  16. -DMYSQL_UNIX_ADDR=/home/u01/my3306/run/mysql.sock \
  17. -DMYSQL_TCP_PORT=3306 \
  18. -DENABLED_LOCAL_INFILE=1 \
  19. -DSYSCONFDIR=/etc \
  20. -DWITH_READLINE=on
 
 
(3)、make操作
  1. # make
 
(4)、make  install 操作
  1. # make install
 
 
(5)、上傳my.cnf
    將附件my.cnf上傳到目錄/home/u01/my3306。
 my.cnf的文件內容如下:
  1. [client]
  2. port=3306
  3. socket=/home/u01/my3306/mysql.sock
  4. [mysql]
  5. pid_file=/home/u01/my3306/run/mysqld.pid
  6. [mysqld]
  7. autocommit=1
  8. general_log=off
  9. explicit_defaults_for_timestamp=true
  10. # system
  11. basedir=/home/u01/my3306
  12. datadir=/home/u01/my3306/data
  13. max_allowed_packet=1g
  14. max_connections=3000
  15. max_user_connections=2800
  16. open_files_limit=65535
  17. pid_file=/home/u01/my3306/run/mysqld.pid
  18. port=3306
  19. server_id=101
  20. skip_name_resolve=ON
  21. socket=/home/u01/my3306/run/mysql.sock
  22. tmpdir=/home/u01/my3306/tmp
  23. #binlog
  24. log_bin=/home/u01/my3306/log/binlog/binlog
  25. binlog_cache_size=32768
  26. binlog_format=row
  27. expire_logs_days=7
  28. log_slave_updates=ON
  29. max_binlog_cache_size=2147483648
  30. max_binlog_size=524288000
  31. sync_binlog=100
  32. #logging
  33. log_error=/home/u01/my3306/log/error.log
  34. slow_query_log_file=/home/u01/my3306/log/slow.log
  35. log_queries_not_using_indexes=0
  36. slow_query_log=1
  37. log_slave_updates=ON
  38. log_slow_admin_statements=1
  39. long_query_time=1
  40. #relay
  41. relay_log=/home/u01/my3306/log/relaylog
  42. relay_log_index=/home/u01/my3306/log/relay.index
  43. relay_log_info_file=/home/u01/my3306/log/relay-log.info
  44. #slave
  45. slave_load_tmpdir=/home/u01/my3306/tmp
  46. slave_skip_errors=OFF
  47. #innodb
  48. innodb_data_home_dir=/home/u01/my3306/log/iblog
  49. innodb_log_group_home_dir=/home/u01/my3306/log/iblog
  50. innodb_adaptive_flushing=ON
  51. innodb_adaptive_hash_index=ON
  52. innodb_autoinc_lock_mode=1
  53. innodb_buffer_pool_instances=8
  54. #default
  55. innodb_change_buffering=inserts
  56. innodb_checksums=ON
  57. innodb_buffer_pool_size=128M
  58. innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
  59. innodb_doublewrite=ON
  60. innodb_file_format=Barracuda
  61. innodb_file_per_table=ON
  62. innodb_flush_log_at_trx_commit=1
  63. innodb_flush_method=O_DIRECT
  64. innodb_io_capacity=1000
  65. innodb_lock_wait_timeout=10
  66. innodb_log_buffer_size=67108864
  67. innodb_log_file_size=1048576000
  68. innodb_log_files_in_group=4
  69. innodb_max_dirty_pages_pct=60
  70. innodb_open_files=60000
  71. innodb_purge_threads=1
  72. innodb_read_io_threads=4
  73. innodb_stats_on_metadata=OFF
  74. innodb_support_xa=ON
  75. innodb_use_native_aio=OFF
  76. innodb_write_io_threads=10
  77. [mysqld_safe]
  78. datadir=/home/u01/my3306/data
 
(6)、賦權
  1. [root@cdh1 home]# chown -R mysql:mysql ./u01/my3306
 
(7)、初始化
進入my3306的目錄
  1. ./scripts/mysql_install_db --defaults-file=/home//u01/my3306/my.cnf --datadir=/home/u01/my3306/data --user=mysql
 
(8)、啟動服務
  1. [root@cdh1 my3306]# cd bin/
  2. [root@cdh1 bin]#./mysqld_safe --defaults-file=/home/u01/my3306/my.cnf --user=mysql &

 

 
 
(8)、驗證安裝
 

3.4 配置MySQL權限等

 
(1)、設置密碼
  1. [root@cdh1 bin]# mysqladmin -u root password 123456
 
(2)、進入mysql
 
(3)、設置權限
  1. mysql> grant all privileges on *.* to root@'localhost' identified by'123456'with grant option;
  2. mysql> grant all privileges on *.* to root@'127.0.0.1' identified by'123456'with grant option;
  3. mysql> grant all privileges on *.* to root@'%' identified by'123456'with grant option;
  4. mysql> flush privileges;
 
(4)、驗證權限
 
 


4 安裝Cloudera Manager

以下操作是在節點1上,角色為cloudera-scm-server
 

4.1 上傳並解壓cloudera-manager

(1)、解壓
  1. [root@cdh1 data]# tar xzvf cloudera-manager-el6-cm5.6.0_x86_64.tar.gz -C /opt/

   
(2)、將mysql的jar包復制到指定目錄
  1. # cp mysql-connector-java-5.1.38-bin.jar /opt/cm-5.6.0/share/cmf/lib/

 

4.2 修改配置文件的主機名

  1. [root@cdh1 data]# sed -i 's/server_host=localhost/server_host=cdh1/g'/opt/cm-5.6.0/etc/cloudera-scm-agent/config.ini

   

4.3 修復安裝包bug(此BUG會導致在集群安裝YARN時失敗) 

  1. # vim /opt/cm-5.6.0/lib64/cmf/agent/src/cmf/util.py --該文件第365行
  2. pipe = subprocess.Popen(['/bin/bash','-c',". %s; %s; env"%(path, command)],
  3. stdout=subprocess.PIPE, env=caller_env)
  4. 改成
  5. pipe = subprocess.Popen(['/bin/bash','-c',". %s; %s; env | grep -v { | grep -v }"%(path, command)],
  6. stdout=subprocess.PIPE, env=caller_env)
 
 

4.4 創建系統用戶(在所有的節點)

  1. # useradd --system --home=/opt/cm-5.6.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "cloudera scm user" cloudera-scm
 

4.5 配置MySQL數據庫

(1)、執行創建腳本
  1. [root@cdh1 data]#/opt/cm-5.6.0/share/cmf/schema/scm_prepare_database.sh mysql -h192.168.5.78-uroot -p123456 --scm-host 192.168.5.78 cm cm cm
---參數說明----:
        ./scm_prepare_database.sh mysql -h 172.18.134.172 -uroot -pro#zyuc --scm-host 172.18.134.133 cm cm cm
                (對應於:數據庫類型、數據庫服務器、用戶名、密碼、CMServer 所在節點…….)
 
驗證是否安裝成功:
  1. [root@cdh1 data]# mysql -h192.168.5.78-uroot -p123456 -e "show databases;"
 
 
(2)、創建相關配置
  1. [root@cdh1 data]# mysql -h192.168.5.78-uroot -p123456
  2. mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  3. mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  4. mysql> create database hue default charset utf8 collate utf8_general_ci;
  5. mysql> create database Oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  6. mysql> grant all on *.* to 'root'@'%' identified by '123456';--授權server主機
  7. mysql> flush privileges;

4.6 將cm復制到agent

  將/home/opt/cm-5.6.0拷貝到所有cloudera-scm-agent服務器上( /home/opt
  1. [root@cdh1 opt]# scp -r cm-5.6.0/ root@cdh2:/opt
  2. [root@cdh1 opt]# scp -r cm-5.6.0/ root@cdh3:/opt

 

4.7 准備parcels安裝包到/opt/cloudera/parcel-repo/

  1. # cp CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel /opt/cloudera/parcel-repo/
  2. # cp CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/
  3. # cp manifest.json /opt/cloudera/parcel-repo/
  4. # cd /opt/cloudera/parcel-repo/
  5. # mv CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha1 CDH-5.6.0-1.cdh5.6.0.p0.45-el6.parcel.sha
 
 
 

4.8 啟動服務

(1)、啟動cloudera-scm-server節點的server和agent腳本
  1. # /opt/cm-5.6.0/etc/init.d/cloudera-scm-server start
  2. # /opt/cm-5.6.0/etc/init.d/cloudera-scm-agent start
 
(2)啟動所有cloudera-scm-agent客戶端節點的agent腳本
  1. # /opt/cm-5.6.0/etc/init.d/cloudera-scm-agent start
 
(3)確認cloudera-scm-server啟動完成
  1. [root@cdh1 opt]# ps -ef | grep scm
 
  1. # netstat -tunlp|grep java
 
 

5 在界面配置

在瀏覽器打開管理頁面: http://192.168.5.78:7180/

5.1 同意License

 
 

5.2 選擇Cloudera Express版本

 

5.3 軟件列表信息, 繼續

 

5.4 選擇安裝的主機

 
 

5.5 繼續,Parcel從cdh1分發到其他節點

 

5.6 檢查主機正確性 

 
 
 
 
 
 
 
 
 

5.7 選擇需要安裝的服務

 

5.8 集群設置

 
 
 
 

5.9 設置數據庫的信息

 

5.10 集群設置

設置DataNode的數據目錄, 數據目錄需要在磁盤新建好,如下圖,需要新建2個目錄:# mkdir  /home/dfsdata和 # mkdir  /hadoopdata。
 
 

5.11 配置和啟動服務

 
     Hive和Oozie報錯, 提示沒有mysql的java驅動jar包
 
 
 
 
注意:將mysql的驅動放到hive和oozie的目錄下面, 否則后面安裝會報錯:
[root@cdh1 lib]# cp /home/data/mysql-connector-java-5.1.38-bin.jar /opt/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/lib/hive/lib
[root@cdh1 lib]# cp /home/data/mysql-connector-java-5.1.38-bin.jar /var/lib/oozie
 
 
 
 
 

5.12 安裝結束

以上都沒有報錯, 按繼續, 安裝成功。
 
 
由於是在虛擬機環境, 以上紅色是空間不足的告警, 暫時可以忽略。 
 

6 驗證

6.1 驗證HDFS的功能

 

6.2 驗證Spark引擎

切換到HDFS用戶:# su -hdfs
 

6.3 驗證MR引擎

切換到HDFS用戶:# su -hdfs
 
 

6.4 驗證Hive on Spark

 
 
hive on spark的設置文檔:
 
參考文檔設置沒有成功, 直接修改配置文件:
 
補充:上面通過在界面修改沒有成功, 其實是修改保存后, 還有個deploy的操作, 如下圖所示:
 
 





附件列表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM