翻譯: https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_vd_hadoop_api_dependencies.html
版本: 5.14.2
在CDH 3中禽作,所有Hadoop API 都被限制在單個(gè)JAR文件中(hadoop-core)三幻,只需要再加上其他一些依賴即可。
CDH 4和CDH 5更復(fù)雜:它們將MRv1和MRv2(YARN)捆綁在一起磕昼。為了簡(jiǎn)化事情纲堵,CDH 4和CDH 5提供了一種基于Maven的管理Hadoop API依賴關(guān)系方式纤房,使您無需弄清楚提供Hadoop API所需的所有JAR文件的確切名稱和位置。
在CDH 5中舶沛,Cloudera建議您使用 hadoop-client 所有客戶端的工件嘹承,而不是手動(dòng)管理基于JAR文件的依賴關(guān)系。
繼續(xù)閱讀:
- hadoop-client
- hadoop-client的版本
- 將hadoop-client用于基于Maven的Java項(xiàng)目
- 將hadoop-client用于基于Ivy的Java項(xiàng)目
- 使用hadoop-client包中提供的JAR文件
hadoop-client
有兩種不同的 hadoop-client 工件:基于Maven的項(xiàng)目對(duì)象模型(POM)工件和Linux軟件包如庭。前者允許您在編譯和運(yùn)行時(shí)為基于Maven或Ivy的項(xiàng)目管理Hadoop API依賴項(xiàng); 后者以可以直接添加到類路徑中的JAR文件集合的形式提供接口叹卷。
hadoop客戶端工件的版本
CDH 5提供了兩個(gè)不同的版本 hadoop-client 工件:一個(gè)用于MRv1,一個(gè)用于MRv2(YARN)坪它。如果您使用的是基于Maven的POM hadoop-client 工件骤竹,您可以使用版本字符串來區(qū)分它們:
更換 5.x.x 為 CDH版本號(hào)。如果您使用Linux軟件包往毡,則可以通過JAR文件的位置來區(qū)分:/usr/lib/hadoop/client-0.20 用于MRv1 API和 /usr/lib/hadoop/client 為YARN蒙揣。
重要:
確保只有一個(gè)版本的 hadoop-client 工件可用于您的項(xiàng)目】t;旌螹Rv1和YARN hadoop-client 工件可能會(huì)導(dǎo)致難以調(diào)試的故障懒震。
將hadoop-client用于基于Maven的Java項(xiàng)目
確保將以下依賴關(guān)系規(guī)范添加到您的 pom.xml 文件:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>VERSION</version>
<scope>provided</scope>
</dependency>
見CDH版本字符串對(duì)Maven的VERSION 串。
將hadoop-client用于基于Ivy的Java項(xiàng)目
確保將以下依賴關(guān)系規(guī)范添加到您的 ivy.xml 文件:
<dependency org="org.apache.hadoop" name="hadoop-client" rev="VERSION" conf="default->provided"/>
<VERSION>字符串可以是 2.2.0-cdh5.x.x 對(duì)于YARN API或 2.2.0-mr1-cdh5.x.x MR
1 為版本號(hào)惩阶。
使用hadoop-client包中提供的JAR文件
確保你添加到你的項(xiàng)目中提供的所有JAR文件 /usr/lib/hadoop/client-0.20 (對(duì)于MRv1 API)或 /usr/lib/hadoop/client (對(duì)于YARN)挎狸。
例如,您可以將此位置添加到JVM類路徑中:
$ export CLASSPATH=/usr/lib/hadoop/client-0.20/\*