解決:MacOS下配置Hadoop及Hive單機遇到的問題(們)

MacOS Sierra 10.12.1
Hadoop 2.7.3
Hive 1.2.1


前言

本來安逸搞個local 的spark算了,但是過幾天我還要搞個網易雲音樂的大新聞,沒有hive不得勁,遂裝,期間遇到的問題,一一記錄


安裝

基礎安裝,先照這個來吧,反正肯定不會一次成功,科科,還可以自己百度,很多很多的

@jeetpan–Mac 系統安裝Hadoop 2.7.3


問題

這纔是重點,坑


Hadoop MapReduce Error - /bin/bash: /bin/java: is a directory

這是macos的java路徑不對的問題,hadoop默認爲bin/java,但是在macos中是/usr/bin/java,你不行可以which java看下是不是

解決方案:修改路徑即可,在/hadoop-2.7.3/etc/hadoop目錄下,vi hadoop-env.sh進行java路徑配置,添加如下
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home 當然這裏的路徑是自己的javajdk的路徑,如果你裝了jdk1.8.0_131.jdk版本的,那就應該是這個


進入hive的安裝目錄後, bin/hive 啓動卡在Logging initialized using configuration in file:/Users/mrlevo/Documents/apache-hive-1.2.1-bin/conf/hive-log4j.properties進不去

解決方案:使用sudo bin/hive


Tracking URL裏的application metrics參數都是0,node的log爲空只顯示http://

具體表現樣式:

這裏寫圖片描述

解決方案:這是內存配置的問題,具體解決方案請看@KaP–MapReduce job hangs, waiting for AM container to be allocated


hive能夠正常查詢等簡單操作,但是Mapred job的時候就卡着不動了

解決方案:首先看看自己機器有沒有聯網,別笑,真的遇到過,然後看能否啓動分配任務,比如有Tracking URL = http://MacdeMacBook-Pro.local:8088/proxy/application_1498720375962_0011/這個顯示,那麼啓動沒問題,進去查看log,log中一般顯示Hadoop MapReduce Error - /bin/bash: /bin/java: is a directory,科科,請返回第一個問題


啓動hive後報錯如下 Exception in thread “main” Java.lang.IllegalArgumentException:java.net.URISyntaxException: Relative path in absolute URI:{system:java.io.tmpdir%7D/ %7Bsystem:user.name%7D

解決方案

方法一:請看hive啓動時{system:java.io.tmpdir%7D/ %7Bsystem:user.name%7D錯誤

方法二:請看@zhangwx–這裏

題外話,用他們的方式後,我還是會遇到這個問題,只不過是%7Bsystem:user.name%7D問題,最後解決方案只好把hive-site.xml中的{system:user.name}刪掉,解決。


Permission denied: user=root, access=EXECUTE, inode=”/tmp/hadoop-yarn”:grid:supergroup:drwx——

解決方案:這是由於權限不夠造成的,對要操作的文件location或者啓動都好,首先確定自己的文件具有的權限,使用hadoop fs -lsr /查看自己hdfs上所有文件,查看一下自己要操作文件的屬性,使用hadoop fs -chmod 777 /你的hdfs文件目錄


配置完成後,重新多次格式化namenode,啓動start-all.sh,之後jps查看的時候,發現datanode沒起來,導致hive啓動失敗

解決方案:原因是,Namenode和Datanode的NamenodeID不一致,最直接有效的辦法就是修改Datanode上的namenodeID(位於/dfs/data/current/VERSION文件中)或修改NameNode的namespaceID(位於/dfs/name/current/VERSION文件中),使其一致。晉心–datanode啓動不起來的各種原因


剛剛還能啓動hive並且跑mapred的,怎麼現在不行了

解決方案:請保持網絡連接(:這個zz問題真是太玄妙了!我屮艸芔茻了,這個單機版的還要網絡連接什麼鬼,但真的是這樣!沒有網絡還啓動不了了,可能我配置時候連了ESC上的節點?

方法二:如果還是不行,那就看下節點有沒有掉的,使用jps,看下nodemanager,resourcemanager在不在,如果不在,先停掉yarn,使用stop-yarn.sh,然後再start-yarn.sh


最後

目前能想到的就這麼多,但是期間各種小問題也算磨人,還有一些問題等我想到或者遇到再補充,希望對大家有所幫助!


致謝

@上述廣大網友
@實驗室小哥
@時不時耐心的自己哈哈哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章