Presto 0.244.1 aarch64编译

 
CPUPhytium,FT-2000+/64
OSKylin Linux Advanced Server 10
 
编译完成rpm下载连接,可在鲲鹏处理器,centos7系统使用
 
 
 
参考华为鲲鹏解决方案
 

netty 移植

 
# 略

jline-2.14.6移植

<jansi-native-version>1.6</jansi-native-version>

<groupId>org.fusesource.jansi</groupId>
  <artifactId>jansi-project</artifactId>
  <version>1.12</version>
<packaging>pom</packaging>

<dependency>
	<groupId>jline</groupId>
	<artifactId>jline</artifactId>
	<version>2.14.6</version>
	<exclusions>
		<exclusion>
			<groupId>org.fusesource.jansi</groupId>
			<artifactId>jansi</artifactId>
		</exclusion>
	</exclusions>
</dependency>
# 编译Jansi-native 1.6
wget https://github.com/fusesource/jansi-native/archive/jansi-native-1.6.tar.gz
tar -zxf jansi-native-1.6.tar.gz
cd jansi-native-jansi-native-1.6
mvn install -Dplatform=linux64
#  编译Jansi-1.12
wget https://github.com/fusesource/jansi/archive/jansi-project-1.12.tar.gz
tar -zxvf jansi-project-1.12.tar.gz
cd jansi-jansi-project-1.12
mvn install -Dmaven.javadoc.skip=true
# 编译jline-2.14.6
wget https://github.com/jline/jline2/archive/jline-2.14.6.tar.gz
tar -zxvf jline-2.14.6.tar.gz
cd jline2-jline-2.14.6
mvn install -Dmaven.javadoc.skip=true -DskipTests

libhadoop.so移植

# presto-0.244.1 依赖hadoop-2.7.4的本地动态库libhadoop.so,需要使用hadoop-2.7.4的源码编译后获得
yum install snappy snappy-devel protobuf protobuf-devel -y
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.4/hadoop-2.7.4-src.tar.gz
tar -zxf hadoop-2.7.4-src.tar.gz
cd hadoop-2.7.4-src/hadoop-common-project/hadoop-common
mvn package -Pnative -Drequire.snappy=true -DskipTests -Dmaven.javadoc.skip=true
#  target/native/target/usr/local/lib/libhadoop.so.1.0.0

presto-hadoop-apache2-2.7.4-8移植

<dependency>
	<groupId>com.facebook.presto.hadoop</groupId>
	<artifactId>hadoop-apache2</artifactId>
	<version>2.7.4-8</version>
</dependency>

wget https://github.com/prestodb/presto-hadoop-apache2/archive/2.7.4-8.tar.gz
tar -zxf 2.7.4-8.tar.gz
cd presto-hadoop-apache2-2.7.4-8
mkdir -p src/main/resources/nativelib/Linux-aarch64

# 上文获取的libhadoop.so.1.0.0复制到Linux-aarch64文件夹下,改名为libhadoop.so
cp ../hadoop-2.7.4-src/hadoop-common-project/hadoop-common/target/native/target/usr/local/lib/libhadoop.so.1.0.0 src/main/resources/nativelib/Linux-aarch64/libhadoop.so
# 上一步安装snappy后可在/lib64下找到所需的libsnappy.so.1.1.4
cp /lib64/libsnappy.so.1.1.4 src/main/resources/nativelib/Linux-aarch64/libsnappy.so

mvn install

 presto-cassandra-driver移植

# jffi-1.2.10移植
yum install -y ant
wget https://github.com/jnr/jffi/archive/1.2.10.tar.gz
tar -zxf 1.2.10.tar.gz
cd jffi-1.2.10
ant
# presto-cassandra-driver移植
wget https://github.com/prestodb/presto-cassandra-driver/archive/3.1.4-1.tar.gz
tar -zxf 3.1.4-1.tar.gz
cd presto-cassandra-driver-3.1.4-1
mvn install -DskipTests

airlift移植

# airlift是facebook开发的命令行框架
<dep.airlift.version>0.197</dep.airlift.version>
# procname移植
git clone http://github.com/airlift/procname.git
cd procname
make
# https://codeload.github.com/airlift/airlift/tar.gz/0.197
git clone http://github.com/airlift/airlift.git
cd airlift
git checkout 0.197
cd launcher/src/main/resources/procname
mkdir Linux-aarch64
# 把上文编译得到的libprocname.so放进Linux-aarch64目录。
mvn install -DskipTests

presto编译

vi presto-main/src/main/java/com/facebook/presto/server/PrestoSystemRequirements.java
# 73-75
if (!"amd64".equals(osArch) && !"ppc64le".equals(osArch) && !"aarch64".equals(osArch)) {
	failRequirement("Presto requires amd64 or ppc64le or aarch64 on Linux (found %s)", osArch);
}

vi presto-server-rpm/pom.xml
# 75
<nameOverride>presto-server-rpm-${project.version}.noarch.rpm</nameOverride>

# 78
<architecture>noarch</architecture>

mvn  clean package -DskipTests

presto-server/target/presto-server-0.244.1.tar.gz
presto-server-rpm/target/presto-server-rpm-0.244.1.noarch.rpm
presto-jdbc/target/presto-jdbc-0.244.1.jar
presto-cli/target/presto-cli-0.244.1-executable.jar

 

错误解决方案

1. .git目录不存在,在pom build  plugins 中增加下面插件

<plugin>
        <groupId>pl.project13.maven</groupId>
        <artifactId>git-commit-id-plugin</artifactId>
        <configuration>
        <skip>true</skip>
        </configuration>
</plugin>

 

 

 

 

 

 

 

 

 
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值