CDH6離線安裝


CentOS7下完全離線安裝CDH6集群

 
  • 245 瀏覽量
  • 分享到微博
  • 分享到 Twitter
  • 分享到 QQ

本文是在CentOS7.5下進行CDH6集群的完全離線部署。CDH5集群與CDH6集群的部署區別比較大,關於CDH5集群的部署請移步:CDH5高可用集群離線部署

環境准備部分在上一篇文章:安裝CDH6集群之前的環境准備

說明:本文內容所有操作都是在root用戶下進行的。

文件下載

首先一些安裝CDH6集群的必須文件要先在外網環境先下載好。

Cloudera Manager 6.0.1

CM6 RPM:https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/
需要下載該鏈接下的所有RPM文件,由於jdk1.8我在環境准備部分已經手動安裝了,所以可以不用下載RPMS/x86_64/目錄下的jdk包oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm,但是其他4個rpm包一定要下載,保存到cloudera-repos目錄下。

ASC文件:https://archive.cloudera.com/cm6/6.0.1/allkeys.asc
同時還需要下載一個asc文件,同樣保存到cloudera-repos目錄下:

  1. /upload/cloudera-repos/
  2. ├── allkeys.asc
  3. ├── cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
  4. ├── cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
  5. ├── cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
  6. └── cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm
  7. 0 directories, 4 files

MySQL JDBC驅動

要求使用5.1.26以上版本的jdbc驅動,可點擊這里直接下載mysql-connector-java-5.1.47.tar.gz

CDH 6.0.1

CDH6 Parcels:https://archive.cloudera.com/cdh6/6.0.1/parcels/
需要下載CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcelmanifest.json這兩個文件

配置Cloudera Manager yum庫

注意:不要嘗試使用FTP搭建CM的YUM庫!

首先安裝httpdcreaterepo
yum -y install httpd createrepo
啟動httpd服務並設置開機自啟動:
systemctl start httpd
systemctl enable httpd
然后進入到前面准備好的存放Cloudera Manager RPM包的目錄cloudera-repos下:
cd /upload/cloudera-repos/
生成RPM元數據:
createrepo .

  1. [root@cdh601 cloudera-repos]# createrepo .
  2. Spawning worker 0 with 2 pkgs
  3. Spawning worker 1 with 2 pkgs
  4. Workers Finished
  5. Saving Primary metadata
  6. Saving file lists metadata
  7. Saving other metadata
  8. Generating sqlite DBs
  9. Sqlite DBs complete

然后將cloudera-repos目錄移動到httpd的html目錄下:
mv cloudera-repos /var/www/html/
確保可以通過瀏覽器查看到這些RPM包:
img
接着在Cloudera Manager Server主機上創建cm6的repo文件(要把哪個節點作為Cloudera Manager Server節點,就在這個節點上創建repo文件):
cd /etc/yum.repos.d
vim cloudera-manager.repo
添加如下內容:

  1. [cloudera-manager]
  2. name=Cloudera Manager 6.0.1
  3. baseurl=http://cdh601/cloudera-repos/
  4. gpgcheck=0
  5. enabled=1

保存,退出,然后執行yum clean all && yum makecache命令:
img

安裝Cloudera Manager Server

這一步只需要在CM Server節點上操作。
執行下面的命令:
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
將會需要很多依賴包,所以說還是有必要搭一個局域網內yum源的:
img

配置本地Parcel存儲庫

Cloudera Manager Server安裝完成后,進入到本地Parcel存儲庫目錄:
cd /opt/cloudera/parcel-repo
將第一部分下載的CDH Parcel文件(CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcelmanifest.json)上傳至該目錄下,然后執行命令生成sha文件:
sha1sum CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel | awk '{ print $1 }' > CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha
然后執行下面的命令修改文件所有者:
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
最終/opt/cloudera/parcel-repo目錄內容如下:
img

安裝數據庫

MySQL的安裝在環境准備部分中已經有說明,這里就跳過MySQL安裝了。

數據庫配置

CDH官方給的有一份推薦的MySQL的配置內容:

  1. [mysqld]
  2. datadir=/var/lib/mysql
  3. socket=/var/lib/mysql/mysql.sock
  4. transaction-isolation = READ-COMMITTED
  5. # Disabling symbolic-links is recommended to prevent assorted security risks;
  6. # to do so, uncomment this line:
  7. symbolic-links = 0
  8. key_buffer_size = 32M
  9. max_allowed_packet = 32M
  10. thread_stack = 256K
  11. thread_cache_size = 64
  12. query_cache_limit = 8M
  13. query_cache_size = 64M
  14. query_cache_type = 1
  15. max_connections = 550
  16. #expire_logs_days = 10
  17. #max_binlog_size = 100M
  18. #log_bin should be on a disk with enough free space.
  19. #Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
  20. #system and chown the specified folder to the mysql user.
  21. log_bin=/var/lib/mysql/mysql_binary_log
  22. #In later versions of MySQL, if you enable the binary log and do not set
  23. #a server_id, MySQL will not start. The server_id must be unique within
  24. #the replicating group.
  25. server_id=1
  26. binlog_format = mixed
  27. read_buffer_size = 2M
  28. read_rnd_buffer_size = 16M
  29. sort_buffer_size = 8M
  30. join_buffer_size = 8M
  31. # InnoDB settings
  32. innodb_file_per_table = 1
  33. innodb_flush_log_at_trx_commit = 2
  34. innodb_log_buffer_size = 64M
  35. innodb_buffer_pool_size = 4G
  36. innodb_thread_concurrency = 8
  37. innodb_flush_method = O_DIRECT
  38. innodb_log_file_size = 512M
  39. [mysqld_safe]
  40. log-error=/var/log/mysqld.log
  41. pid-file=/var/run/mysqld/mysqld.pid
  42. sql_mode=STRICT_ALL_TABLES

配置mysql jdbc驅動

從前面下載好的mysql-connector-java-5.1.47.tar.gz包中解壓出mysql-connector-java-5.1.47-bin.jar文件,將mysql-connector-java-5.1.47-bin.jar文件上傳至CM Server節點上的/usr/share/java/目錄下並重命名為mysql-connector-java.jar(如果/usr/share/java/目錄不存在,需要手動創建):
tar zxvf mysql-connector-java-5.1.47.tar.gz
mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

創建CDH所需要的數據庫

根據所需要安裝的服務參照下表創建對應的數據庫以及數據庫用戶,數據庫必須使用utf8編碼,創建數據庫時要記錄好用戶名及對應密碼:

服務名 數據庫名 用戶名
Cloudera Manager Server scm scm
Activity Monitor amon amon
Reports Manager rman rman
Hue hue hue
Hive Metastore Server metastore hive
Sentry Server sentry sentry
Cloudera Navigator Audit Server nav nav
Cloudera Navigator Metadata Server navms navms
Oozie oozie oozie

我這里就先創建4個數據庫及對應用戶:

  1. mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  2. Query OK, 1 row affected (0.11 sec)
  3. mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  4. Query OK, 1 row affected (0.00 sec)
  5. mysql> CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  6. Query OK, 1 row affected (0.00 sec)
  7. mysql> CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
  8. Query OK, 1 row affected (0.00 sec)
  9. mysql> GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';
  10. Query OK, 0 rows affected, 1 warning (0.16 sec)
  11. mysql> GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
  12. Query OK, 0 rows affected, 1 warning (0.00 sec)
  13. mysql> GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';
  14. Query OK, 0 rows affected, 1 warning (0.00 sec)
  15. mysql> GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive';
  16. Query OK, 0 rows affected, 1 warning (0.00 sec)
  17. mysql> FLUSH PRIVILEGES;
  18. Query OK, 0 rows affected (0.00 sec)

查看授權是否正確:

  1. mysql> SHOW GRANTS FOR 'scm'@'%';
  2. +----------------------------------------------+
  3. | Grants for scm@% |
  4. +----------------------------------------------+
  5. | GRANT USAGE ON *.* TO 'scm'@'%' |
  6. | GRANT ALL PRIVILEGES ON `scm`.* TO 'scm'@'%' |
  7. +----------------------------------------------+
  8. 2 rows in set (0.00 sec)
  9. mysql> SHOW GRANTS FOR 'amon'@'%';
  10. +------------------------------------------------+
  11. | Grants for amon@% |
  12. +------------------------------------------------+
  13. | GRANT USAGE ON *.* TO 'amon'@'%' |
  14. | GRANT ALL PRIVILEGES ON `amon`.* TO 'amon'@'%' |
  15. +------------------------------------------------+
  16. 2 rows in set (0.00 sec)
  17. mysql> SHOW GRANTS FOR 'rman'@'%';
  18. +------------------------------------------------+
  19. | Grants for rman@% |
  20. +------------------------------------------------+
  21. | GRANT USAGE ON *.* TO 'rman'@'%' |
  22. | GRANT ALL PRIVILEGES ON `rman`.* TO 'rman'@'%' |
  23. +------------------------------------------------+
  24. 2 rows in set (0.00 sec)
  25. mysql> SHOW GRANTS FOR 'hive'@'%';
  26. +----------------------------------------------------------+
  27. | Grants for metastore@% |
  28. +----------------------------------------------------------+
  29. | GRANT USAGE ON *.* TO 'hive'@'%' |
  30. | GRANT ALL PRIVILEGES ON `metastore`.* TO 'hive'@'%' |
  31. +----------------------------------------------------------+
  32. 2 rows in set (0.00 sec)

設置Cloudera Manager 數據庫

Cloudera Manager Server包含一個配置數據庫的腳本。

  • mysql數據庫與CM Server是同一台主機
    執行命令:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
    img
  • mysql數據庫與CM Server不在同一台主機上
    執行命令:/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h <mysql-host-ip> --scm-host <cm-server-ip> scm scm

安裝CDH節點

啟動Cloudera Manager Server服務

systemctl start cloudera-scm-server
然后等待Cloudera Manager Server啟動,可能需要稍等一會兒,可以通過命令tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log去監控服務啟動狀態。

當看到INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.日志打印出來后,說明服務啟動成功,可以通過瀏覽器訪問Cloudera Manager WEB界面了。

訪問Cloudera Manager WEB界面

打開瀏覽器,訪問地址:http://<server_host>:7180,默認賬號和密碼都為admin:
img

歡迎頁面

首先是Cloudera Manager的歡迎頁面,點擊頁面右下角的【繼續】按鈕進行下一步:
img

接受條款

勾選接受條款,點擊【繼續】進行下一步:
img

版本選擇

這里我就選擇免費版了:
img

第二個歡迎界面

選擇版本以后會出現第二個歡迎界面,不過這個是安裝集群的歡迎頁:
img

選擇主機

這一步是要搜索並選擇用於安裝CDH集群的主機,在主機名稱后面的輸入框中輸入各個節點的hostname,中間使用英文逗號分隔開,然后點擊搜索,在結果列表中勾選要安裝CDH的節點即可:
img

指定存儲庫

Cloudera Manager Agent

這里選擇自定義,填寫上面使用httpd搭建好的Cloudera Manager YUM 庫URL:
img

CDH and other software

如果我們之前的【配置本地Parcel存儲庫】步驟操作無誤的話,這里會自動選擇【使用Parcel】,並加載出CDH版本,確認無誤后點擊【繼續】:
img

JDK安裝選項

這一步驟我就不再勾選安裝JDK了,因為我在環境准備部分已經安裝過了。取消勾選,然后繼續:
img

SSH登錄配置

用於配置集群主機之間的SSH登錄,填寫root用戶的密碼,根據集群配置填寫合適的【同時安裝數量】值即可:
img

安裝Agent

到這一步會自動進行節點Agent的安裝,稍等一會兒,即可安裝完成:
img
img

安裝Parcels

這一步同樣是自動安裝,分配步驟的速度主要取決於網絡環境,耐心等待即可(我的3台虛擬機性能實在是太差了,這一步等了好久):
img
img

主機檢查

等待檢查完成即可:
img

安裝CDH集群

選擇服務類型

這里我選擇自定義服務,HDFS,Hive,Yarn:
img

角色分配

CDH會自動給出一個角色分配,如果覺得不合理,我們可以手動調整一下,注意角色分配均衡:
img

數據庫設置

因為我選擇的服務中只有Hive需要數據庫,故這里只需要配置Hive的metastore數據庫。注意要將mysql的jdbc驅動放到hive metastore主機的/usr/share/java/目錄下:
img

到這里CDH集群的安裝基本上就已經完成了,我的虛擬機實在是承受不住了,后續內容等我換個環境再補充~。


免責聲明!

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



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