Linux 上编译 trino-371详解

前景

使用zip函数时超过5个数据 直接报错

查看源码才知道官方默认是5,因此才自己编译一下,中间踩了一些坑记录一下

一、使用环境

  • jdk-11.0.14
  • Apache Maven 3.8.4

二、下载源码并执行编译

#下载源码
git clone https://github.com/trinodb/trino.git

#编译 进入到源码目录里面执行 后面可以加 -X  看详细日志
./mvnw clean install -DskipTests

三、编译过程中报的错及解决方法

1. Failed to execute goal pl.project13.maven:git-commit-id-plugin:4.0.5:revision (default) on project trino-testing-services: .git directory is not found! Please specify a valid [dotGitDirectory] in your pom.xml 

解决方式:

#编辑项目pom.xml文件 新增<failOnNoGitDirectory>false</failOnNoGitDirectory>

<plugin>
    <groupId>pl.project13.maven</groupId>
    <artifactId>git-commit-id-plugin</artifactId>
    <configuration>
           <failOnNoGitDirectory>false</failOnNoGitDirectory>
           <runOnlyOnce>true</runOnlyOnce>
           <injectAllReactorProjects>true</injectAllReactorProjects>
           <offline>true</offline>
     </configuration>
</plugin>

2. 一些插件导致的报错

#修改项目pom.xml文件 新增阿里云仓库源
</repositories>
    <repository>
        <id>aliyun</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>aliyun-plugin</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

四、编译成功

五、 运行目录及执行文件

#编译好的文件目录
trino-371/core/trino-server/target/trino-server-371

#执行文件
bin/launcher start

 六、修改配置文件 跑单机测试

#需要先创建个etc文件夹
mkdir etc

#config.properties

coordinator=true
node-scheduler.include-coordinator=true(如果只是master就是false 这里只是单机测试)
http-server.http.port=8080
query.max-memory=60GB
query.max-memory-per-node=10GB
discovery-server.enabled=true
discovery.uri=http://xxxxxx:8080
task.max-worker-threads=120
task.concurrency=16
node-scheduler.max-splits-per-node=150
node-scheduler.max-pending-splits-per-task=15
query.max-history=300
query.min-expire-age=30m
web-ui.authentication.type=fixed
web-ui.user=hadoop

#jvm.config
-server
-Xmx25G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-XX:+UseGCOverheadLimit
-XX:+HeapDumpOnOutOfMemoryError
-XX:ReservedCodeCacheSize=1024M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=4000000


# node.properties
node.environment=prod_olap
node.id=master_test
node.data-dir=/data/trino_test/data

#log.properties
io.trino=INFO

#在etc目录下创建catalog文件夹

mkdir catalog

#hive.properties  hive连接测试

connector.name=hive
hive.metastore.uri=thrift://xxxxx:7004,thrift://xxxxx:7004
hive.config.resources=/usr/local/service/hadoop/etc/hadoop/core-site.xml,/usr/local/service/hadoop/etc/hadoop/hdfs-site.xml
hive.allow-drop-table=true
hive.recursive-directories=true
hive.insert-existing-partitions-behavior=OVERWRITE
hive.storage-format=PARQUET
hive.compression-codec=SNAPPY
hive.non-managed-table-writes-enabled=true
hive.translate-hive-views=true
hive.validate-bucketing=false
hive.parquet.use-column-names=false


#clickhouse.properties
connector.name=clickhouse
connection-url=jdbc:clickhouse://xxxxx:8123/
connection-user=default
connection-password=clickhouse
clickhouse.map-string-as-varchar=true


七、UI显示

### 回答1: ItemRevision.checkin() 是一个 Python 函数,它可能属于一个更大的程序或库。使用这个函数的具体方法取决于它的实现和上下文,您可以查看相关文档和代码以了解详情。 如果您有更具体的问题,请提供更多信息,以便我们能够更好地帮助您。 ### 回答2: ItemRevision.checkin()是一个方法,可以用于将物品的修订版本提交到版本控制系统中。下面是使用ItemRevision.checkin()的步骤: 1. 首先,确保你已经创建了一个物品修订版本对象。你可以使用相关的API(例如createItemRevision()方法)来创建一个修订版本对象。 2. 在创建修订版本对象后,你可以使用checkin()方法来提交修订版本。该方法接受一些参数来指定提交的行为。例如,你可以指定提交的注释信息,以便在日志中记录该修订版本的重要信息。 3. 在调用checkin()方法之前,你可以在修订版本对象上执行一些其他的操作,例如对物品进行一些修改或者添加附件。 4. 调用checkin()方法后,系统会将修订版本提交到版本控制系统中,并且生成一个唯一的修订版本号。 5. 你可以根据需要进一步处理该修订版本,例如你可以将其关联到其他相关的物品或者任务中。 注意事项: - 在使用checkin()方法之前,确保已经进行了合适的权限控制和安全验证,以确保只有授权的用户可以提交修订版本。 - 在提交修订版本之前,建议对修订版本对象和相关的物品进行一次完整的测试和验证,确保没有错误或者遗漏。 - 可以使用相关的API来查询和检索已经提交的修订版本的信息,例如getRevision()方法。 总结: 使用ItemRevision.checkin()方法可以方便地将物品的修订版本提交到版本控制系统中,同时也提供了一些参数和步骤来定制提交行为。根据实际需求,你可以在提交之前进行其他的操作,并且可以进一步处理提交后的修订版本。 ### 回答3: ItemRevision.checkin()是一种方法,用于在软件开发过程中将更新的版本或修改的文件添加到版本控制系统中。该方法通常用于团队协作开发或版本追踪。 在使用ItemRevision.checkin()之前,首先需要使用版本控制系统创建一个项目。然后,在本地计算机上克隆或检出该项目的副本。接下来,对项目进行修改或添加新文件。 当完成对项目的修改后,可以使用ItemRevision.checkin()方法将文件或更新的版本提交至版本控制系统。这个方法会向版本控制系统提供提交的文件或版本的信息,例如作者、提交时间、注释等。提交后的文件将成为项目的新版本并保存在版本控制系统中。 使用ItemRevision.checkin()方法的一般步骤如下: 1. 执行ItemRevision.checkin()方法之前,确保项目的所有修改都已保存和提交,并且已经进行了必要的测试和验证。 2. 调用ItemRevision.checkin()方法,并传入需要提交的文件或版本的相关信息,例如作者、提交时间和注释等。 3. 版本控制系统将保存提交的文件或版本,并为其生成一个独特的版本号或标识符。 4. 可以使用版本控制系统的其他功能,如查看提交历史、比较版本、回滚到先前版本等。 总的来说,ItemRevision.checkin()方法是将更新的文件或修改的版本添加到版本控制系统的一种操作。它有助于团队协作开发,追踪文件的修改历史,并保持项目的版本控制和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值