鑒于apache版本的Hadoop監控不完善,我們生產使用了CDH,同時使用Cloudera Manager監控,Cloudera Manager不但能監控集群還能監控機器,免費版也夠用真心值得推薦。
離線安裝Cloudera Manager和CDH
備注:通過修改每個主機/etc/cloudera-scm-agent/config.ini的server_host為安裝Cloudera Manager的機器的主機名來直接識別需要管理的主機,這樣你可以避免為CDH集群按照指定主機。
Cloudera Manager配置MySQL
安裝MySQL(忽略)
創建cm用戶賦予權限(為了避免問題賦予最大權限)
create user 'cm' identified by 'cm';
grant all on . to 'cm'@'master01' identified by 'cm' with grant option;
flush privileges;-
初始化Cloudera Manager的數據庫
/usr/share/cmf/schema/scm_prepare_database.sh -h master01 -ucm -pcm mysql --scm-host master01 scm cm cm執行完命令后查看/etc/cloudera-scm-server/db.properties如下
com.cloudera.cmf.db.type=mysql com.cloudera.cmf.db.host=master01 com.cloudera.cmf.db.name=scm com.cloudera.cmf.db.user=cm com.cloudera.cmf.db.password=cm
關閉內置數據庫PostgreSQL(一定要停止)
/etc/init.d/cloudera-scm-server-db stop重啟Cloudera Manager
/etc/init.d/cloudera-scm-server stop
/etc/init.d/cloudera-scm-server start
配置時鐘同步(使用NTP)
假設現在有3個節點(hadoop01、hadoop02、hadoop03):
hadoop01節點作為ntp服務器與外界對時中心同步時間,隨后對hadoop02、hadoop03節點提供時間同步服務。
hadoop02、hadoop03節點以hadoop01節點為基礎同步時間。
每個節點安裝ntp
yum install ntp-
配置hadoop01的/etc/ntp.conf
server 0.cn.pool.ntp.org server 0.asia.pool.ntp.org server 3.asia.pool.ntp.org # allow update time by the upper server # 允許上層時間服務器主動修改本機時間 restrict 0.cn.pool.ntp.org nomodify notrap noquery restrict 0.asia.pool.ntp.org nomodify notrap noquery restrict 3.asia.pool.ntp.org nomodify notrap noquery # Undisciplined Local Clock. This is a fake driver intended for backup # and when no outside source of synchronized time is available. # 外部時間服務器不可用時,以本地時間作為時間服務 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10
-
配置hadoop02、hdaoop03的/etc/ntp.conf
server 0.cn.pool.ntp.org server 0.asia.pool.ntp.org server 3.asia.pool.ntp.org # allow update time by the upper server # 允許上層時間服務器主動修改本機時間 restrict 0.cn.pool.ntp.org nomodify notrap noquery restrict 0.asia.pool.ntp.org nomodify notrap noquery restrict 3.asia.pool.ntp.org nomodify notrap noquery # Undisciplined Local Clock. This is a fake driver intended for backup # and when no outside source of synchronized time is available. # 外部時間服務器不可用時,以本地時間作為時間服務 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 server hadoop01 prefer
-
啟動 ntp
hadoop01 啟動之前先手動同步下ntpdate 0.cn.pool.ntp.org
hadoop02-03 啟動之前先手動同步下ntpdate hadoop01service ntpd start
設置開機啟動(每個節點)
chkconfig ntpd on
安裝CDH中遇到的問題
Cloudera Manager安裝無法登陸
Cloudera Manager安裝后訪問問題
備注:問題沒有徹底解決,通過遠程訪問阿里windows系統
Hive問題
Hive出現的問題作者的文章中都有,我居然其中的問題全出現了。
mysql-connector-java.jar 位置在:/usr/share/java/mysql-connector-java.jar
且名字一定要為:mysql-connector-java.jar
配置HA
Hive
完全卸載Cloudera Manager
配置ngxin訪問CM
問題
Cloudera_Server啟動: com.cloudera.server.web.cmf.csrf.CsrfRefererInterceptor: Rejecting request originating from
解決
grep安裝目錄的csrf,直接注釋掉然后重啟cloudera-manager-server
[root@xx.xx.xx.xx cloudera-scm-server]# cd /usr/share/cmf/
[root@xx.xx.xx.xx cmf]# grep -i -r csrf ./
Binary file ./cloudera-navigator-server/libs/cdh5/hadoop-yarn-server-nodemanager-2.6.0-cdh5.5.0.jar matches
Binary file ./common_jars/hadoop-yarn-server-nodemanager-2.6.0-cdh5.5.0.jar matches
Binary file ./common_jars/server-5.6.0.jar matches
Binary file ./common_jars/hadoop-yarn-server-resourcemanager-2.5.0-cdh5.3.2.jar matches
./webapp/WEB-INF/spring/mvc-config.xml: <bean class="com.cloudera.server.web.cmf.csrf.CsrfRefererInterceptor" />
Binary file ./lib/cdh5-java6/hadoop-yarn-server-resourcemanager-2.5.0-cdh5.3.2.jar matches
Binary file ./lib/server-5.6.0.jar matches
Binary file ./lib/cdh5/hadoop-yarn-server-nodemanager-2.6.0-cdh5.5.0.jar matches
[root@xx.xx.xx.xx cmf]# vi ./webapp/WEB-INF/spring/mvc-config.xml
注釋掉這個bean,然后重啟server,在訪問nginx,整個世界清凈了
<!-- <bean class="com.cloudera.server.web.cmf.csrf.CsrfRefererInterceptor" /> -->