我可以在Android应用程序中运行Apache Flink吗?
我试图在Android应用程序中运行ApacheFlink。我只想运行一个最低限度的工作示例,如下所示:我可以在Android应用程序中运行Apache Flink吗?,android,apache-flink,Android,Apache Flink,我试图在Android应用程序中运行ApacheFlink。我只想运行一个最低限度的工作示例,如下所示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); runFlinkExample(); } private void runFlinkEx
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
runFlinkExample();
}
private void runFlinkExample() {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<Integer> stream = env.fromCollection(Arrays.asList(1, 2, 3, 4, 5));
stream.print();
try {
env.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
build.gradle(项目)
第一个问题是,我得到以下错误:
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.flink.streaming.api.environment.StreamExecutionEnvironment" on path: DexPathList[[zip file "/data/app/~~DbT_CZ7AhLED2xZgLBk ....
如果没有出现这个错误,我会得到Akka Actor错误,因为我必须排除'reference.conf',否则代码将无法编译。但是,这会导致更多的例外情况,例如缺少akka版本
所以我的一般问题是:是否可以在Android应用程序中运行Flink?或者这是不可能的(推荐)?也许有人知道如何修改gradle文件(或其他文件)来运行我的示例。或者有人已经在Android中成功使用了Flink。我想香草Flink不会在Android上运行。它使用了一些直接缓冲区、反射和不安全的方法,这些方法不在Android afaik上运行 你能解释一下你的用例吗,这样我就能知道让Flink在Android上运行对你有多大价值
编辑:扩展以供评论 Flink主要是一种用于分布式数据处理的工具。它可以在一台机器上使用,但通常的假设是它的功能强大到可以扩展。我不认为任何一款安卓手机都是可行的硬件
我认为您只想使用CEP DSL进行本地事件处理。您可能根本不需要任何并行性。在这种情况下,我会寻找一个简单的CEP框架,例如。如果它运行的是非分布式的,那么它可以提供比Flink更多的功能。我想使用FlinkCEP实时检测Android传感器值中的模式。数据流将由传感器(陀螺仪和加速度计)生成。然后我想检测模式,例如:gyroX值>0.2,跟随accY值<0.001,跟随。。。所以我希望有一种在Android上运行FlinkCEP的方法。扩展我的消息以解决您的用例。谢谢您的回答。是的,我只需要CEP-DSL。但对于CEP,我需要设置一个本地流执行环境,如Vanilla Flink。不幸的是,我还不知道怎么做。就像我说的,我会在你的情况下寻找一个非flink的解决方案。您正试图用锤子安装螺钉。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.2"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.flink.streaming.api.environment.StreamExecutionEnvironment" on path: DexPathList[[zip file "/data/app/~~DbT_CZ7AhLED2xZgLBk ....