【Iceberg分析】Iceberg 1.6.1 源码使用IDEA本地编译

Iceberg 1.6.1 源码使用IDEA本地编译

下载

网络条件允许的情况下,使用git直接克隆,命令git clone https://github.com/apache/iceberg.git

如果网络情况不好,可以使用腾讯的软件源,下载地址:apache-iceberg-1.6.1.tar.gz

下载 gradle-8.9-bin.zip

文件配置调整

解压压缩过后,不要直接使用IDEA打开,需要天调整一些文件

gradle相关

gradle-wrapper.properties

distributionUrl=file:///D:/backup/gradle/InstallationPackage/gradle-8.9-bin.zip

修改bulid.gradle

使用aliyun的gardle仓库

buildscript内中的部分

  repositories {
    mavenLocal()
    maven {
      url 'https://maven.aliyun.com/repository/gradle-plugin'
    }
    gradlePluginPortal()
  }

allprojects内中的部分

allprojects {
  group = "org.apache.iceberg"
  version = projectVersion
  repositories {
  maven {
      url 'https://maven.aliyun.com/repository/public/'
    }
    maven {
      url 'https://maven.aliyun.com/repository/central'
    }
    def REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
    all {
      ArtifactRepository repo ->
        if (repo instanceof MavenArtifactRepository) {
          def url = repo.url.toString()
          if (url.startsWith('https://artifacts.elastic.co/maven')
                  || url.startsWith('https://repo1.maven.org/maven2')
                  || url.startsWith('https://repo.maven.org/maven2')
                  || url.startsWith('https://jcenter.bintray.com/')
                  || url.startsWith('https://repo.maven.apache.org/maven2')
          ) {
            project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
            remove repo
          }
        }
    }
    mavenLocal()
    mavenCentral()
  }
}

gradle.properties

目前里面支持的集成组件的版本。将sparkversion的版本改为3.4

systemProp.defaultSparkVersions=3.4

在IDEA上构建

使用IntelliJ IDEA 2024.1.2 打开项目apache-iceberg-1.6.1,进行Gradle项目加载。或者使用快捷键进行构建。 构建Ctrl + F9

在这里插入图片描述

编译打包

在linux环境中进行编译打包

./gradlew build -x test -x integrationTest

可能出现的问题

  1. 错误信息git clone时显示 RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
19057578@CNHQ-19057578N MINGW64 /d/code
$ git clone https://github.com/apache/iceberg.git
Cloning into 'iceberg'...
remote: Enumerating objects: 151733, done.
remote: Counting objects: 100% (2690/2690), done.
remote: Compressing objects: 100% (604/604), done.
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
error: 6642 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

很可能是由于HTTP/2通信协议导致的问题

Git和底层的curl库可能在处理HTTP/2协议时遇到问题,尤其是在某些网络配置或特定的服务器实现上。尝试强制Git使用HTTP/1.1来绕开这个问题

git config --global http.version HTTP/1.1
  1. gradle wapper下载失败
curl: (28) Failed to connect to raw.githubusercontent.com port 443 after 63120 ms: Couldn't connect to server
▒▒▒▒: ▒Ҳ▒▒▒▒▒▒޷▒▒▒▒▒▒▒▒▒ org.gradle.wrapper.GradleWrapperMain

网络问题,不行就用手机热点

彩蛋

与Spark部署

采用Spark On Yarn运行架构,使用Yarn-Cluster模式。

  1. 将spark打包后的tgz包解压

  2. 将解压后的文件夹spark-3.4.2-bin-2.9.1.1中的子文件jars文件夹中内容重新打包成zip,然后上传至HDFS。得到对应的HDFS路径。

    cd /home/spark/spark-3.4.2-bin-2.9.1.1/jars;
    zip -r jars.zip ./*
    hadoop fs -put -f /home/spark/spark-3.4.2-bin-2.9.1.1/jars hdfs:///user/spark/spark-3.4.2/ 
    
  3. 将spark的默认配置文件spark-3.4.2-bin-2.9.1.1/conf/spark-defaults.conf进行修改,增加配置项spark.yarn.archive,其值改为上面的zip包的HDFS路径。

    # config for spark.yarn
    spark.yarn.archive hdfs:///user/bigdata/spark-3.4.2.1-bin-2.9.1.1/jars.zip
    

Spark与Iceberg集成部署

采用Spark On Yarn运行架构,使用Yarn-Cluster模式。

  1. 将spark打包后的spark-2.3.4-bin-2.9.2.tgz包解压

  2. iceberg-spark-runtime-3.4_2.12.jar复制进,解压后的文件夹spark-3.4.2-bin-2.9.1.1中的子文件jars文件夹

  3. 将解压后的文件夹spark-3.4.2-bin-2.9.1.1中的子文件jars文件夹中内容重新打包成zip,然后上传至HDFS。得到对应的HDFS路径。

    cd /home/spark/spark-3.4.2-bin-2.9.1.1/jars;
    zip -r jars.zip ./*
    hadoop fs -put -f /home/spark/spark-3.4.2-bin-2.9.1.1/jars hdfs:///user/spark/spark-3.4.2/ 
    
  4. 将spark的默认配置文件spark-3.4.2-bin-2.9.1.1/conf/spark-defaults.conf进行修改,增加配置项spark.yarn.archive,其值改为上面的zip包的HDFS路径。

    # config for spark.yarn
    spark.yarn.archive hdfs:///user/bigdata/spark-3.4.2.1-bin-2.9.1.1/jars.zip
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顧棟

若对你有帮助,望对作者鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值