日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop 依赖式job_Hadoop Job使用第三方依赖jar文件

發布時間:2025/10/17 编程问答 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop 依赖式job_Hadoop Job使用第三方依赖jar文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當我們實現了一個Hadoop MapReduce Job以后,而這個Job可能又依賴很多外部的jar文件,在Hadoop集群上運行時,有時會出現找不到具體Class的異常。出現這種問題,基本上就是在Hadoop Job執行過程中,沒有從執行的上下文中找到對應的jar文件(實際是unjar的目錄,目錄里面是對應的Class文件)。所以,我們自然而然想到,正確配置好對應的classpath,MapReduce Job運行時就能夠找到。

有兩種方式可以更好地實現,一種是設置HADOOP_CLASSPATH,將Job所依賴的jar文件加載到HADOOP_CLASSPATH,這種配置只針對該Job生效,Job結束之后HADOOP_CLASSPATH會被清理;另一種方式是,直接在構建代碼的時候,將依賴jar文件與Job代碼打成一個jar文件,這種方式可能會使得最終的jar文件比較大,但是結合一些代碼構建工具,如Maven,可以在依賴控制方面保持一個Job一個依賴的構建配置,便于管理。下面,我們分別說明這兩種方式。

設置HADOOP_CLASSPATH

比如,我們有一個使用HBase的應用,操作HBase數據庫中表,肯定需要ZooKeeper,所以對應的jar文件的位置都要設置正確,讓運行時Job能夠檢索并加載。

Hadoop實現里面,有個輔助工具類org.apache.hadoop.util.GenericOptionsParser,能夠幫助我們加載對應的文件到classpath中,操作比較容易一些。

下面我們是我們實現的一個例子,程序執行入口的類,代碼如下所示:

可以看到,我們可以通過-libjars選項來指定該Job運行所依賴的第三方jar文件,具體使用方法,說明如下:

第一步:設置環境變量

我們修改.bashrc文件,增加如下配置內容:

不要忘記要使當前的配置生效:

這樣就可以方便地引用外部的jar文件了。

第二步:確定Job依賴的jar文件列表

上面提到,我們要使用HBase,需要HBase和ZooKeeper的相關jar文件,用到的文件如下所示:

設置當前Job執行的HADOOP_CLASSPATH變量,只對當前Job有效,所以沒有必要在.bashrc中進行配置。

第三步:運行開發的Job

運行我們開發的Job,通過命令行輸入HADOOP_CLASSPATH變量,以及使用-libjars選項指定當前這個Job依賴的第三方jar文件,啟動命令行如下所示:

需要注意的是,環境變量中內容使用冒號分隔,而-libjars選項中的內容使用逗號分隔。

這樣,我們就能夠正確運行開發的Job了。

下面看看我們開發的Job運行的結果:

可以看到,除了加載Hadoop對應的HADOOP_HOME變量指定的路徑下,lib*目錄下的jar文件以外,還加載了我們設置的-libjars選項中指定的第三方jar文件,供Job運行時使用。

將Job代碼和依賴jar文件打包

我比較喜歡這種方式,因為這樣做首先利用餓Maven的很多優點,如管理依賴、自動構建。另外,對于其他想要使用該Job的開發人員或部署人員,無需關系更多的配置,只要按照Maven的構建規則去構建,就可以生成最終的部署文件,從而也就減少了在執行Job的時候,出現各種常見的問題(如CLASSPATH設置有問題等)。

使用如下的Maven構建插件配置,執行mvn package命令,就可以完成這些任務:

最后生成的jar文件在target目錄下面,例如名稱類似solr-platform-2.0-jar-with-dependencies.jar,然后可以直接拷貝這個文件到指定的目錄,提交到Hadoop計算集群運行。

總結

以上是生活随笔為你收集整理的hadoop 依赖式job_Hadoop Job使用第三方依赖jar文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。