Cloudera Manager安裝 & 搭建CDH叢集
簡介
由於Hadoop深受客戶歡迎,許多公司都推出了各自版本的Hadoop,也有些公司則圍繞Hadoop開發產品。在Hadoop生態系統中,規模最大、知名度最高的公司則是Cloudera。
Cloudera由來自Facebook、谷歌和雅虎的前工程師傑夫·哈默巴切(Jeff Hammerbacher)、克里斯托弗·比塞格利亞(Christophe Bisciglia)、埃姆·阿瓦達拉(Amr Awadallah)以及現任CEO、甲骨文前高管邁克·奧爾森(Mike Olson)在2008年建立。
關於CDH和Cloudera Manager
CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop眾多分支中的一種,由Cloudera維護,基於穩定版本的Apache Hadoop構建,並整合了很多補丁,可直接用於生產環境。
Cloudera Manager則是為了便於在叢集中進行Hadoop等大資料處理相關的服務安裝和監控管理的元件,對叢集中主機、Hadoop、Hive、Spark等服務的安裝配置管理做了極大簡化。
參考文件:
https://www.cnblogs.com/haozhengfei/p/d90e8f4da465036fabbb1d1e1eae886a.html
https://www.cnblogs.com/fujiangong/p/5620050.html
系統環境
- 實驗環境:Win7環境下VMware虛擬機器
- 作業系統:CentOS 7.2 x64
1、網路配置
vi /etc/sysconfig/network
vi /etc/hosts (所有節點)
2、SSH免金鑰登入
虛擬機器的環境準備非常重要:免金鑰的master需要和slave免金鑰;那麼cloudera manager的server需要和agent免金鑰;
那麼具體的軟體比如hdfs的namenode所在的節點就需要和它的datanode節點免金鑰;
全部會話 :[root@master ~] # ssh slave01 --> yes --> (輸入密碼) --> exit (退出)
[root@master ~] # cd ./.ssh
[root@master ~] # ssh-keygen -t rsa
[root@master ~] # ssh-copy-id slave01/slave02/slave03
3、防火牆關閉
service firewalld stop
chkconfig firewalld off
4、SELINUX關閉 setenforce 0
vi /etc/selinux/config ( SELINUX=disabled )
5.安裝JDK配置環境變數
export JAVA_HOME=/usr/local/software/jdk1.7.0_79 //注意java的路徑
export PATH=JAVAHOME/bin:PATH
三臺機器都需要;
6. 安裝NTP (所有節點)
yum install ntp -y
設定開機啟動 :chkconfig ntpd on
設定時間同步 : ntpdate -u s2c.time.edu.cn(全部會話)
7. 安裝配置mysql (Master Namenode)
https://blog.csdn.net/oschina_41140683/article/details/80613819
https://mp.csdn.net/postedit/80793547
8. 安裝說明
9. 軟體下載
Cloudera Manager下載地址:
http://archive.cloudera.com/cm5/cm/5/
Download : cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz
CDH安裝包地址:http://archive.cloudera.com/cdh5/parcels/
Download Files:
- CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel
- CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1
- manifest.json
開始安裝CDH
1. 安裝Cloudera Manager Server、Agent
將軟體包上傳到/usr/local/src目錄 (所有機器都要安裝)
mkdir /opt/cloudera-manager
chmod -R 777 /opt/cloudera-manager
tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
注意:mysql-connector-java-xxx.jar包上傳至master節點(server節點);
cp ./mysql-connector-java.jar /opt/cloudera-manager/cm-5.15.0/share/cmf/lib/
# ls /usr/local/src
CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel
CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1
manifest.json
cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz
mysql-connector-java-*.*.*.jar
mv ./cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz /opt/cloudera-manager
# tar zxvf cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz -C /opt/cloudera-manager/
# ls /opt/cloudera-manager/
cloudera cm-5.15.0
2、建立使用者(所有會話/節點)
#useradd --system --home=/opt/cm-5.15.0/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
3. 配置CM Agent
vi /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-agent/config.ini
server_host=master 或者 server_host=192.168.1.100 (所有機器)
4. 配置CM Server資料庫
# mysql -uroot -p
Enter password: \\輸入資料庫密碼
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.47-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
sql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
sql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
sql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
sql> create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
sql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
sql> grant all on *.* to root@"%" Identified by "root";
Query OK, 0 rows affected (0.00 sec)
sql> exit
初始化CM資料庫 :
#########主節點執行########
> /opt/cloudera-manager/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -proot --scm-host localhost scm scm scm
#### 格式:./scm_prepare_database.sh 資料庫型別、資料庫、資料庫伺服器、使用者名稱、密碼、cm server伺服器
Console日誌:(成功!)
JAVA_HOME=/usr/local/jdk1.7.0_79
Verifying that we can write to /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-server
Creating SCM configuration file in /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-server
Executing: /usr/java/jdk1.7.0_79/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/opt/cloudera-manager/cm-5.15.0/share/cmf/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /opt/cloudera-manager/cm-5.15.0/etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
2018-08-17 13:32:20,562 [main] INFO com.cloudera.enterprise.dbutil.DbCommandExecutor - Successfully connected to database.
All done, your SCM database is configured correctly!
5. 建立Parcel目錄
建立parcel目錄,此目錄是server和agent用來接收和傳送資料的目錄,server端的parcel-repo目錄會把所有
的安裝檔案全部下載到此目錄;
Agent也需要安裝包,parcels就是用來儲存指定的安裝包的,當然需要有許可權能操作
這些目錄;
Server節點
– mkdir -p /opt/cloudera/parcel-repo
– chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
Agent節點
– mkdir -p /opt/cloudera/parcels
– chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
6. 製作CDH本地源(master datanote節點執行)
cd /opt/cloudera/parcel-repo
ls
CDH-5.15.0-1.cdh5.15.0.p0.45-el7.parcel
CDH-5.15.0-1.cdh5.15.0.p0.45-el7.parcel.sha1
manifest.json
mv CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1 CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha
7. 關機做快照。
init 0 || power off
8. 啟動CM Server、Agent
保證Mysql啟動:mysql service mysqld start
全部會話:cd /opt/cloudera-manager/cm-5.15.0/etc/init.d/ ;
Server 執行: ./cloudera-scm-server start ;
Server、Agent 執行:./cloudera-scm-agent start ;
觀察啟動server的日誌
cd /opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server
tail -f xxx.log(log的檔案)
進入web瀏覽器進行訪問,埠號:7180 ;使用者名稱和密碼admin、admin ;
搭建CDH叢集
1、Cloudera 建議將 /proc/sys/vm/swappiness 設定為最大值 10。當前設定為 30。
解決"Cloudera 建議將 /proc/sys/vm/swappiness 設定為最大值 10。當前設定為 30"問題:
## 所有節點
vi /etc/sysctl.conf
vm.swappiness=10
2、檢查主機正確性時出現 “已啟用“透明大頁面”,它可能會導致重大的效能問題。” 的警告,進行如下設定:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# vi /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
/usr/bin/mkdir -p /usr/java
/usr/bin/ln -s /usr/local/jdk1.7.0_79 /usr/java/default
3、Command aborted because of exception: Command timed-out after 90 seconds
$>hdfs/hdfs.sh ["mkdir","/tmp","hdfs","supergroup","1777"]
解決方法 一、
[root@cdh01 ~]# ps -ef
clouder+ 27338 1688 2 Sep05 ? 00:22:31 /usr/local/software/jdk1.7.0_79/bin/java -serve
clouder+ 27340 1688 1 Sep05 ? 00:17:12 /usr/local/software/jdk1.7.0_79/bin/java -serve
clouder+ 27342 1688 0 Sep05 ? 00:04:27 /usr/local/software/jdk1.7.0_79/bin/java -serve
clouder+ 27358 1688 4 Sep05 ? 00:42:09 /usr/local/software/jdk1.7.0_79/bin/java -serve
zookeep+ 27535 1688 0 Sep05 ? 00:03:20 /usr/local/software/jdk1.7.0_79/bin/java -cp /o
zookeep+ 27542 27535 0 Sep05 ? 00:00:00 python2.7 /opt/cloudera-manager/cm-5.15.0/lib64
hdfs 27760 1688 0 Sep05 ? 00:03:57 /usr/local/software/jdk1.7.0_79/bin/java -Dproc
hdfs 27765 1688 0 Sep05 ? 00:10:16 /usr/local/software/jdk1.7.0_79/bin/java -Dproc
hdfs 27782 27760 0 Sep05 ? 00:00:00 python2.7 /opt/cloudera-manager/cm-5.15.0/lib64
hdfs 27855 27765 0 Sep05 ? 00:00:00 python2.7 /opt/cloudera-manager/cm-5.15.0/lib64
root 27902 2 0 01:26 ? 00:00:00 [kworker/0:3]
root 29111 2 0 01:34 ? 00:00:00 [kworker/0:1]
root 29747 2 0 01:39 ? 00:00:00 [kworker/0:0]
root 30113 2 0 01:42 ? 00:00:00 [kworker/0:2]
root 30304 1211 0 01:44 pts/1 00:00:00 ps -ef
[root@cdh01 ~]# su - hdfs
[hdfs@cdh01 ~]$ hdfs dfsadmin -safemode leave
Safe mode is OFF
解決方法 二、
到伺服器上修改hadoop的配置檔案:conf/hdfs-core.xml, 找到 dfs.permissions 的配置項 , 將value值改為 false
在conf/hdfs-site.xml中加入
dfs.permissions
false
解決辦法三、
clouder manager 在web上操作流程:
1)增加角色:HDFS->配置->檢查HDFS 許可權dfs.permissions這項不要打勾->儲存更改->重啟hdfs ,之後就可以用root使用者;
4、建立 Hive Metastore 資料庫表 Failed to Create Hive Metastore Database Tables.
【問題分析】
安裝Hive,或oozie的時,因為我們使用了MySql作為hive/oozie的後設資料儲存,hive/oozie預設沒有帶mysql的驅動,需要新增 mysql驅動檔案;
【解決方法】
cp /usr/local/src/mysql-connector-java.jar /opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/hive/lib
cp /usr/local/src/mysql-connector-java.jar /opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/oozie/lib/
cp /usr/local/src/mysql-connector-java.jar /var/lib/oozie/
5、Caused by: org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=EXECUTE, inode="/tmp":hdfs:supergroup:d-wx------
從中很容易看出是因為當前執行Spark Application的使用者沒有Hdfs“/user”目錄的寫入許可權。這個問題無論是在Windows下還是Linux下提交Spark Application都經常會遇到。常見的解決方法有以下幾種。
- 關閉Hdfs的安全檢查(permission checking):將hdfs-xml中 dfs.permissions 屬性的值設定為 false 。但是這種方法的弊端是會導致Hdfs系統中所有的安全特性都被禁用,使Hdfs的安全性降低。
-
Hdfs的使用者許可權是與本地檔案系統的使用者許可權繫結在一起的,根據錯誤中的
Permission denied: user=root, access=
EXECUTE, inode="/
tmp":root:supergroup:
d-wx------我們可以發現,Hdfs中的/user目錄是屬於supergroup組裡的root使用者的。因此我們可以想到用兩種方法解決這個問題:
修改執行操作的使用者為該目錄所屬的使用者。但是這種方法的弊端在於,與Hdfs進行互動的使用者可能有很多,這會導致經常修改執行類似操作的使用者。因此,個人推薦使用第三種方法:
-
如果是Linux環境,將執行操作的使用者新增到supergroup使用者組。
groupadd supergroup
usermod -a -G supergroup root
- 如果是Windows使用者,在hdfs namenode所在機器新增新使用者,使用者名稱為執行操作的Windows使用者名稱,然後將此使用者新增到supergroup使用者組。
adduser Administrator
groupadd supergroup
usermod -a -G supergroup Administrator
- 這樣,以後每次執行類似操作可以將檔案寫入Hdfs中屬於Administrator使用者的目錄內,而不會出現上面的Exception。
6、啟動Hive時報錯:
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive. Name node is in safe mode.
解決方法:hdfs dfsadmin -safemode leave ;
7、主機執行狀況不良
解決方法:
# 報錯主機執行:
# rm -rf /opt/cloudera-manager/cm-5.15.0/lib/cloudera-scm-agent/*
附:CDH安裝失敗,如何重新安裝
1> 刪除Agent節點的UUID
# rm -rf /opt/cloudera-manager/cm-5.15.0/lib/cloudera-scm-agent/*
2> 清空主節點CM資料庫
進入主節點的Mysql資料庫,然後drop database cm;
3> 刪除Agent節點namenode和datanode節點資訊
# rm -rf /dfs/nn/*
# rm -rf /dfs/dn/*
4> 在主節點上重新初始化CM資料庫
5> 執行啟動指令碼
Server節點:# /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-server start
Agent節點:# /opt/cloudera-manager/cm-5.15.0/etc/init.d/cloudera-scm-agent start
即可通過Server節點的7180埠重新進行CDH的安裝 http://master:7180/cmf/login。
相關文章
- CDH安裝大資料叢集大資料
- 大資料叢集搭建 – 2. CDH叢集安裝 – NTP,MYSQL,nginx安裝大資料MySqlNginx
- 離線安裝Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(七)介面安裝CloudH5
- hadoop-2.5.0-cdh5.3.6叢集搭建HadoopH5
- 大資料之CDH叢集搭建大資料
- 大資料叢集搭建 – 1. CDH叢集安裝 – 環境準備大資料
- cdh 叢集安裝
- Cassandra安裝及分散式叢集搭建分散式
- CDH版本大資料叢集下搭建Avro(hadoop-2.6.0-cdh5.5.4.gz + avro-1.7.6-cdh5.5.4.tar.gz的搭建)...大資料VRHadoopH5
- Mac 使用 docker 搭建 kafka 叢集 + Zookeeper + kafka-managerMacDockerKafka
- cloudera manager server遷移CloudServer
- 【詳細教程】Linux安裝redis並搭建叢集LinuxRedis
- 01-k8s叢集搭建 安裝KubeSphereK8S
- 搭建kubernetes 叢集的安裝過程和方法
- 安裝Kafka叢集Kafka
- 安裝Consul叢集
- 虛擬機器Hadoop叢集搭建5安裝Hadoop虛擬機Hadoop
- 學習CDH叢集環境的搭建(虛擬機器可演示)虛擬機
- 完整安裝always on叢集
- 快速安裝 kafka 叢集Kafka
- 0038-如何在CDH叢集安裝Anaconda&搭建Python私有源Python
- 【工具-Nginx】從入門安裝到高可用叢集搭建Nginx
- CDH - [02] 安裝部署
- 搭建zookeeper叢集(偽叢集)
- cloudera-manager 設定 JAVA_HOMECloudJava
- redis-3.0.6 安裝叢集Redis
- redis 5.0 叢集的安裝Redis
- 安裝Zookeeper和Kafka叢集Kafka
- 詳盡的 Elasticsearch7.X 安裝及叢集搭建教程Elasticsearch
- CDH 5.13.0安裝Spark 2.2Spark
- zookeeper叢集及kafka叢集搭建Kafka
- Cloudera Manager 前後端分離部署方法Cloud後端
- Zookeeper3.4.14(單叢集)、Kafka_2.12-2.2.2(叢集)安裝Kafka
- Redis Manager 接入已經存在的叢集Redis
- Redis Manager 叢集管理與節點管理Redis
- Ubuntu上kubeadm安裝Kubernetes叢集Ubuntu
- Redis安裝+叢集+效能監控Redis
- CentOS7 安裝PG叢集CentOS