Oozie5.2.1 + Hadoop3编译

Kejie -
Oozie5.2.1 + Hadoop3编译
系统要求Java JDK 1.8+Maven 3.0.1+Hadoop 3.0.0+编译摘要
git clone https://github.com/apache/oozie.git


# 如果针对 Hadoop 3 构建,则必须激活配置文件 hadoop-3 构建发布时应指定以下属性:
-DgenerateDocs : 强制生成Oozie文档
-DskipTests  : 跳过测试
-Dvc.revision= : 指定发行版的源代码管理修订号
-Dvc.url= : 指定分发的源代码管理 URL
根据集群情况,修改pom文件修改oozie/examples/pom.xml
<profile>
    <id>hadoop-3</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
        </dependency>
    </dependencies>
</profile>
修改oozie/sharelib/pig/pom.xml
<profile>
    <id>hadoop-3</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
        </dependency>
    </dependencies>
</profile>
修改oozie/webapp/pom.xml
<profile>
    <id>hadoop-3</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
        </dependency>
    </dependencies>
</profile>
修改oozie/pom.xml
....
<hadoop.version>3.1.1</hadoop.version>
<hadoop.majorversion>3</hadoop.majorversion>
<!--
    找不到 org.apache.hadoop.hbase.security.token.TokenUtil 做的修改
    默认1.2.3 低版本缺少类,所以修改到1.7.0
-->
<hbase.version>1.7.0</hbase.version>
.....

<!-- Sharelib component versions 根据集群真实情况修改版本就好-->
<!-- 高版本的hive不存在org.apache.hadoop.hive.thrift.DelegationTokenIdentifier.class使用了2.3.6版本 -->

<!-- 也可以使用3.1的hive,详情请看下面-->
 <hive.version>2.3.6</hive.version>  
 <hive.jline.version>2.12</hive.jline.version>
 <pig.version>0.16.0</pig.version>
 <pig.classifier>h2</pig.classifier>
 <hive.classifier>core</hive.classifier>
 <sqoop.version>1.4.7</sqoop.version>
 <spark.version>2.4.6</spark.version>
 <spark.streaming.kafka.version>2.4.6</spark.streaming.kafka.version>
 <spark.bagel.version>2.4.6</spark.bagel.version>
 <spark.guava.version>14.0.1</spark.guava.version>
 <spark.scala.binary.version>2.10</spark.scala.binary.version>
 <sqoop.classifier>hadoop260</sqoop.classifier>
 <tez.version>0.10.0</tez.version>
 <joda.time.version>2.9.9</joda.time.version>
 <avro.version>1.8.2</avro.version>
兼容sharelib hive3.1.0编译调整
// 将DelegationTokenIdentifier替换为TokenIdentifier
// 大概在50行左右
import org.apache.hadoop.hive.thrift.DelegationTokenIdentifier;
import org.apache.hadoop.security.token.TokenIdentifier;


// 修改为TokenIdentifier
// 大概在290行左右
Token<DelegationTokenIdentifier> token = new Token<DelegationTokenIdentifier>();
Token<TokenIdentifier> token = new Token<TokenIdentifier>();
编译
bin/mkdistro.sh -DskipTests -Dvc.revision=release-5.2.1@8f0e5ee -Dvc.url=https://github.com/apache/oozie.git -DgenerateDocs
安装包相关

在安装过程中,因为原始包缺失jar包,导致无法运行

提交作业出现缺少jar包, 缺少hadoop-mapreduce-client-common-3.1.1.jar, 需要从libext中 cp到lib目录提交hive作业,缺少hive-webhcat-java-client-2.3.7.jar 需要拷贝到 lib和libext目录下提交hive作业,缺少hive-hcatalog-core-2.3.7.jar 需要拷贝到 lib和libext目录下提交MapReduce作业和sqoop作业, yarn调度成功,但是oozie ui 是挂起的状态,缺少hadoop-mapreduce-client-jobclient-3.1.1.jar
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

ooziehadooplinux

扩展阅读

加个好友,技术交流

1628738909466805.jpg