內容提要:
1.初始資源
2.版本選型
3.環境和安裝包
3.1 部署方式
3.2 CM安裝包
3.3 Parcel包
3.4 JDK部署
3.5 MySQL安裝部署
3.6 mysql-connector-java.jar
3.7 確認作業系統版本
4.CM部署步驟
4.1 JDK和MySQL安裝部署(略)
4.2 統一hosts文件
4.3 確認關閉防火牆
4.4 確認關閉selinux
4.5 確認ulimit
4.6 確認swap交換分區
4.7 確認時鐘同步
4.8 創建CM Server的資料庫和帳戶
4.9 CM Server部署mysql-jdbc jar
4.10 部署離線parcel源
4.11 CM離線部署
4.12 CM啟動與初始頁面
5.CDH部署步驟
5.1 選擇版本-免費版
5.2 集群安裝
5.3 設置集群名稱
5.4 指定集群主機
5.5 選擇或設置Parcel源
5.6 安裝Parcel
5.7 集群網絡和主機檢查
5.8 集群設置
5.9 選擇自定義服務
5.10 自定義角色分配
5.11 資料庫設置
5.12 審核更改默認的目錄
5.13 首次運行命令
5.14 自定義服務安裝完成
5.15 Hue和Hive遇到的問題
5.16 各種目錄配置的問題
6.集成PHOENIX
6.1 配置PHOENIX的parcel源並完成下載、分配和激活
6.2 刷新CM頁面
6.3 CDH-PHOENIX簡單驗證
CM、cm => ClouderaManager
建議收藏
說明,如果後續需要添加新的機器和新的組件角色,從CM管理頁面正常添加即可。
資源示例:
host內存磁碟zlxx-test1-11032G100Gzlxx-test1-11164G500Gzlxx-test1-11264G500Gzlxx-test1-11364G500Gzlxx-test1-11464G500Gzlxx-test1-11564G500Gzlxx-test1-11664G500G機器zlxx-test1-110用於部署CM Server和MySQL、parcel源。
確認root用戶權限:
$ sudo su
[root@zlxx-test1-110 admin]#
2. 版本選型參考cloudera官方文檔,新的後續版本已經沒有免費下載了。
https://docs.cloudera.com/documentation/enterprise/6/latest/topics/installation.html
https://docs.cloudera.com/documentation/enterprise/6/6.2/topics/phoenix_installation.html#concept_ofv_k4n_c3b最終確認的6.x版本:
3. 環境和安裝包3.1 部署方式
【cm6.3.1 + cdh6.3.2 + PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7】離線部署
3.2 CM安裝包cm6.3.1-redhat7
下載地址:https://archive.cloudera.com/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz
先下載到機器zlxx-test1-110,放到比如目錄:/zlxx/softs/下,後續部署httpd服務,供其它若干機器在區域網下快速下載分發。
3.3 Parcel包同樣下載到機器zlxx-test1-110的/zlxx/softs/下。
CDH-6.3.2-1
下載地址:https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
https://archive.cloudera.com/cdh6/6.3.2/parcels/manifest.json
PHOENIX-5.0.0-cdh6.2.0
https://archive.cloudera.com/phoenix/6.2.0/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel
https://archive.cloudera.com/phoenix/6.2.0/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel.sha
https://archive.cloudera.com/phoenix/6.2.0/parcels/manifest.json
3.4 JDK部署JDK8
下載地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
直接下載解壓版,解壓後配置環境變量即可(部署略)
3.5 MySQL安裝部署MySQL 5.7.28-1.el7.x86_64
下載地址:https://downloads.mysql.com/archives/community/
直接下載rpm包,使用rpm -ivh安裝即可(部署略)
3.6 mysql-connector-java.jarmysql-connector-java.jar
直接從Maven倉庫下載下來jar包,然後重命名。
下載地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar
默認下載到/zlxx/softs/文件夾下面。
3.7 確認作業系統版本3.10.0-1127.19.1.el7.x86_64
# cat /proc/version
Linux version 3.10.0-1127.19.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 25 17:23:54 UTC 2020
4. CM部署步驟4.1 JDK和MySQL安裝部署(略)4.2 統一hosts文件所有機器:hosts文件加入所有涉及到的hostname和IP映射。
192.168.16.110 zlxx-test1-110
192.168.16.111 zlxx-test1-111
192.168.16.112 zlxx-test1-112
192.168.16.113 zlxx-test1-113
192.168.16.114 zlxx-test1-114
192.168.16.115 zlxx-test1-115
192.168.16.116 zlxx-test1-116
4.3 確認關閉防火牆所有機器
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
4.4 確認關閉selinux所有機器
# cat /etc/selinux/config
SELINUX=disabled
4.5 確認ulimit所有機器
# ulimit -n
65536
4.6 確認swap交換分區所有機器
# free -h
total used free shared buff/cache available
Mem: 62G 5.5G 47G 35M 10G 56G
Swap: 2.0G 0B 2.0Gswap交換分區是默認開啟的,特殊組件需要,可以關閉掉。
4.7 確認時鐘同步所有機器,現在centos7一般都使用chrony管理時鐘同步,具體可參考這篇文章:
https://www.cnblogs.com/yinzhengjie/p/12292549.html
chrony is a versatile implementation of the Network Time Protocol (NTP).
# systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-12-01 08:53:07 CST; 11h ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 862 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 804 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 834 (chronyd)
CGroup: /system.slice/chronyd.service
└─834 /usr/sbin/chronyd
4.8 創建CM Server的資料庫和帳戶注意:資料庫字符集編碼必須是utf8,否則會有數據表初始化創建失敗
資料庫名稱:cmf
用戶名:cmf
密碼:test.zlxx@2020CDHmysql> create database cmf default character SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY 'test.zlxx@2020CDH';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
++
| Database |
++
| information_schema |
| cmf |
| mysql |
| performance_schema |
| sys |
++
4.9 CM Server部署mysql-jdbc jar在zlxx-test1-110機器上進行操作,需要用到mysql-jdbc的地方:CM Server、Hue、Hive,部署這幾個組件的地方需要注意,可以提前準備好jar包。
# mkdir -p /usr/share/java/
# cp /zlxx/softs/mysql-connector-java.jar .
# ls
mysql-connector-java.jar
# pwd
/usr/share/java
4.10 部署離線parcel源部署httpd服務
在zlxx-test1-110機器上進行操作# yum install -y httpd準備CDH和PHOENIX的parcel文件
# mkdir -p /var/www/html/cdh6_parcel把parcel本身及相關文件都拷貝到/var/www/html/cdh6_parcel下面去
# mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel /var/www/html/cdh6_parcel/
# mv CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 /var/www/html/cdh6_parcel/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.shasha1名稱裡面把1去掉
# mkdir -p /var/www/html/phoenix_parcel把PHOENIX對應的parcel或者直接wget下載到對應上面的文件夾phoenix_parcel下面去
把CM的安裝包也放到/var/www/html/下面去
# mkdir -p /var/www/html/cm
# ls
cdh6_parcel cm phoenix_parcel直接啟動httpd服務並通過頁面查看
# systemctl start httpdhttp://192.168.16.110/cdh6_parcel/
4.11 CM離線部署
http://192.168.16.110/phoenix_parcel/離線部署cm server
機器:zlxx-test1-110;
創建文件夾,用於存儲解壓後的安裝包文件。# mkdir /zlxx/cloudera-manager
# tar -xzvf cm6.3.1-redhat7.tar.gz -C /zlxx/cloudera-manager/安裝:
# cd /zlxx/cloudera-manager/cm6.3.1/RPMS/x86_64
# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
# rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force修改cm server的配置
# vi /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=zlxx-test1-110
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=test.zlxx@2020CDH
com.cloudera.cmf.db.setupType=EXTERNAL離線部署cm agent
除了zlxx-test1-110之外的所有機器,cm6.3.1-redhat7.tar.gz通過前面的httpd服務把安裝包下載到每一臺機器裡面。創建文件夾,用於存儲解壓後的安裝包文件。
# mkdir /zlxx/cloudera-manager
# tar -xzvf cm6.3.1-redhat7.tar.gz -C /zlxx/cloudera-manager/安裝:
# cd /zlxx/cloudera-manager/cm6.3.1/RPMS/x86_64
# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force修改cm agent的配置,指向cm server的節點zlxx-test1-110
# sed -i "s/server_host=localhost/server_host=zlxx-test1-110/g" /etc/cloudera-scm-agent/config.ini
4.12 CM啟動與初始頁面啟動cm server
cm server機器:zlxx-test1-110,默認的日誌目錄/var/log/cloudera-scm-server/# systemctl start cloudera-scm-server
# cd /var/log/cloudera-scm-server/
# tail -F cloudera-scm-server.log日誌末尾出現7180端⼝,即表示cm server啟動成功。
啟動cm agent
每一臺都啟動,也可以配置ssh編寫一鍵啟動腳本(略)。# systemctl start cloudera-scm-agent
# cd /var/log/cloudera-scm-agent
# tail -F cloudera-scm-agent.logCM初始頁面
5. CDH部署步驟
http://192.168.16.110:7180/
帳號密碼:admin/admin從CM初始頁面往下走
5.1 選擇版本-免費版5.2 集群安裝5.3 設置集群名稱5.4 指定集群主機5.5 選擇或設置Parcel源5.6 安裝Parcel
5.7 集群網絡和主機檢查上述警告,處理完成後再次檢查,會變為狀態正常。截圖中查看詳細信息,已經提供了解決方法建議。
透明大頁面壓縮的問題
建議裡面有臨時生效和永久生效:臨時生效(受影響的每臺機器都做同樣的操作):# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo never > /sys/kernel/mm/transparent_hugepage/enabled永久生效:
# echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
# echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.localPGSQL模塊的問題
直接執行以下安裝:# yum install -y postgresql-devel*以上問題解決後,重新進行檢查,均狀態正常。
5.8 集群設置5.9 選擇自定義服務最基礎的HBase、HDFS、Hive、Hue、YARN、Zookeeper,列表裡沒有PHOENIX,後續再整合。
5.10 自定義角色分配這裡直接根據系統默認的來,後續再手動補充服務節點、開啟HDFS HA等
5.11 資料庫設置為Hue和Hive的MySQL庫創建資料庫、用戶名和密碼
create database hive default character SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'test.zlxx@2020CDH';
create database hue default character SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'test.zlxx@2020CDH';
flush privileges;Hive安裝所在的機器部署mysql連接的jar包: /usr/share/java目錄下放置mysql-connector-java.jar。包比較小,直接下載,或者從前面的mysql-connector-java-5.1.49.jar拷貝一份,重命名把版本號去掉。
# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar
5.12 審核更改默認的目錄5.13 首次運行命令5.14 自定義服務安裝完成5.15 Hue和Hive遇到的問題Hue Load Balancer啟動後掛掉,運行不起來
在部署Load Balancer服務的機器上安裝mod_ssl# yum install mod_ssl -yHue登錄後頁面報錯
CDH-hue : Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available
需要在Hue服務所在的機器安裝相關軟體:
# yum install -y cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi
5.16 各種目錄配置的問題官方會建議留有足夠的磁碟空間,包括/opt、/var、/tmp目錄,因為默認情況下會把一些重要的數據目錄、日誌目錄以及臨時文件放在前面三個目錄或子目錄下。需要根據具體的磁碟規劃,把具體目錄路徑分配到對應的掛載磁碟對應的目錄中去。如果是默認的路徑,磁碟不足或低於閾值(一般10G)會有黃色的警告。
6. 集成PHOENIX6.1 配置PHOENIX的parcel源並完成下載、分配和激活http://192.168.16.110:7180/cmf/parcel/status?clusterId=1#clusterId=1&remoteOnly=false
PHOENIX的parcel源添加完成後,重新訪問parcel列表,會顯示出來剛剛添加的Phoenix;然後點擊最右邊的按鈕:下載、分配和激活。
6.2 刷新CM頁面刷新CM之後,會提示重啟HBase以及更新配置
點擊上圖紅色框中的提示圖標,處理過期配置,要求更新配置
自動配置完成後即集成PHOENIX成功。
6.3 CDH-PHOENIX簡單驗證進入部署了HBase和PHOENIX的機器如:zlxx-test1-111
# cd /opt/cloudera/parcels/PHOENIX/bin/
# ls
phoenix-performance phoenix-psql phoenix-queryserver phoenix-sqlline phoenix-sqlline-thin
# ./phoenix-sqlline
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix: none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/phoenix-5.0.0-cdh6.2.0-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/jars/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Connected to: Phoenix (version 5.0)
Driver: PhoenixEmbeddedDriver (version 5.0)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
133/133 (100%) Done
Done
sqlline version 1.2.0
0: jdbc:phoenix:> !tables
+--+----+---+++--+---+--+--+
| TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | REMARKS | TYPE_NAME | SELF_REFERENCING_COL_NAME | REF_GENERATION | |
+--+----+---+++--+---+--+--+
| | SYSTEM | CATALOG | SYSTEM TABLE | | | | | |
| | SYSTEM | FUNCTION | SYSTEM TABLE | | | | | |
| | SYSTEM | LOG | SYSTEM TABLE | | | | | |
| | SYSTEM | SEQUENCE | SYSTEM TABLE | | | | | |
| | SYSTEM | STATS | SYSTEM TABLE | | | | | |
+--+----+---+++--+---+--+--+
0: jdbc:phoenix:>查看HBase端表的情況,是能夠看到Phoenix默認元數據表的
# hbase shell
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.1.0-cdh6.3.2, rUnknown, Fri Nov 8 05:44:07 PST 2019
Took 0.0008 seconds
hbase(main):001:0> list
TABLE
SYSTEM.CATALOG
SYSTEM.FUNCTION
SYSTEM.LOG
SYSTEM.MUTEX
SYSTEM.SEQUENCE
SYSTEM.STATS
6 row(s)
Took 0.3853 seconds
=> ["SYSTEM.CATALOG", "SYSTEM.FUNCTION", "SYSTEM.LOG", "SYSTEM.MUTEX", "SYSTEM.SEQUENCE", "SYSTEM.STATS"]
hbase(main):002:0>創建表和增刪改查都做了簡單驗證,就不贅述了。