以前徹底沒有接觸過大數據相關的東西,都是書上啊,媒體上各類吹噓啊,我對大數據,集羣啊,分佈式計算等等概念真是高山仰止,充滿了仰望之情,以爲這些東西是這樣的:html
當我搭建的過程當中,發現這些東西是這樣的:java
對於初學者來講,我認爲缺點以下:node
CDH集羣測試主要包括如下幾個方面的內容:python
1.裝機(pxe),搭建服務器集羣基礎環境
2.安裝CDH集羣,調試集羣的健康情況,使集羣可用
3.測試集羣性能,優化集羣,使用測試框架(如Intel的HiBench框架)測試集羣性能linux
上一篇文章,咱們已經介紹了集羣安裝操做系統的大殺器:git
pxe無人值守安裝linux機器筆記github
在批量安裝完畢系統以後,本節主要圍繞搭建CDH集羣的基礎建設進行介紹,基礎建設簡稱基建,主要是爲了支撐CDH集羣后序工做流暢進行的一系列Linux系統的設置工做,基礎建設工做沒有作好,後面安裝使用集羣過程當中會出現不少莫名奇妙的錯誤。基建主要包括,免密登陸,時間同步,格式化硬盤,掛載目錄等一些設置,下面爲你們分別介紹:算法
新建一個host文件裏面逐行設置爲主機ip
eg.sql
192.168.1.1
192.168.1.2
192.168.1.3shell
新建一個自定義腳本文件:
#!/bin/sh
host= `cat host`
for i in $host
do
echo $i
#將須要分發的命令複製在此處
Done
配置免密碼登陸
1. 執行ssh-keygen命令,點擊兩次「回車」,生成/root/.ssh/id_rsa.pub文件;(使用腳本分發下面兩條命令)
2. cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
3. scp -r /root/.ssh $hostname:/root/
修改默認語言爲英文
vi /etc/sysconfig/i18n
LANG=」en_US.UTF-8」
修改host文件
scp /etc/hosts root@$i:/etc
關閉防火牆以及SELinux
ssh $i ‘service iptables stop’
ssh $i ‘chkconfig iptables off’
ssh $i ‘service ip6tables stop’
ssh $i ‘chkconfig ip6tables off’
ssh $i ‘setenforce 0’
ssh $i ‘echo ‘service iptables stop’ >> /etc/rc.local’
ssh $i ‘echo ‘service ip6tables stop’ >> /etc/rc.local’
ssh $i ‘sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config’
同步時間 啓動ntp服務,每5分鐘向服務器同步一次(還需修改時間服務器上的部分配置,具體請百度)
ssh $i ‘cat >>/var/spool/cron/root << EOF
*/5 * * * * /usr/sbin/ntpdate serverIP> /dev/null 2>&1
EOF’
ssh $i ‘echo ‘SYNC_HWCLOCK=yes’ >> /etc/sysconfig/ntpd’
ssh $i ‘hwclock -w’
修改用戶句柄限制
ssh $i ‘cat >> /etc/security/limits.conf << EOF
Hadoop soft nofile 65000
hadoop hard nofile 65000
hadoop soft nproc 401408
hadoop hard nproc 401408
* soft nofile 65000
* hard nofile 65000
* soft nproc 401408
* hard nproc 401408
EOF’
創建掛載目錄(根據本身的硬盤個數)
ssh $i ‘mkdir /data01 /data02 /data03 /data04 /data05 /data06 /data07 /data08 /data09 ‘
格式化硬盤(需批量執行,此處腳本有待升級)
ssh $i
‘parted /dev/sdb mklabel gpt
yes
parted /dev/sdb mkpart primary 0% 100%
mkfs.ext4 -T largefile /dev/sdb1
修改/etc/fstab文件
ssh $i ‘cat >> /etc/fstab << EOF
/dev/sdb1 /data01 ext4 defaults,noatime 0 0
掛載目錄
ssh $i
‘mount /dev/sdb1 /data01
關閉swap交換分區
ssh $i ‘swapoff -a’
ssh $i ‘sysctl -w vm.swappiness=0’
ssh $i ‘echo ‘vm.swappiness=0’ >> /etc/sysctl.conf’
關閉大內存頁面
ssh $i ‘cat >> /sys/kernel/mm/transparent_hugepage/defrag << EOF
never
EOFssh $i ‘cat >> /etc/rc.local << EOF
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
EOF
卸載自帶的Java環境,能夠根據本身的java版本卸載
檢查集羣機器是否安裝過openJDK,若是有安裝過,請卸載,執行命令 :
rpm -qa | grep jdk
rpm -e xxx #xxx爲上一步輸出的rpm包名ssh $i
‘rpm -e –nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e –nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
rpm -e –nodeps java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e –nodeps java-1.6.0-openjdk-javadoc-1.6.0.0-1.66.1.13.0.el6.x86_64’
安裝pscp和scala包
ssh $i ‘rpm -i /root/rpms/pssh-2.3.1-5.el6.noarch.rpm /root/rpms/scala-2.10.4.rpm’
配置java1.8.0_66環境
scp -r /usr/java/jdk1.8.0_66 root@$i:/usr/java/
ssh $i ‘rm -rf /usr/java/lastest’
ssh $i ‘ln -s /usr/java/jdk1.8.0_66 /usr/java/lastest’ssh $i ‘cat >> /etc/profile << EOF
JAVA_HOME=/usr/java/jdk1.8.0_66
CLASS_PATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
export JAVA_HOME
PATH=\$HOME/bin:\$JAVA_HOME/bin:\$PATH
export PATH
export CLASS_PATH
EOF’scp /etc/profile root@$i:/etc/
ssh $i ‘source /etc/profile’done
時間同步
ssh $i ‘service ntpd stop
ntpdate lcgm2
ssh $i ‘hwclock -w’
ssh $i ‘chkconfig ntpd on’
done
配置yum源,開啓http服務
Yum源先mount在var/www/html/下面,在
/etc/yum.repos.d/rhel-source.repo文件修改內容
一些可能用到的命令:
創建多級目錄: mkdir -p /x/xx
查看系統是否開啓cloudera相關服務:chkconfig –list|grep cloudera
查看eth0網卡網絡速度:ethtool eth0|grep -i speed
在線安裝方式因爲須要安裝的安裝包過大,時間可能很是長,建議你們下載安裝包進行離線安裝。主要安裝Cloudera Manager Server 和Agent。
在cloudrea下載離線倉庫,下載地址
下載cm5:
https://archive.cloudera.com/cm5/repo-as-tarball/5.8.0/cm5.8.0-centos6.tar.gz
下載cdh5:
https://archive.cloudera.com/cdh5/parcels/5.8.0/
列表:
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
manifest.json
下載驗證:https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.8.0/repodata/
下載安裝腳本:
http://archive.cloudera.com/cm5/installer/latest/cloudera-manager-installer.bin
cloudera manager的目錄默認位置在/opt下,解壓:tar xzvf cloudera-manager*.tar.gz將解壓後的cm-5.*和cloudera目錄放到/opt目錄下(相似在windows把軟件安裝在D:/software)。
爲Cloudera Manager 5創建數據庫,能夠用MySQL,或者自帶的postgresql ,本文采用自帶的數據庫進行測試。
配置離線倉庫地址:
cdh5目錄結構:
cm5目錄結構:
chmod u+x cloudera-manager-installer.bin,而後./*.bin該文件相關啓動腳本,就能夠進入安裝界面進行安裝啦。
service cloudera-scm-server start (這個啓動有點慢,能夠關注日誌變更狀況 )
service cloudera-scm-agent start
其中,日誌所在路徑是
/var/log/cloudera-scm-server/cloudera-scm-server.log
啓動server後,使用:
/sbin/iptables -I INPUT -p tcp –dport 7180 -j ACCEPT ( 打開7180端口 )
2.輸入須要安裝集羣的機器IP地址,包括Cloudera Manager Server 機器。
3.選擇集羣的安裝方式,選擇使用數據包,CDH版本選擇自定義,並輸入yum源地址(基建中已經配置了的)
(上圖連接地址https可能會出錯)
升級過程當中遇到的問題
提示Error Cannot retrieve repository metadata [repomod.xml] for cloudera-cdh5.Please verify its path and try again
(1) 檢查機器的yum及cloudera的yum源配置是否正確
(2) 在Cloudera升級步驟(5)中填寫的apache上cm5包地址是否正確,協議應該使用http而不是https,否則就會出現這種錯誤
(3) 若沒有顯示本地parcel包,多是路徑填寫錯誤,能夠根據配置的遠程yum地址從新填寫。
4.集羣安裝狀態,能夠看到每臺集羣的安裝狀態,若是正常則進入下一步。
5.選擇要安裝的CDH組件,咱們選擇安裝HBase、HDFS、Hive、Spark、YARN、Zookeeper服務。點擊繼續(hibench測試主要須要這幾個組件),角色服務分配參考以下:
echo 0> /proc/sys/vm/swappiness
王道就是有錯就看日誌調試。
7.選擇集羣機器的角色分配,對於默認的選擇均可以選擇在Master機器上,固然像Second NameNode能夠選擇在非NameNode機器上。注意Cloudera Management Service都選Master。
8.數據庫配置。根據建立數據表選擇所對應的服務便可。
9.集羣設置。選擇默認,集羣開始安裝,完成,訪問集羣serverIP:7180/cmf,ok。
檢查集羣中的各個主機的THG(對虛擬化等的內存資源分配是有好處的,可是對hadoop離線計算IO密集型操做是沒有優點的,關閉THG可加快處理速度)
1.查看THG
cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
2.關閉THG
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
vm.swappiness值的範圍爲0~100,做用是控制應用數據在物理內存和虛擬內存之間的交換,值越低,交換的越少。默認值爲60。
查看集羣各個主機的此參數值:
cat /proc/sys/vm/swappiness
建議調整值爲1:
sysctl -w vm.swappiness=1
點擊HDFS -> 配置 -> 高級:hdfs-site.xml 的 HDFS 服務高級配置代碼段(安全閥),加入配置使用公平隊列
<property> <name>ipc.8020.callqueue.impl</name> <value>org.apache.hadoop.ipc.FairCallQueue</value> </property>
關於Yarn內存分配與管理,主要涉及到了ResourceManage(集羣資源調度協調)、ApplicationMatser(任務資源配置)、NodeManager(YARN節點代理配置)這幾個概念,相關的優化也要牢牢圍繞着這幾方面來開展。
點擊Yarn -> 資源管理:
設置ApplicationMaster Java最大堆棧:800M(AM內存默認1G)
容器內存yarn.nodemanager.resource.memory-mb
計算一個節點須要分配的容器內存方法:
主機內存-操做系統預留內存(12G) - Cloudera Manager Agent(1G) - HDFS DN(1G) – Yarn NM(1G)
= 主機內存-15G
若是安裝了hive.需減掉12G左右內存.
若是安裝了hbase.還需減掉12-16G內存。
若是安裝impala.還需減掉至少16G內存。
例:64G內存主機,若是安裝了hbase,hive,則建議分配的容器內存大約爲:25~30G
容器虛擬CPU內核yarn.nodemanager.resource.cpu-vcores
計算一個節點須要分配的容器虛擬內核方法:
(主機cpu核數 – 系統預留1 – Cloudera1 – HDFS1 – Yarn NN 1) * 4
Hbase : -1
例:24核機器,爲yarn分配可用cpu核數大約20核左右,按照 核數:處理任務數=1:4(比例可酌情調整),建議分配爲80。因爲本次集羣CPU計算能力沒達到官網建議的比例的要求,大約分配的比例爲1:2,分配的核數爲30核左右。
高級配置中:mapred-site.xml 的 MapReduce 客戶端高級配置代碼段(安全閥)
<property> <name>mapreduce.tasktracker.outofband.heartbeat</name> <value>true</value> </property>
點擊oozie –> 配置 -> 高級 : oozie-site.xml 的 Oozie Server 高級配置代碼段(安全閥),增長配置:
<property> <name>oozie.launcher.fs.hdfs.impl.disable.cache</name> <value>true</value> </property> <property> <name>oozie.action.max.output.data</name> <value>5000000</value> </property>
致使上面錯誤是oozie的jaskson版本低,替換成1.9.13版本便可
只替換jackson-mapper-asl和jackson-core-asl便可
替換步驟:
1.
先將192.168.188.13的兩jar包拷貝到/opt/cloudera/parcels/CDH/lib/oozie下
2.
find . -name 「jackson*」 | grep -e 「^./lib」 | xargs -i dirname {} | sort |uniq | xargs -i cp jackson-* {}
3.
find . -name 「jackson*」 | grep -e 「^./lib」 | xargs -i dirname {} |sort | uniq | xargs -i mv {}/jackson-mapper-asl-1.8.8.jar .
4.
find . -name 「jackson*」 | grep -e 「^./lib」 | xargs -i dirname {} |sort | uniq | xargs -i mv {}/jackson-core-asl-1.8.8.jar .
1.DRF策略
默認配置下,CPU核數和內存是1:1G的比例來啓動任務的。可經過調整參數yarn.nodemanager.resource.memory-mb進行調整
2.每一個Container的分配多少內存和cpu
當應用程序向resource manager 申請資源(即申請container )時, RM分配給一個container 多大的內存是按照一個最小單位進行分配的。 例如, 咱們設置分配的最小單位爲4GB, 則RM分配出來的container的內存必定是4G的倍數。 假設如今有一個程序向RM申請 5.1G的內存, 則RM會分配給它一個8GB的container去執行。
yarn.scheduler.minimum-allocation-mb=4096
在實際執行map reduce的job中, 一個container其實是執行一個map 或者reduce task的jvm的進程。 那麼這個jvm在執行中會不斷的請求內存,假設它的物理內存或虛擬內存佔用超出了container的內存設定, 則node manager 會主動的把這個進程kill 掉。
這裏須要澄清一點, JVM使用的內存實際上分爲虛擬內存和物理內存。 JVM中全部存在內存中的對象都是虛擬內存, 但在實際運行中只有一部分是實際加載在物理內存中的。 咱們使用linux的top 能夠看到 VM, RES, 前者是虛擬內存,後者能夠當作近似是實際佔用的物理內存。 所以在設置mapreduce的task的 jvm opts 參數時, 應將heap size 設置的比container容許的最大虛擬內存小。 這樣jvm 不會由於申請過多的內存而被node manager 強制關閉。 固然設置最大heap size 若是在執行中被超過, jvm就會報 OutOfMemoryException。
同時還有一個參數,設定了RM能夠分配的最大的container是多大。 假設應用程序向RM申請的資源超過了這個值, RM會直接拒絕這個請求。
yarn.scheduler.maximum-allocation-mb
在大數據領域中,集羣的性能很大程度上我認爲主要是由總體的網絡,數據吞吐量決定的,在使用HiBench測試時候發現,使用傳統電口千兆網絡的任務運行時間比光網任務運行時間要慢10s左右。HiBench的基準測試集是用來衡量一個大數據平臺(基於Hadoop)性能的基準測試集,包含了文件系統的IO性能,系統的批處理吞吐,數據倉庫用的OLAP分析算子,機器學習的處理能力,以及流處理系統的能力。
切換到光纖後,須要修改機器機器ip,這時候cdh竟然無法啓動了,百度以後,發現若是使用自帶數據庫postgresql,須要修改hosts表中記錄的元數據信息:修改CDH集羣ip
hibench做爲一個測試hadoop的基準測試框架,提供了對於hive:(aggregation,scan,join),排序(sort,TeraSort),大數據基本算法(wordcount,pagerank,nutchindex),機器學習算法(kmeans,bayes),集羣調度(sleep),吞吐(dfsio),以及新加入5.0版本的流測試:
we provide following streaming workloads for SparkStreaming, Storm .
一個完整的TeraSort測試須要按如下三步執行:
全部hibench測試基本都是這樣的流程,生成數據,運行,輸出結果。
從GitHub下載HiBench開源包,本篇會基於HiBench-5.0爲例。https://github.com/intel-hadoop/HiBench。若是是基於CDH 5.5測試,建議使用HiBench-5.0,其中包含了Spark 1.5的編譯包。
編譯
<!-- <module>stormbench</module> --> <!-- <module>samzabench</module> -->
配置
編輯 HiBench Configuration File:
cd ${HIBENCH_HOME}/conf
cp 99-user_defined_properties.conf.template 99-user_defined_properties.conf
編譯配置文件,以下修改一些參數:
hibench.hadoop.home /opt/cloudera/parcels/CDH/lib/hadoop
hibench.hadoop.mapreduce.home /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce
hibench.spark.home /opt/cloudera/parcels/CDH/lib/spark
hibench.hdfs.master hdfs://cdh-node-11.cdhtest.com
hibench.hadoop.configure.dir /etc/hadoop/conf
hibench.masters.hostnames master # Resource Manager addresses
hibench.slaves.hostnames hostname…# Node Manager addresses
hibench.spark.master yarn-client
hibench.spark.version spark1.6
spark.kryoserializer.buffer 2000m # 不然會出現大量spark.kryoserializer.buffer.mb被啓用的警告
hibench.streamingbench.zookeeper.host zookeeper-hostnames
hibench.streamingbench.brokerList all-hostnames
hibench.streamingbench.kafka.home /opt/cloudera/parcels/KAFKA
修改benchmarks.lst文件,只運行有必要的測試集,例:
#aggregation
#join
#kmeans
#pagerank
#scan
#sleep
sort
wordcount
#bayes
terasort
#nutchindexing
dfsioe
修改language.lst文件,只運行有必要的語言
cd ${HIBENCH_HOME}/conf
在language.lst文件中,將如下兩行刪除
spark/java
spark/Python
修改load-config.py文件,確保Bench在運行時能找到惟一的包:
$HiBench-Home/bin/functions/load-config.py
將hadoop-mapreduce-client-jobclient*-tests.jar改成hadoop-mapreduce-client-jobclient-tests.jar
Bench在運行時有一些固化的目錄和CDH不一致,須要創建目錄引用
創建目錄引用
mkdir -p /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/share/hadoop
cd /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/share/hadoop
ln -sf /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce mapreduce2
Bench會在HDFS根目錄下生成文件,將HDFS的根目錄權限修改成777:
sudo -u hdfs hadoop fs -chmod 777 /
(可選)若是在Kerberos啓用的情況下,請增長如下步驟:
# 設置環境變量
export HIBENCH_HOME=/root/Downloads/HiBench-master
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
export JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH:/opt/cloudera/parcels/CDH/lib/hadoop/lib/native
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cloudera/parcels/CDH/lib/hadoop/lib/native
export SPARK_YARN_USER_ENV=」JAVA_LIBRARY_PATH=$JAVA_LIBRARY_PATH,LD_LIBRARY_PATH=$LD_LIBRARY_PATH」# 從新登陸Kerberos
kdestroy
kinit -k -t
運行
${HIBENCH_HOME}/bin/run-all.sh
**優化基本原則** 在固定數據量的前提下,通常設置成讓MapReduce做業在一輪Map、Reduce內結束,不然會增長MapReduce進程的調度開銷。但若是輸入的數據量過大,有可能會由於單個Map或者Reduce的內存消耗過大而到時嚴重的GC問題,這個須要在運行時對Map或者Reduce任務進程須要監測。 **YARN基本配置**
– | – |
---|---|
NodeManager | Container vCores數量就是系統的virtual core的數量 Container Memory配置成節點上可用內存的75%到80%之間(如128GB的機器,能夠設置96GB) |
ResourceManager | Fair Scheduler調度器 最小容器內存1GB 最小容器CPU 1個核 最大容器內存=NodeManager Container內存的75%~80% 最大容器CPU=NodeManager Container CPU的75%~80% 增量內存512MB 增量CPU 1個核 |
Gateway | mapreduce.map/reduce.max.mb = 2GB mapreduce.map/reduce.java.opts = max.mb * 0.8 |
**1.相關目錄**
/var/log/cloudera-scm-installer : 安裝日誌目錄。
/var/log/* : 相關日誌文件(相關服務的及CM的)。
/usr/lib64/cmf/ : Agent程序代碼。
/var/lib/cloudera-scm-server-db/data : 內嵌數據庫目錄。
/usr/bin/postgres : 內嵌數據庫程序。
/etc/cloudera-scm-agent/ : agent的配置目錄。
/etc/cloudera-scm-server/ : server的配置目錄。
/etc/clouder-scm-server/db.properties 默認元數據庫用戶名密碼配置
/opt/cloudera/parcels/ : Hadoop相關服務安裝目錄。
/opt/cloudera/parcel-repo/ : 下載的服務軟件包數據,數據格式爲parcels。
/opt/cloudera/parcel-cache/ : 下載的服務軟件包緩存數據。
/etc/hadoop/* : 客戶端配置文件目錄。
**2.配置**
配置文件放置於/var/run/cloudera-scm-agent/process/目錄下。如:
/var/run/cloudera-scm-agent/process/193-hdfs-NAMENODE/core-site.xml
這些配置文件是經過Cloudera Manager啓動相應服務(如HDFS)時生成的,內容從數據庫中得到(即經過界面配置的參數)。
在CM界面上更改配置是不會當即反映到配置文件中,這些信息會存儲於數據庫中,等下次重啓服務時纔會生成配置文件。且每次啓動時都會產生新的配置文件。
CM Server主要數據庫爲scm基中放置配置的數據表爲configs。裏面包含了服務的配置信息,每一次配置的更改會把當前頁面的全部配置內容添加到數據庫中,以此保存配置修改歷史。
scm數據庫被配置成只能從localhost訪問,若是須要從外部鏈接此數據庫,修改
vim /var/lib/cloudera-scm-server-db/data/pg_hba.conf
文件,以後重啓數據庫。運行數據庫的用戶爲cloudera-scm。
直接查詢scm數據庫的configs數據表的內容。
訪問REST API: http://hostname:7180/api/v4/cm/deployment,返回JSON格式部署配置信息。
CM爲每一個服務進程生成獨立的配置目錄(文件)。全部配置統一在服務端查詢數據庫生成(由於scm數據庫只能在localhost下訪問)生成配置文件,再由agent經過網絡下載包含配置文件的zip包到本地解壓到指定的目錄。
配置修改
CM對於須要修改的配置預先定義,對於沒有預先定義的配置,則經過在高級配置項中使用xml配置片斷的方式進行配置。而對於/etc/hadoop/下的配置文件是客戶端的配置,能夠在CM經過部署客戶端生成客戶端配置。
數據庫
Cloudera manager主要的數據庫爲scm,存儲Cloudera manager運行所須要的信息:配置,主機,用戶等。
CM結構
CM分爲Server與Agent兩部分及數據庫(自帶更改過的嵌入Postgresql)。它主要作三件事件:
管理監控集羣主機。
統一管理配置。
管理維護Hadoop平臺系統。
實現採用C/S結構,Agent爲客戶端負責執行服務端發來的命令,執行方式通常爲使用python調用相應的服務shell腳本。Server端爲Java REST服務,提供REST API,Web管理端經過REST API調用Server端功能,Web界面使用富客戶端技術(Knockout)。
Server端主體使用Java實現。
Agent端主體使用Python, 服務的啓動經過調用相應的shell腳本進行啓動,若是啓動失敗會重複4次調用啓動腳本。
Agent與Server保持心跳,使用Thrift RPC框架。
升級
在CM中能夠經過界面嚮導升級相關服務。升級過程爲三步:
1.下載服務軟件包。
2.把所下載的服務軟件包分發到集羣中受管的機器上。
3.安裝服務軟件包,使用軟連接的方式把服務程序目錄連接到新安裝的軟件包目錄上。
卸載
sudo /usr/share/cmf/uninstall-scm-express.sh, 而後刪除/var/lib/cloudera-scm-server-db/目錄,否則下次安裝可能不成功。
開啓postgresql遠程訪問 CM內嵌數據庫被配置成只能從localhost訪問,若是須要從外部查看數據,數據修改vim /var/lib/cloudera-scm-server-db/data/pg_hba.conf文件,以後重啓數據庫。運行數據庫的用戶爲cloudera-scm。