隨筆-95  評論-31  文章-10  trackbacks-0
          問題1:sqoop修改源碼編譯打包后如何配合oozie使用?

          oozie需要依次執(zhí)行:
               $OOZIE_HOME/bin/oozie.setup.sh prepare-war 
               $OOZIE_HOME/bin/oozie.setup.sh sharelib create -fs  hdfs://xxxx:9000                   
          其中第二步是將$OOZIE_HOME/里的oozie-sharelib-4.2.0.tar.gz包含的jar上傳到HDFS目錄里,而不是lib和libext里面的jar,所以sqoop編譯打包后需要把sqoop-1.4.6-xxx.jar放進oozie-sharelib-4.2.0.tar.gz壓縮包里,并去掉里面自帶的sqoop jar
          那么調(diào)用oozie的時候,觸發(fā)sqoop就是你修改了源碼的jar。如圖hdfs目錄


          問題2: oozie調(diào)度sqoop的時候,總提示NoClassDefoundxxxx異常?
          需要把相關jar放進$HADOOP_HOME/share/hadoop/下面的目錄里面,而不是放進oozie的lib目錄里

          問題3:如何遠程調(diào)試?
          若發(fā)現(xiàn)有oozie調(diào)度sqoop有問題,最好直接運行sqoop命令來進行調(diào)試,這樣才能debug進sqoop代碼里面,更直觀
          調(diào)試命令:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
          把上面命令加進 $HADOOP_HOME/bin/hadoop里面
          示例: HADOOP_DEBUG=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
                    HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DEBUG"
           
          suspend=y意思是jvm一啟動就等待遠程debug連接。

          綜上所述:不管oozie還是sqoop都是通過hadoop來運行,所以若有什么問題,在$HADOOP_HOME/logs/userlogs目錄下查找log進行問題定位,并且依賴什么的都最好放在$HADOOP_CLASSPATH下面
          posted on 2016-12-09 13:42 朔望魔刃 閱讀(601) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 台湾省| 长岛县| 长寿区| 黑山县| 富裕县| 黄大仙区| 望城县| 恭城| 福州市| 兴国县| 嘉黎县| 邮箱| 油尖旺区| 根河市| 瑞安市| 长丰县| 宁远县| 清远市| 来宾市| 商河县| 邵阳市| 呼和浩特市| 西乌珠穆沁旗| 浠水县| 公主岭市| 康乐县| 巫山县| 温州市| 南江县| 建平县| 罗城| 长岛县| 民和| 神池县| 体育| 靖宇县| 云霄县| 开封县| 永仁县| 广南县| 宁强县|