Hi Xiyuan,

Thanks for bring the discussion. 

WRT the exception, it's because the native bundled in the rocksdb jar file 
isn't compiled with cross platform support. You can refer [1] for how to build 
rocksdb which has ARM platform.

WRT ARM support, the rocksdb currently used in Flink is hosted in the Ververica 
git [2], so it won't be difficult to make it support ARM. However, I guess this 
git exists just for temporary [3], not because we want to add much feature in 
rocksdb.

[1] https://github.com/facebook/rocksdb/issues/678 
<https://github.com/facebook/rocksdb/issues/678>
[2] https://github.com/dataArtisans/frocksdb 
<https://github.com/dataArtisans/frocksdb>
[3] https://issues.apache.org/jira/browse/FLINK-10471 
<https://issues.apache.org/jira/browse/FLINK-10471>

Regards,
Dian

> 在 2019年7月8日,上午9:17,Xiyuan Wang <wangxiyuan1...@gmail.com> 写道:
> 
> Hi Flink:
>  Recently we meet a problem that we have to test and run Flink on ARM
> arch. While after searching Flink community, I didn’t find an official ARM
> release version.
> 
> Since Flink is made by Java and Scala language which can be ran
> cross-platform usually, I think Flink can be built and ran on ARM directly
> as well. Then with my local test, Flink was built and deployed success as
> expected. But some tests were failed due to ARM arch. For example:
> 
> 1. MemoryArchitectureTest.testArchitectureNotUnknown:34 Values should be
> different. Actual: UNKNOWN
> 2. [ERROR]
> testIterator(org.apache.flink.contrib.streaming.state.RocksDBRocksStateKeysIteratorTest)
> Time elapsed: 0.234 s  <<< ERROR!
> java.io.IOException: Could not load the native RocksDB library
> at
> org.apache.flink.contrib.streaming.state.RocksDBRocksStateKeysIteratorTest.testIteratorHelper(RocksDBRocksStateKeysIteratorTest.java:90)
> at
> org.apache.flink.contrib.streaming.state.RocksDBRocksStateKeysIteratorTest.testIterator(RocksDBRocksStateKeysIteratorTest.java:63)
> Caused by: java.lang.UnsatisfiedLinkError:
> /tmp/rocksdb-lib-81ca7930b92af2cca143a050c0338d34/librocksdbjni-linux64.so:
> /tmp/rocksdb-lib-81ca7930b92af2cca143a050c0338d34/librocksdbjni-linux64.so:
> cannot open shared object file: No such file or directory (Possible cause:
> can't load AMD 64-bit .so on a AARCH64-bit platform)
> …
> 
>  Since the test isn’t passed totally, we are not sure if Flink 100%
> support ARM or not. Is it possible for Flink to support ARM release
> officially? I guess it may be not a very huge work basing on Java. I notice
> that Flink now uses trivis-ci which is X86 only for build & test check. Is
> it possible to add an ARM arch CI as well? It can be non-voting first. Then
> we can keep monitoring and fixing ARM related error. One day it’s stable
> enough, we can remove the non-voting tag and create Flink ARM release.
> 
>  There is an open source CI community called OpenLab[1] which can provide
> CI function and ARM resource to Flink by free. I’m one of the OpenLab
> members. If Flink commun think ARM support is fine, I can keep helping
> Flink to build and maintain the ARM CI job. There is an  POC for Flink ARM
> build job made by me on OpenLab system[2] and a live demo which built and
> run on an ARM VM[3]. You can take a look first.
> 
> Eager to get everybody’s feedback. Any question is welcome.
> 
> Thanks.
> 
> [1]: https://openlabtesting.org/
> [2]: https://github.com/theopenlab/flink/pull/1
> [3]: http://114.115.168.52:8081/#/overview

Reply via email to