centos7安裝cdh5.12.1
xumingxiang 大資料 2017-10-04 1,738 次瀏覽 cdh, hadoop, Linux 沒有評論
準備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安裝,最後配置環境變數。
- cd /app
- tar -zxvf jdk-8u144-linux-x64.tar.gz
- vim /etc/profile
- export JAVA_HOME=/app/jdk1.8.0_144
- export PATH=$JAVA_HOME/bin:$PATH
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- source /etc/profile
驗證是否安裝成功
- [[email protected] app]# java -version
- java version "1.8.0_144"
- Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
- Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
四:關閉防火牆
- service iptables stop #臨時關閉
- chkconfig iptables off #重啟後生效
- systemctl stop firewalld.service #停止firewall
- systemctl disable firewalld.service #禁止firewall開機啟動
五:SELinux
set enforce 0 (臨時生效)
修改 vim /etc/selinux/config 下的
SELINUX=disabled (重啟後永久生效)
- # This file controls the state of SELinux on the system.
- # SELINUX= can take one of these three values:
- # enforcing - SELinux security policy is enforced.
- # permissive - SELinux prints warnings instead of enforcing.
- # disabled - No SELinux policy is loaded.
- SELINUX=disabled
- # SELINUXTYPE= can take one of these two values:
- # targeted - Targeted processes are protected,
- # mls - Multi Level Security protection.
- SELINUXTYPE=targeted
六:安裝mysql
七:所有節點配置NTP服務
(這一步暫時可以跳過,但是在叢集啟動以後,會提示時間不同步)
叢集中所有主機必須保持時間同步,如果時間相差較大會引起各種問題。 具體思路如下:
master節點作為ntp伺服器與外界對時中心同步時間,隨後對所有datanode節點提供時間同步服務。
所有datanode節點以master節點為基礎同步時間。
所有節點安裝相關元件:
- yum install ntp
啟動 ntp:
- service ntpd start
設定開機啟動:
- chkconfig ntpd on
檢查是否設定成功:chkconfig –list ntpd其中2-5為on狀態就代表成功。
可以通過以下命令先進行時間同步:
- ntpdate us.pool.ntp.org
主節點配置(master節點)
- vim /etc/ntp.conf
ntp服務只有一個配置檔案,配置好了就OK。 這裡只給出有用的配置,不需要的配置都用#注掉,這裡就不在給出(大部分把#去掉即可,不需要新增):
- driftfile /var/lib/ntp/drift
- # Permit time synchronization with our time source, but do not
- # permit the source to query or modify the service on this system.
- restrict default kod nomodify notrap nopeer noquery
- restrict -6 default kod nomodify notrap nopeer noquery
- # Permit all access over the loopback interface. This could
- # be tightened as well, but to do so would effect some of
- # the administrative functions.
- restrict 127.0.0.1
- restrict -6 ::1
- # Hosts on local network are less restricted.
- restrict 192.168.3.0 mask 255.255.255.0 nomodify notrap
- # Use public servers from the pool.ntp.org project.
- # Please consider joining the pool (http://www.pool.ntp.org/join.html).
- server 0.centos.pool.ntp.org iburst
- server 1.centos.pool.ntp.org iburst
- server 2.centos.pool.ntp.org iburst
- 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分鐘才能同步。
在其他節點,直接執行
- ntpdate -u node1
(主節點ntp伺服器) 即可,和node1同步
這裡可能出現同步失敗的情況,請不要著急,一般是本地的ntp伺服器還沒有正常啟動,一般需要等待5-10分鐘才可以正常同步。啟動服務:service ntpd start
因為是連線內網,這次啟動等待的時間會比master節點快一些,但是也需要耐心等待一會兒。
八:克隆虛擬機器
九:所有節點修改網路配置
修改主機名:
- vim /etc/sysconfig/network
- HOSTNAME=node1
- vim /etc/hostname
- node1
注意 :/etc/hostname 不可以有其他和主機名無關的內容 #註釋也不行,下面的就是錯誤的
#localhost.localdomain
node1
十:所有節點配置host
修改ip與主機名的對應關係:
- vim /etc/hosts
- 192.168.231.128 node1
- 192.168.231.129 node2
- 192.168.231.130 node3
- 192.168.231.131 node4
十一:所有節點設定ssh無密碼登陸,打通SSH
執行
- ssh-keygen -t rsa
一路回車,生成無密碼的金鑰對。
將公鑰新增到認證檔案中:
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
並設定authorized_keys的訪問許可權:
- chmod 600 ~/.ssh/authorized_keys
通過scp命令將各節點的認證檔案拷貝到所有其他節點並追加到authorized_keys,使得各節點能夠相互訪問。具體如下:
在node1上執行
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node2.pub
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node1.pub
- 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上執行
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node2.pub
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node2.pub
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node2.pub
在node3上執行
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node3.pub
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node3.pub
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node3.pub
在node4上執行
- ssh-keygen -t rsa
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node4.pub
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node4.pub
- scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa_node4.pub
在node1上執行
- cat ~/.ssh/id_rsa_node2.pub >> ~/.ssh/authorized_keys
- cat ~/.ssh/id_rsa_node3.pub >> ~/.ssh/authorized_keys
- cat ~/.ssh/id_rsa_node4.pub >> ~/.ssh/authorized_keys
在node2上執行
- cat ~/.ssh/id_rsa_node1.pub >> ~/.ssh/authorized_keys
- cat ~/.ssh/id_rsa_node3.pub >> ~/.ssh/authorized_keys
- cat ~/.ssh/id_rsa_node4.pub >> ~/.ssh/authorized_keys
在node3上執行
- cat ~/.ssh/id_rsa_node1.pub >> ~/.ssh/authorized_keys
- cat ~/.ssh/id_rsa_node2.pub >> ~/.ssh/authorized_keys
- cat ~/.ssh/id_rsa_node4.pub >> ~/.ssh/authorized_keys
在node4上執行
- cat ~/.ssh/id_rsa_node1.pub >> ~/.ssh/authorized_keys
- cat ~/.ssh/id_rsa_node2.pub >> ~/.ssh/authorized_keys
- cat ~/.ssh/id_rsa_node3.pub >> ~/.ssh/authorized_keys
十二 :開始安裝Cloudera Manager
12.1)在所有節點建立cloudera-scm使用者
- 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目錄下:
- 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/中:
- 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,然後
- /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,在檔案開頭加上
- vim /opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh
- JAVA_HOME=/app/jdk1.8.0_144
- export JAVA_HOME=/app/jdk1.8.0_144
這時我們發現數據庫多了一個cm 的資料庫
並且mysql.user表裡多了一個叫scm的使用者
然後mysql shell 客戶端登入 修改允許scm遠端登入
- update user set host = '%' where user = 'scm';
然後授權
- GRANT all ON *.* TO 'scm'@'%' ;
- GRANT all ON *.* TO 'root'@'%' ;
- flush privileges;
重啟mysql
十三:安裝Cloudera Manager Agent
13.1)修改/opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的server_host為主節點的主機名。
13.2)同步Agent到其他所有節點:
- scp -r /opt/cm-5.12.1 [email protected]:/opt/
13.3)準備Parcels,用以安裝CDH5
將CHD5相關的Parcel包放到主節點的/opt/cloudera/parcel-repo/目錄中(如沒有parcel-repo,需要手動建立)
- node1 app]# cp CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel /opt/cloudera/parcel-repo/
- node1 app]# cp CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1 /opt/cloudera/parcel-repo/
- 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
- mkdir -p /var/lib/cloudera-scm-server
- mkdir -p /var/lib/cloudera-scm-agent
- 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埠沒起來
- [[email protected] ~]# service cloudera-scm-server-db status
- Redirecting to /bin/systemctl status cloudera-scm-server-db.service
- cloudera-scm-server-db.service
- Loaded: not-found (Reason: No such file or directory)
- Active: inactive (dead)
- [[email protected] ~]# service cloudera-scm-server-db start
- Redirecting to /bin/systemctl start cloudera-scm-server-db.service
- Failed to start cloudera-scm-server-db.service: Unit cloudera-scm-server-db.service failed to load: No such file or directory.
解決辦法:
- mkdir -p /var/lib/cloudera-scm-server-db/data
問題2)如果是非root使用者,可能會出現下面這樣JAVA_HOME找不到
修改/opt/cm-5.12.1/etc/init.d/cloudera-scm-server,在檔案開頭加上
- JAVA_HOME=/app/jdk1.8.0_144
- 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埠起不來,檢視日誌報如下錯誤
- 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.
- 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]
- 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]
- 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]
- 2017-09-28 12:48:54,716 INFO WebServerImpl:org.springframework.web.servlet.DispatcherServlet: FrameworkServlet 'Spring MVC Dispatcher Servlet': initialization completed in 2536 ms
- 2017-09-28 12:48:54,738 INFO WebServerImpl:com.cloudera.server.web.cmon.JobDetailGatekeeper: ActivityMonitor configured to allow job details for all jobs.
- 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.
- 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]
- 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]
解決辦法:
- 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> 刪除Agent節點的UUID
- rm -rf /opt/cm-5.12.1/lib/cloudera-scm-agent/*
- 2> 清空主節點CM資料庫 進入主節點的Mysql資料庫,然後
- drop database cm
- 3> 在主節點上重新初始化CM資料庫
- /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驅動
- 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
- cp /app/cdh5.12.1/mysql-connector-java-5.1.44-bin.jar /var/lib/oozie
資料庫檢測成功successful,繼續。
如果出現如下錯誤,hue連不上:
這是因為伺服器上缺少了一個元件,安裝一下即可
- yum install -y python-lxml
圖15.15 稽核更改,主要是可以設定一些目錄,可以修改成自己想要的,如果修改前提是要先建立目錄,否側hdfs會無法啟動,並且報錯資料夾不存在,並確保訪問許可權。
我這裡保持預設
注意:在進行下一步繼續前我們還要做幾個事情,不然下一步會報錯,會很鬱悶,很無解
1)修改/var/log目錄許可權
- 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
新增
- JAVA_HOME=/app/jdk1.8.0_144
- export JAVA_HOME=/app/jdk1.8.0_144
3)編輯 vim /opt/cm-5.12.1/lib64/cmf/service/client/deploy-cc.sh
直接在上面加上
- JAVA_HOME=/app/jdk1.8.0_144
- export JAVA_HOME=/app/jdk1.8.0_144
所有節點都這樣設定一下!
4)複製mysql驅動
- 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
- 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。
解決方法:
- find / -type f -name "*cc.sh"
定位到編輯 vim /opt/cm-5.12.1/lib64/cmf/service/client/deploy-cc.sh
直接在上面加上
- JAVA_HOME=/app/jdk1.8.0_144
- export JAVA_HOME=/app/jdk1.8.0_144
所有節點都這樣設定一下!
然後重新整理頁面再點選重試,否則會出現下面很無腦的報錯
明明檔案是存在的,偏偏說瞎話
2)首次執行命令,建立oozie資料庫表失敗主機 node1 (id= 1) 上的程序 oozie-OOZIE-SERVER-createdbtables (id=57) 通過 1 退出並預期 0
解決辦法:oozie缺少mysql驅動
- 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中通過命令更改備份數:
- su hdfs
- hadoop fs -setrep -R 2 /
- 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目錄許可權不夠
解決辦法:
- 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