Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Arrow Plasma客户端-Can';无法连接到内存存储(未满足链接错误)_Java_Sockets_Java Native Interface_Pyarrow_Apache Arrow - Fatal编程技术网

Java Apache Arrow Plasma客户端-Can';无法连接到内存存储(未满足链接错误)

Java Apache Arrow Plasma客户端-Can';无法连接到内存存储(未满足链接错误),java,sockets,java-native-interface,pyarrow,apache-arrow,Java,Sockets,Java Native Interface,Pyarrow,Apache Arrow,我正在尝试使用JavaAPI for ApacheArrow连接到内存存储。我已经在Python中成功地完成了这项工作,通过遵循指南使用Python API 我也看过了,但没什么帮助 使其看起来与其他文档类似 确保plasma对象存储正在运行(通常为“/tmp/plasma” (对于示例) 创建客户端 通过为其他两个参数提供对象存储(“/tmp/plasma”)和(“,0”),连接到客户端 然而,当尝试使用下面这行代码时,我得到了一个不满意的linkerror,在apachearrow文档中

我正在尝试使用JavaAPI for ApacheArrow连接到内存存储。我已经在Python中成功地完成了这项工作,通过遵循指南使用Python API

我也看过了,但没什么帮助

使其看起来与其他文档类似

  • 确保plasma对象存储正在运行(通常为“/tmp/plasma” (对于示例)

  • 创建客户端
  • 通过为其他两个参数提供对象存储(“/tmp/plasma”)和(“,0”),连接到客户端

  • 然而,当尝试使用下面这行代码时,我得到了一个不满意的linkerror,在apachearrow文档中找不到任何引用。谷歌的其他解决方案(如calling System.load)也没有成功

    PlasmaClient客户端=新的PlasmaClient(“/tmp/plasma”,0)

    下面可以看到我的错误消息的副本:

    线程“main”java.lang.UnsatisfiedLinkError中的异常:org.apache.arrow.plasma.PlasmaClientJNI.connect(Ljava/lang/String;Ljava/lang/String;I)J 位于org.apache.arrow.plasma.PlasmaClientJNI.connect(本机方法) 在org.apache.arrow.plasma.PlasmaClient上 在plas.main(plas.java:11)



    感谢您的帮助。谢谢大家!

    我已经有一段时间没有这样做了,但问题很简单,尽管不容易找到。在测试例程中,您可以找到一条重要的行:

    System.loadLibrary(“plasma_java”);
    val plasmaClient=新的plasmaClient(“/tmp/plasma”,0);
    
    < >共享库<代码> LbPcPaMaJava.Sux/Sux>,在编译CMake中的C++扩展时,选项为代码> -DrRayPrasMajJavaAclipse=。在
    arrow/java/plasma/test.sh
    文件中,您可以找到完整的build命令,但这是从该文件派生的命令:

    cd箭头/cpp
    mkdir发布
    光盘发行
    cmake-DCMAKE\u BUILD\u TYPE=发布\
    -DCMAKE_C_FLAGS=“-g-O3”\
    -DCMAKE_CXX_FLAGS=“-g-O3”\
    -DARROW_构建_测试=关闭\
    -DARROW_HDFS=on\
    -DARROW\u BOOST\u USE\u SHARED=on\
    -DARROW_PYTHON=on\
    -DARROW_PLASMA=on\
    -DPLASMA_PYTHON=on\
    -DARROW_JEMALLOC=关闭\
    -DARROW_带_BROTLI=关闭\
    -DARROW_与_LZ4=关闭\
    -DARROW_带_ZLIB=关闭\
    -DARROW_带_ZSTD=关闭\
    -DARROW\u PLASMA\u JAVA\u CLIENT=on\
    ..
    使VERBOSE=1-j4
    安装
    
    我只是运行了它,它按照需要构建了所有东西。如果您想在某处安装它,只需添加前缀
    -DCMAKE\u install\u prefix=/home/myuser/install here


    如果您运行
    System.loadLibrary(“plasma_java”)
    它只在
    的情况下工作。因此
    可以在您的系统中的某个地方找到(这种东西通常在Linux上由环境变量
    LD_LIBRARY_PATH
    指定)。请注意,这也需要系统路径中的
    libplasma.so
    libarrow.so

    您可以在开发人员邮件列表中询问吗dev@arrow.apache.org? 这是非常前沿的东西,我的建议是缺少本机库(由于JNI),这是必需的。