1. 程式人生 > >centos7安裝cdh5.12.1

centos7安裝cdh5.12.1

xumingxiang 大資料 2017-10-04  1,738 次瀏覽 cdhhadoopLinux 沒有評論

準備4臺機器,記憶體,磁碟儘量給足

node1(master)          192.168.231.128                  記憶體16G,磁碟50G

node2                         192.168.231.129                  記憶體3G,磁碟50G

node3                         192.168.231.130                  記憶體3G,磁碟50G

node4                         192.168.231.131                   記憶體3G,磁碟50G

為了儘可能減少重複勞動,先在node1上配置好所有節點都需要進行的相同操作,然後克隆出其他3臺虛擬機器 node2,node3,node4

 一:下載所需的安裝包

二:解除安裝openjdk

CentOS自帶OpenJdk,不過執行CDH5需要使用Oracle的JDK,需要Java 7的支援。

解除安裝自帶的OpenJdk,使用rpm -qa | grep java查詢java相關的包,使用rpm -e –nodeps 包名解除安裝之。

三:去Oracle的官網下載jdk安裝,最後配置環境變數。

  1. cd /app
  2. tar -zxvf jdk-8u144-linux-x64.tar.gz
  3. vim /etc/profile
  4. export JAVA_HOME=/app/jdk1.8.0_144
  5. export PATH=$JAVA_HOME/bin:$PATH
  6. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  7. source /etc/profile

驗證是否安裝成功

  1. [[email protected] app]# java -version
  2. java version "1.8.0_144"
  3. Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

 四:關閉防火牆

  1. service iptables stop #臨時關閉
  2. chkconfig iptables off #重啟後生效
  3. systemctl stop firewalld.service #停止firewall
  4. systemctl disable firewalld.service #禁止firewall開機啟動

五:SELinux

set enforce 0 (臨時生效)

修改 vim /etc/selinux/config 下的

SELINUX=disabled (重啟後永久生效)

  1. # This file controls the state of SELinux on the system.
  2. # SELINUX= can take one of these three values:
  3. # enforcing - SELinux security policy is enforced.
  4. # permissive - SELinux prints warnings instead of enforcing.
  5. # disabled - No SELinux policy is loaded.
  6. SELINUX=disabled
  7. # SELINUXTYPE= can take one of these two values:
  8. # targeted - Targeted processes are protected,
  9. # mls - Multi Level Security protection.
  10. SELINUXTYPE=targeted

六:安裝mysql

七:所有節點配置NTP服務

(這一步暫時可以跳過,但是在叢集啟動以後,會提示時間不同步)

叢集中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。 具體思路如下:

master節點作為ntp伺服器與外界對時中心同步時間,隨後對所有datanode節點提供時間同步服務。

所有datanode節點以master節點為基礎同步時間。

所有節點安裝相關元件:

  1. yum install ntp

啟動 ntp:

  1. service ntpd start

設定開機啟動:

  1. chkconfig ntpd on

檢查是否設定成功:chkconfig –list ntpd其中2-5為on狀態就代表成功。

可以通過以下命令先進行時間同步:

  1. ntpdate us.pool.ntp.org

主節點配置(master節點)

  1. vim /etc/ntp.conf

ntp服務只有一個配置檔案,配置好了就OK。 這裡只給出有用的配置,不需要的配置都用#注掉,這裡就不在給出(大部分把#去掉即可,不需要新增):

  1. driftfile /var/lib/ntp/drift
  2. # Permit time synchronization with our time source, but do not
  3. # permit the source to query or modify the service on this system.
  4. restrict default kod nomodify notrap nopeer noquery
  5. restrict -6 default kod nomodify notrap nopeer noquery
  6. # Permit all access over the loopback interface. This could
  7. # be tightened as well, but to do so would effect some of
  8. # the administrative functions.
  9. restrict 127.0.0.1
  10. restrict -6 ::1
  11. # Hosts on local network are less restricted.
  12. restrict 192.168.3.0 mask 255.255.255.0 nomodify notrap
  13. # Use public servers from the pool.ntp.org project.
  14. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  15. server 0.centos.pool.ntp.org iburst
  16. server 1.centos.pool.ntp.org iburst
  17. server 2.centos.pool.ntp.org iburst
  18. server 3.centos.pool.ntp.org iburst

配置檔案完成,儲存退出,啟動服務,執行如下命令:service ntpd start

檢查是否成功,用ntpstat命令檢視同步狀態,出現以下狀態代表啟動成功:

synchronisedto NTP server () at stratum 2time correct towithin74 mspolling server every 128 s

如果出現異常請等待幾分鐘,一般等待5-10分鐘才能同步。

在其他節點,直接執行

  1. ntpdate -u node1

(主節點ntp伺服器) 即可,和node1同步

這裡可能出現同步失敗的情況,請不要著急,一般是本地的ntp伺服器還沒有正常啟動,一般需要等待5-10分鐘才可以正常同步。啟動服務:service ntpd start

因為是連線內網,這次啟動等待的時間會比master節點快一些,但是也需要耐心等待一會兒。

八:克隆虛擬機器

九:所有節點修改網路配置

修改主機名:

  1. vim /etc/sysconfig/network
  2. HOSTNAME=node1
  3. vim /etc/hostname
  4. node1

注意 :/etc/hostname 不可以有其他和主機名無關的內容 #註釋也不行,下面的就是錯誤的

#localhost.localdomain

node1

十:所有節點配置host

修改ip與主機名的對應關係:

  1. vim /etc/hosts
  2. 192.168.231.128 node1
  3. 192.168.231.129 node2
  4. 192.168.231.130 node3
  5. 192.168.231.131 node4

十一:所有節點設定ssh無密碼登陸,打通SSH

執行

  1. ssh-keygen -t rsa

一路回車,生成無密碼的金鑰對。

將公鑰新增到認證檔案中:

  1. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

並設定authorized_keys的訪問許可權:

  1. chmod 600 ~/.ssh/authorized_keys

通過scp命令將各節點的認證檔案拷貝到所有其他節點並追加到authorized_keys,使得各節點能夠相互訪問。具體如下:

在node1上執行

  1. ssh-keygen -t rsa
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node2.pub
  4. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node1.pub
  5. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node1.pub

注意,如果sshd 不是預設的22埠,這需要加上埠號,如:scp ~/.ssh/id_rsa.pub -p 45685 [email protected]:~/.ssh/id_rsa_node1.pub

 在node2上執行

  1. ssh-keygen -t rsa
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node2.pub
  4. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node2.pub
  5. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node2.pub

在node3上執行

  1. ssh-keygen -t rsa
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node3.pub
  4. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node3.pub
  5. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node3.pub

在node4上執行

  1. ssh-keygen -t rsa
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node4.pub
  4. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node4.pub
  5. scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node4.pub

在node1上執行

  1. cat ~/.ssh/id_rsa_node2.pub >> ~/.ssh/authorized_keys
  2. cat ~/.ssh/id_rsa_node3.pub >> ~/.ssh/authorized_keys
  3. cat ~/.ssh/id_rsa_node4.pub >> ~/.ssh/authorized_keys

在node2上執行

  1. cat ~/.ssh/id_rsa_node1.pub >> ~/.ssh/authorized_keys
  2. cat ~/.ssh/id_rsa_node3.pub >> ~/.ssh/authorized_keys
  3. cat ~/.ssh/id_rsa_node4.pub >> ~/.ssh/authorized_keys

在node3上執行

  1. cat ~/.ssh/id_rsa_node1.pub >> ~/.ssh/authorized_keys
  2. cat ~/.ssh/id_rsa_node2.pub >> ~/.ssh/authorized_keys
  3. cat ~/.ssh/id_rsa_node4.pub >> ~/.ssh/authorized_keys

在node4上執行

  1. cat ~/.ssh/id_rsa_node1.pub >> ~/.ssh/authorized_keys
  2. cat ~/.ssh/id_rsa_node2.pub >> ~/.ssh/authorized_keys
  3. cat ~/.ssh/id_rsa_node3.pub >> ~/.ssh/authorized_keys

十二 :開始安裝Cloudera Manager

12.1)在所有節點建立cloudera-scm使用者

  1. useradd --system --home-dir /opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

12.2)安裝Cloudera Manager Server

安裝前先保證機器上安裝了python,不過一般centos7都預設安裝了python2.7.5

主節點解壓安裝

cloudera manager的目錄在/app下,解壓:tar xzvf cloudera-manager*.tar.gz 將解壓後的cm-5.12.1和cloudera目錄放到/opt目錄下:

  1. tar -zxvf /app/cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz -C /opt

12.3)將mysql驅動copy到/opt/cm-5.12.1/share/cmf/lib/中:

  1. cp /app/cdh5.12.1/mysql-connector-java-5.1.44-bin.jar /opt/cm-5.12.1/share/cmf/lib/

12.4)在主節點初始化CM5的資料庫:

啟動mysql,然後

  1. /opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hnode1 -uroot -proot --scm-host node1 scm

在這裡後面的引數分別是:資料庫型別 資料庫名稱 資料庫主機名 資料庫使用者名稱 密碼 –scm-host cmserver主機名 scm scm scm

會要求輸入scm密碼

Enter SCM password: scm

如果是非root使用者,可能會出現下面這樣JAVA_HOME找不到

解決方案:修改scm_prepare_database.sh,在檔案開頭加上

  1. vim /opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh
  2. JAVA_HOME=/app/jdk1.8.0_144
  3. export JAVA_HOME=/app/jdk1.8.0_144

這時我們發現數據庫多了一個cm 的資料庫

並且mysql.user表裡多了一個叫scm的使用者

然後mysql shell 客戶端登入 修改允許scm遠端登入

  1. update user set host = '%' where user = 'scm';

然後授權

  1. GRANT all ON *.* TO 'scm'@'%' ;
  2. GRANT all ON *.* TO 'root'@'%' ;
  3. flush privileges;

重啟mysql

十三:安裝Cloudera Manager Agent

13.1)修改/opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。

13.2)同步Agent到其他所有節點:

  1. scp -r /opt/cm-5.12.1 [email protected]:/opt/

13.3)準備Parcels,用以安裝CDH5

將CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中(如沒有parcel-repo,需要手動建立)

  1. node1 app]# cp CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel /opt/cloudera/parcel-repo/
  2. node1 app]# cp CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 /opt/cloudera/parcel-repo/
  3. node1 app]# cp manifest.json /opt/cloudera/parcel-repo/

相關的檔案如下:

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1

manifest.json

最後將CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1,重新命名為CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha,

這點必須注意,否則,系統會重新下載CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1檔案。

13.4)啟動 cloudera-scm-server

  1. mkdir -p /var/lib/cloudera-scm-server
  2. mkdir -p /var/lib/cloudera-scm-agent
  3. mkdir -p /var/lib/cloudera-scm-server-db/data

在主機節點建立上面的目錄,否則會出錯,7180埠起不來。

主節點通過/opt/cm-5.12.1/etc/init.d/cloudera-scm-server start啟動服務端。

server啟動成功後會多出7180等埠

問題1):啟動server時,顯示OK,但是7180埠沒起來

  1. [[email protected] ~]# service cloudera-scm-server-db status
  2. Redirecting to /bin/systemctl status cloudera-scm-server-db.service
  3. cloudera-scm-server-db.service
  4. Loaded: not-found (Reason: No such file or directory)
  5. Active: inactive (dead)
  6. [[email protected] ~]# service cloudera-scm-server-db start
  7. Redirecting to /bin/systemctl start cloudera-scm-server-db.service
  8. Failed to start cloudera-scm-server-db.service: Unit cloudera-scm-server-db.service failed to load: No such file or directory.

解決辦法:

  1. mkdir -p /var/lib/cloudera-scm-server-db/data

問題2)如果是非root使用者,可能會出現下面這樣JAVA_HOME找不到

修改/opt/cm-5.12.1/etc/init.d/cloudera-scm-server,在檔案開頭加上

  1. JAVA_HOME=/app/jdk1.8.0_144
  2. export JAVA_HOME=/app/jdk1.8.0_144

問題3)非root使用者,啟動顯示OK,但是7180埠起不來,檢視日誌報如下錯誤

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'scm'@'%' to database 'cm'

解決辦法:用mysql shell 客戶端登入 後執行下面命令

grant all on cm.* to 'scm'@'%' identified by 'scm' with grant option;

問題4)非root使用者,啟動顯示OK,但是7180埠起不來,檢視日誌報如下錯誤

  1. 2017-09-28 12:48:52,618 ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: The server storage directory [/var/lib/cloudera-scm-server] doesn't exist.
  2. 2017-09-28 12:48:52,618 ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No read permission to the server storage directory [/var/lib/cloudera-scm-server]
  3. 2017-09-28 12:48:52,618 ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No write permission to the server storage directory [/var/lib/cloudera-scm-server]
  4. 2017-09-28 12:48:54,663 INFO WebServerImpl:org.springframework.web.servlet.handler.SimpleUrlHandlerMapping: Root mapping to handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController]
  5. 2017-09-28 12:48:54,716 INFO WebServerImpl:org.springframework.web.servlet.DispatcherServlet: FrameworkServlet 'Spring MVC Dispatcher Servlet': initialization completed in 2536 ms
  6. 2017-09-28 12:48:54,738 INFO WebServerImpl:com.cloudera.server.web.cmon.JobDetailGatekeeper: ActivityMonitor configured to allow job details for all jobs.
  7. 2017-09-28 12:48:55,813 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: The server storage directory [/var/lib/cloudera-scm-server] doesn't exist.
  8. 2017-09-28 12:48:55,813 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No read permission to the server storage directory [/var/lib/cloudera-scm-server]
  9. 2017-09-28 12:48:55,813 ERROR SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No write permission to the server storage directory [/var/lib/cloudera-scm-server]

解決辦法:

  1. sudo mkdir /var/lib/cloudera-scm-server

13.5)啟動cloudera-scm-agent

所有節點通過/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start啟動Agent服務。 (所有節點都要啟動Agent服務,包括服務端)

我們啟動的其實是個service指令碼,需要停止服務將以上的start引數改為stop就可以了,重啟是restart。

agent啟動成功後會多出19001和9000等埠

agent 有時候第一次啟動後會立馬stop,再啟動一次就好了,沒弄明白什麼原因!

如果啟動報錯可以去 /opt/cm-5.12.1/log/ 檢視錯誤日誌。例如:

啟動時agent時,如果出現“cmf-agent: error: argument –hostname is required”錯誤,則是因為/etc/hosts 和/etc/hostname 的配置沒有對於那個好.

下面是node1上的正確配置

/etc/hosts

#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.231.128 node1

192.168.231.129 node2

192.168.231.130 node3

192.168.231.131 node4

/etc/hostname

node1

注意:啟動server時,不會立即查詢到7180埠,啟動過程比較慢,可能需要等待5-10分鐘

十四:啟動Cloudera Manager

server 和所有節點agent啟動成功後就可以在瀏覽器訪問Cloudera Manager

http://192.168.231.128:7180/cmf/login

預設的使用者名稱和密碼均為admin:

十五:CDH5的安裝配和叢集配置

歡迎頁面版本選擇頁面

我們選擇Cloudera Express免費版,現在已經沒有50個節點的限制

繼續

選擇主機節點

在這裡看到了我們的4個節點node1,node2,node3,node4。勾選所有節點,繼續

假如在安裝的時候出現問題而中斷或重灌,如網路連線中斷,機器宕機,繼續安裝的時候可能會出現查詢不到機器,並且根據ip搜尋機器的時候,出現“當前受管”

的狀態為“是”,安裝失敗的機器不能再選擇了。

先停止所有服務。清除資料庫。

  1. 1> 刪除Agent節點的UUID
  2. rm -rf /opt/cm-5.12.1/lib/cloudera-scm-agent/*
  3. 2> 清空主節點CM資料庫 進入主節點的Mysql資料庫,然後
  4. drop database cm
  5. 3> 在主節點上重新初始化CM資料庫
  6. /opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hnode1 -uroot -proot --scm-host node1 scm

等待一下,連線訪問master:7180即可

叢集安裝

出現以下包名,說明本地Parcel包配置無誤,直接點繼續就可以了。如果此處發現不到parcel包,就重啟所有節點的agent服務,和master的server服務。

如果parcel包不在預設的/opt/cloudera下面,則需要手動配置,如下圖,然後重啟cloudera-scm-server 和各節點的cloudera-scm-agent

繼續,如果配置本地Parcel包無誤,那麼下圖中的已下載,應該是很快就出現了,然後就是耐心等待分配過程就行了,這個過程的速度就取決於節點之間的傳輸速度。

如果安裝過程中出現過中斷再重新安裝可能會出現報錯“一個或多個主機沒有報告其作業系統分配。這可能是由於執行已過期的 Cloudera Manager Agent 版本造成的。請執行 Host Inspector 檢查 Agent 版本。”

這個不要慌,耐心等等就好了

在等待的過程中可以開啟瀏覽器控制檯檢視是否有報錯

等待了半個小時左右可以繼續了

檢測主機正確性

主機檢測結果,除了兩個黃色警告提示,基本沒問題

第一個警告:

Cloudera 建議將 /proc/sys/vm/swappiness 設定為 10。當前設定為 60。使用 sysctl 命令在執行時更改該設定並編輯 /etc/sysctl.conf 以在重啟後儲存該設定。

echo 10 > /proc/sys/vm/swappiness

這樣操作重啟機器還是還原,要永久改變

vim /etc/sysctl.conf

vm.swappiness=10

第二個警告,提示執行命令:

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

執行完畢,重啟後,警告依然,暫時不處理

接下來是選擇安裝服務,選擇自定義,繼續

主機角色分配

我們zokeeper選擇三個節點,hdfs dataNode選擇3個節點 ,繼續

資料庫設定,這一步前先建好相應的資料庫 hive,oozie,hue

點選測試連線之前先拷貝好mysql驅動

  1. cp /app/cdh5.12.1/mysql-connector-java-5.1.44-bin.jar /opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/hive/lib
  2. cp /app/cdh5.12.1/mysql-connector-java-5.1.44-bin.jar /var/lib/oozie

資料庫檢測成功successful,繼續。

如果出現如下錯誤,hue連不上:

這是因為伺服器上缺少了一個元件,安裝一下即可

  1. yum install -y python-lxml

圖15.15 稽核更改,主要是可以設定一些目錄,可以修改成自己想要的,如果修改前提是要先建立目錄,否側hdfs會無法啟動,並且報錯資料夾不存在,並確保訪問許可權。

我這裡保持預設

注意:在進行下一步繼續前我們還要做幾個事情,不然下一步會報錯,會很鬱悶,很無解

1)修改/var/log目錄許可權

  1. chmod -R 777 /var/log

2)修改hadoop-env.sh ,新增JAVA_HOME配置項

vim /opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/hadoop/etc/hadoop/hadoop-env.sh

新增

  1. JAVA_HOME=/app/jdk1.8.0_144
  2. export JAVA_HOME=/app/jdk1.8.0_144

3)編輯 vim /opt/cm-5.12.1/lib64/cmf/service/client/deploy-cc.sh

直接在上面加上

  1. JAVA_HOME=/app/jdk1.8.0_144
  2. export JAVA_HOME=/app/jdk1.8.0_144

所有節點都這樣設定一下!

4)複製mysql驅動

  1. cp /app/cdh5.12.1/mysql-connector-java-5.1.44-bin.jar /opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/hive/lib
  2. cp /app/cdh5.12.1/mysql-connector-java-5.1.44-bin.jar /var/lib/oozie

繼續,首次執行

這一步完成漫長的安裝之旅就結束了。

然後就可以進入管理介面,可能有些元件在安裝過程中沒能啟動成功,那麼在管理介面上可以操作啟動!!

十六:後續設定

16.1) 設定yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb 分別設定為2G ,可在cm管理介面設定

16.2)設定dfs許可權,取消超級使用者限制,可在cm管理介面設定

相關報錯:

1)首次執行命令部署spark客戶端配置報

Failed to deploy client configuration to the cluster.

僅完成 0/3 個步驟。首個失敗:主機 node1 (id=1) 上的客戶端配置 (id=2) 已使用 1 退出,而預期值為 0。

 

解決方法:

  1. find / -type f -name "*cc.sh"

定位到編輯 vim /opt/cm-5.12.1/lib64/cmf/service/client/deploy-cc.sh

直接在上面加上

  1. JAVA_HOME=/app/jdk1.8.0_144
  2. export JAVA_HOME=/app/jdk1.8.0_144

所有節點都這樣設定一下!

然後重新整理頁面再點選重試,否則會出現下面很無腦的報錯

明明檔案是存在的,偏偏說瞎話

2)首次執行命令,建立oozie資料庫表失敗主機 node1 (id= 1) 上的程序 oozie-OOZIE-SERVER-createdbtables (id=57) 通過 1 退出並預期 0

解決辦法:oozie缺少mysql驅動

  1. cp /app/cdh5.12.1/mysql-connector-java-5.1.44-bin.jar /var/lib/oozie

3)HDFS-副本不足的塊

原因:原因是設定的副本備份數與DataNode的個數不匹配。我們在之前理論篇中已經說明了dfs. replication屬性預設是3,也就是說副本數—塊的備份數預設為3份。但是我們這裡叢集只有兩個DataNode。所以導致了達不到目標—副本備份不足。解決方法:這種情況下的修復有2個步驟,1是設定目標備份數為2,2是通過命令更改當前備份數。副本不足和副本過多都可以用這2個步驟解決,主要是跟DataNode的個數對應。設定目標備份數為2點選叢集-HDFS-配置搜尋dfs. replication,設定為2後儲存更改。

dfs.replication這個引數其實只在檔案被寫入dfs時起作用,雖然更改了配置檔案,但是不會改變之前寫入的檔案的備份數。所以我們還需要步驟2在node1中通過命令更改備份數:

  1. su hdfs
  2. hadoop fs -setrep -R 2 /
  3. sudo -u hdfs hadoop fs -setrep -R 2 /

這裡的-R 2的數字2就對應我們的DataNode個數。然後還要重新部署相關客戶端配置,cm會有提示

4)yarn job history 起不來,報“Service org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer failed in state INITED; cause: org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Error creating done directory: [hdfs://node1:8020/user/history/done]”

原因:dfs目錄許可權不夠

解決辦法:

  1. chmod -R 777 /dfs

5)spark啟動出錯命令列執行spark-submit,報錯,java.lang.IllegalArgumentException: Required executor memory (1024+384 MB) is above the max threshold (1024 MB) of this cluster! Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb'在Yarn中同時修改上述兩個引數的值,調整到2G。

相關推薦

centos7安裝cdh5.12.1

xumingxiang 大資料 2017-10-04  1,738 次瀏覽 cdh, hadoop, Linux 沒有評論 準備4臺機器,記憶體,磁碟儘量給足 node1(master)          192.168.231.128          

CDH5.12.1 安裝部署

數據庫連接 eve zookeep license onf tran 根據 info 控制 ###通過http://192.168.50.200:7180/cmf/login 訪問CM控制臺 4.CDH安裝 4.1CDH集群安裝向導 1.admin/admin登陸

CentOS7.1安裝Oracle 12.1客戶端以及cx_Oracle

1.hostnamectl set-hostname p164 --修改主機名 2.vim /etc/hosts --修改h osts,否則出現 ORA-21561: OID generation failed,加入本機的解析

[Hadoop] CentOS7 安裝flume-ng-1.6.0-cdh5.7.0

1. Flume 安裝部署 根據官方文件描述,市面上的Flume主流版本有兩個:0.9.x and 1.x。這兩個版本差異非常非常大,舊版本已經被淘汰了,要用的話就使用新版本。當然本文中既定版本為cd

虛擬機器三節點centos7.2安裝CDH5.13.1

之前裝過兩次沒成功,再裝一遍,踩了些坑,後面有采坑經驗建議看完再動手。0. 基本條件三臺vmware虛機,都是1核2G,20G硬碟1. 所有節點修改hostname,建立hadoop使用者hostnamectl set-hostname hadoop1vim /etc/hos

Phoenix事物和安裝部署:CDH5.12.1和phoenix4.8結合

Phoenix安裝部署和事物支援配置遇到的問題:本人在cdh5.12叢集上部署phoenix,並讓其支援事物的經驗總結!! 過程遇到幾個比較關鍵的問題,希望對你們有所幫助 1)準備安裝包:  編譯完成的包:phoenix-4.9.0-cdh5.9.1.tar.gz 2)部署:

centos7 64位 偽分佈安裝cdh5.5.1,及其測試筆記

安裝JAVA tar -xvf /opt/java/jdk-8u71-linux-x64.tar.gz /opt/java/jdk1.8.0_71 增加環境變數 vim /etc/profile 修改profile 最後面加入 export J

centos7安裝zabbix3.4.1

zabbix3.4.1 centos7 linux 監控簡介:cacti、nagios、zabbix、smokeping、open-falcon等等cacti、smokeping偏向於基礎監控,成圖非常漂亮,偏重網絡設備cacti、nagios、zabbix服務端監控中心,需要php環境支持,其中za

centos7安裝bind9.12

centos7+bind9.12 linux dns linux bind bind9.12 centos7 bind9 參考文獻1:http://blog.51cto.com/sw5720/1611777參考文獻2:https://blog.csdn.net/orapeasant/art

Centos7安裝weblogic12.2.1.3.0(開發環境)

控制 con pen ole uri his 3.0 rtu scripting 下載安裝包 fmw_12.2.1.3.0_wls_quick_Disk1_1of1.zip 創建用戶組及用戶 groupadd weblogic useradd -g weblogic w

Centos7安裝weblogic12.2.1.3.0(生產環境)

The emp engine 壓縮包 12c -i 1.0 Inventor setting 下載壓縮包 fmw_12.2.1.3.0_wls_Disk1_1of1.zip 創建用戶組及用戶 groupadd weblogic useradd -g weblogic01

Centos7安裝python3.7.1並與python2共存

轉自:http://www.cnblogs.com/JahanGu/p/7452527.html參考:https://www.jb51.net/article/104326.htm1. 備份原來的python版本。檢視是否已經安裝Python:[[email protected] ~]$ pytho

spark-2.2.0-bin-2.6.0-cdh5.12.1.tgz 編譯方法總結!

菜雞一隻,如果有說錯的地方,還請見諒和指出批評!! 事情是這樣的,想在自己本地部署一個hadoop2.6.0-cdh5.12.1,hive1.1.0-cdh5.12.1,spark-2.2.0-bin-2.6.0-cdh5.12.1的環境,前兩個還是很好找到哪裡下載和部署的! c

0470-如何在Redhat7.4安裝CDH5.16.1

scrip 防火 order 靜態 erp 添加 lang ace 微信公眾 Fayson的github: https://github.com/fayson/cdhproject 推薦關註微信公眾號:“Hadoop實操”,ID:gh_c4c535955d0f,或者掃描文末

【軟體安裝】Linux Centos7 安裝RabbitMQ3.5.1-1

第一次安裝RabbitMQ,遇到了一些坑。。。。 介紹:       MQ全稱為Message Queue, 訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。應用程式通過讀寫出入佇列的訊息(針對應用程式的資料)來通訊,而無需專用連線來連結它們。訊息傳遞指的是程式之間通

Centos6安裝CDH5.15.1最詳細版-3 安裝Mysql資料庫

安裝Mysql 安裝包為:MySQL-5.6.41-1.el6.x86_64.rpm-bundle.tar 下載完成後上傳伺服器: 解壓tar包,並新增執行許可權 ## 解壓tar包 tar -xvf MySQL-5.6.41-1.el6.x86_64

Centos6安裝CDH5.15.1最詳細版-4 安裝Cloudera Manager

配置網路yum源為阿里雲源 完全離線的話可以不做 三臺伺服器都需要配置 1.1 備份原來的配置 mkdir -p /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak 1.

Centos7安裝lua5.3.1

使用skynet要求的是lua5.3以上的版本,而centos7預設的是5.1.3的版本,所以有了之後的事情…… 下載最新的lua5.3.1的tar包 然後輸入以下命令:tar zxf

CDH5.12.1版本搭建記錄

Cloudera簡介 為了構建一個以資料為驅動的業務場景,我們需要一個強大的管理工具去統一併安全地管理我們的業務資料,所以Cloudera做為一個強大的資料中心管理工具為此孕育而生。Cloudera不光提供了自己衍化重新封裝的市場領先並100%開源的商業化Ap

Centos7安裝python3.5.1

1.安裝可能需要的依賴:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel 3.將tar包解壓到/usr/local目錄下: ta