Oozie5.2.1 + Hadoop3编译

基于hadoop3编译Oozie5.2.1

系统要求

  • 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


    hadoop-3
    
        true
    
    
        
            org.apache.hadoop
            hadoop-common
        
    

修改oozie/sharelib/pig/pom.xml


    hadoop-3
    
        true
    
    
        
            org.apache.hadoop
            hadoop-common
        
    

修改oozie/webapp/pom.xml


    hadoop-3
    
        true
    
    
        
            org.apache.hadoop
            hadoop-common
        
    

修改oozie/pom.xml

....
3.1.1
3

1.7.0
.....





 2.3.6  
 2.12
 0.16.0
 h2
 core
 1.4.7
 2.4.6
 2.4.6
 2.4.6
 14.0.1
 2.10
 hadoop260
 0.10.0
 2.9.9
 1.8.2

兼容sharelib hive3.1.0编译调整

// 将DelegationTokenIdentifier替换为TokenIdentifier
// 大概在50行左右
import org.apache.hadoop.hive.thrift.DelegationTokenIdentifier;
import org.apache.hadoop.security.token.TokenIdentifier;


// 修改为TokenIdentifier
// 大概在290行左右
Token token = new Token();
Token token = new Token();

编译

bin/mkdistro.sh -DskipTests -Dvc.revision=release-5.2.1@8f0e5ee -Dvc.url=https://github.com/apache/oozie.git -DgenerateDocs

安装包相关

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

  1. 提交作业出现缺少jar包, 缺少hadoop-mapreduce-client-common-3.1.1.jar, 需要从libext中 cp到lib目录
  2. 提交hive作业,缺少hive-webhcat-java-client-2.3.7.jar 需要拷贝到 lib和libext目录下
  3. 提交hive作业,缺少hive-hcatalog-core-2.3.7.jar 需要拷贝到 lib和libext目录下
  4. 提交MapReduce作业和sqoop作业, yarn调度成功,但是oozie ui 是挂起的状态,缺少hadoop-mapreduce-client-jobclient-3.1.1.jar

你可能感兴趣的:(Oozie5.2.1 + Hadoop3编译)