paulwong

          HBASE的MAPREDUCE任務(wù)運行異常解決辦法,無需CYGWIN,純WINDOWS環(huán)境

          如果是在WINDOWS的ECLIPSE中,運行HBASE的MAPREDUCE,會出現(xiàn)異常,這是由于默認運行MAPREDUCE任務(wù)是在本地運行,而由于會建立文件賦權(quán)限是按照UNIX的方式進行,因此會報錯:

          java.lang.RuntimeException: Error while running command to get file permissions : java.io.IOException: Cannot run program "ls": CreateProcess error=2,


          解決辦法是將任務(wù)發(fā)到運程主機,通常是LINUX上運行,在hbase-site.xml中加入:

          <property>
             
          <name>mapred.job.tracker</name>
             
          <value>master:9001</value>
          </property>

          同時需把HDFS的權(quán)限機制關(guān)掉:

          <property>
             
          <name>dfs.permissions</name>
             
          <value>false</value>
          </property>


          另外由于是在遠程上執(zhí)行任務(wù),自定義的類文件,如Maper/Reducer等需打包成jar文件上傳,具體見方案:
          Hadoop作業(yè)提交分析(五)http://www.cnblogs.com/spork/archive/2010/04/21/1717592.html


          研究了好幾天,終于搞清楚,CONFIGUARATION就是JOB的配置信息,遠程JOBTRACKER就是以此為參數(shù)構(gòu)建JOB去執(zhí)行,由于遠程主機并沒有自定義的MAPREDUCE類,需打成JAR包后,上傳到主機處,但無需每次都手動傳,可以代碼設(shè)置:

          conf.set("tmpjars", "d:/aaa.jar");


          另注意,如果在WINDOWS系統(tǒng)中,文件分隔號是“;”,生成的JAR包信息是以“;”間隔的,在遠程主機的LINUX上是無法辨別,需改為:

          System.setProperty("path.separator", ":");


          參考文章:
          http://www.cnblogs.com/xia520pi/archive/2012/05/20/2510723.html


          使用hadoop eclipse plugin提交Job并添加多個第三方j(luò)ar(完美版)
          http://heipark.iteye.com/blog/1171923 

          posted on 2012-10-03 02:18 paulwong 閱讀(2421) 評論(0)  編輯  收藏 所屬分類: HADOOP云計算HBASE

          主站蜘蛛池模板: 崇明县| 西安市| 历史| 萨嘎县| 封丘县| 日土县| 民县| 托克托县| 清涧县| 阜新市| 宾川县| 伊春市| 陆河县| 西吉县| 五大连池市| 晋城| 石门县| 曲松县| 和静县| 当雄县| 布尔津县| 兴化市| 凤阳县| 阳信县| 衡阳县| 喜德县| 永城市| 黄山市| 江华| 施甸县| 贵州省| 文成县| 遵义市| 浦城县| 荃湾区| 鄱阳县| 丰都县| 清水河县| 乐平市| 从江县| 抚顺市|