前兩天到現(xiàn)場的測試環(huán)境部署HBase生命周期(實際上也是部署了2.4版本進行測試)問題還是有點多的赁遗,簡單記錄一些現(xiàn)在還記得的問題與解決辦法晴叨。
1.開始遇到了Kerberos...只想說這是個坑,拿到了keytab,krb5.conf還是沒用捞挥,最后卡在principal在regExp [/@] 切分時報錯,_HOST有問題忧吟,查不到具體解決辦法砌函,只好看了下Hadoop - SecurityUtil的源碼,報錯的地方見getServerPrincipal(String principalConfig, InetAddress addr)方法溜族,找不到本機HostName讹俊,但是自己寫了個InetAddress.getLocalHost().getCanonicalHostName()
(就是SecurityUtil.getLocalHostName()方法)測了一把,發(fā)現(xiàn)能正確取到HostName...整個人懵逼煌抒,研究了許久仍劈,實在沒法處理,于是放棄Kerberos
附上hadoop-SecurityUtil源碼:SecurityUtil.java
2.放棄Kerberos后走回正道寡壮,想著先寫個簡單的java API去list一下有哪些表贩疙,測試項目就直接取了集群隨便一個datanode上的${HBASE_HOME}/lib下所有jar與hadoop-core.jar,hadoop-hdfs.jar诬像,取了${HBASE_HOME}/conf/hbase-site.xml屋群,打包后放到服務器,跑坏挠!悲催芍躏,hbase-site.xml下的hbase.rootdir是hdfs路徑(hdfs://xxxx/hbase/lib),報Unknown Host降狠,想想覺得奇怪对竣,一般Unknown Host都是因為沒有正常配置/etc/hosts,解析hostname時不知道對應ip才報這個錯榜配,并且在報錯的時候也用hadoop fs -ls hdfs://xxxx能正常讀取hdfs否纬,baidu/google都查了很久,貌似沒人遇到過這種問題...問了同事后蛋褥,讓我把集群core-site.xml,hdfs-site.xml一起丟到classpath临燃,還是沒用!不知道哪里靈光一現(xiàn)烙心,感覺這肯定是hdfs這塊出了問題膜廊,于是乎把服務器hadoop/share/hadoop*jar全加到項目lib...(不一定全部需要,但全加了肯定有用...)再測一把淫茵,嗯嗯爪瓜,破費好吧....效果全等于hbase shell list
3.測試沒問題后,就把自己的代碼往服務器丟了...部署過程也是坎坷匙瘪。logback感覺抽了铆铆,tomcat的catalina.out沒日志....沒日志....沒日志....這要我怎么測蝶缀。看了一萬遍Server.xml頭疼(因為端口也有點問題薄货,服務器很多tomcat翁都,甚至想直接su了殺了那個占我8080/8005/...端口的家伙...,但所有服務器root都改了強密碼...keygen這種玩意生成的密碼菲驴,就算了吧...)荐吵。沒有用自己的tomcat,沒有用服務器現(xiàn)成的tomcat赊瞬,因為不知道別人的server.xml到底改了什么(順帶吐槽RHEL沒有配置過的vim真難用...難道是被別人alias vim=vi了...)從apache搞了最新的tomcat8先煎,war包丟進去,簡單改了下content.xml巧涧,./start.sh && tailf ../logs/catalina.out ...還是沒有日志薯蝎,我x了x了。谤绳。占锯。用curl測了下靜態(tài)登錄頁面,也是正常的缩筛。萬能的同事又來了...把logback.xml從WEB-INF/classes/丟到了WEB-INF/消略,但還是沒用...
換回了自己的tomcat,啟動瞎抛,報錯....日志比較友好docBase="C:\Users\L\work\apache-tomcat-8.0.38\wtpwebapps\dacp-me-deploy"不存在艺演,那必須啊...改成了服務器上的絕對路徑,還是報錯....直接注釋掉整個<Context docBase="xxx"/>啟動tomcat...瞬間啟動完畢桐臊,容器里都沒有app的那種瞬間完成胎撤,原來是webapps里面沒東西...把wtpwebapps下的項目復制過來,一切over......啟動日志有了断凶,log也有了...
部署測試后記
????自己代碼也有一些邏輯問題伤提,一直是閉門造車,但卻做不到出門合轍认烁。果然是騾子是馬肿男,拉出來溜溜就知道了...不過說實話,自己本機之前搭的偽分布式都沒完全搞定却嗡,直接上完全分布式的確有點不明智次伶,不過再不搞就算拖工期了啊...(捂臉...)
????所以想要能直接在正式hadoop環(huán)境上搞點什么,自己也要有完全分布式的環(huán)境稽穆,不說做到有一個完全鏡像與生產(chǎn)的測試環(huán)境,至少核心部分要一樣啊....
第一點Kerberos里面的確是沒時間研究了赶撰,時間不允許舌镶,有空要看看源碼柱彻,到底怎么報錯的...
第二點對于tomcat的理解也不夠深刻,平時處于只是能用的階段餐胀,到了真的出問題的時候哟楷,哎。否灾。書到用時方恨少...準備再寫一篇關于Tomcat的博文卖擅,時間再定吧...