簡體   English   中英

從cassandra加載數據到flink

[英]load data from cassandra to flink

我如何在Java或python中使用flink從cassandra中讀取信息,我找不到關於此主題的好的文檔,而且我想將此代碼連接到我的網站,那是怎么回事。

我有這段代碼,但用完了一個異常

java.lang.NoClassDefFoundError: org/apache/flink/api/common/typeinfo/TypeHint
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.api.common.typeinfo.TypeHint
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
import com.datastax.driver.core.Cluster;
import org.apache.flink.api.common.typeinfo.TypeHint;
import org.apache.flink.api.java.DataSet;
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.tuple.Tuple5;
import org.apache.flink.api.java.typeutils.TupleTypeInfo;
import org.apache.flink.batch.connectors.cassandra.CassandraInputFormat;
import org.apache.flink.streaming.connectors.cassandra.ClusterBuilder;

public class main {
    public static void main(String[] args) {
        final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();

        ClusterBuilder clusterBuilder = new ClusterBuilder() {

            @Override
            public Cluster buildCluster(Cluster.Builder builder) {

                return builder.addContactPoint("127.0.0.1").withPort(9042).build();
            }
        };

        DataSet<Tuple5<String,String,String,Integer,String>> inputRecords = env
                .createInput
                        (new CassandraInputFormat<Tuple5<String,String,String,Integer,String>>("Select profilealternative from profiles.profile LIMIT 1 ;",clusterBuilder)
            ,TupleTypeInfo.of(new TypeHint<Tuple5<String,String,String,Integer,String>>() {}));

    }
}

問題的主要原因是ClassNotFoundException這意味着您的應用程序未鏈接所有必需的庫來創建uberjar,或者類路徑中缺少相應的庫。

您在類路徑中缺少的類來自flink-dist.jar文件(名稱也取決於版本,例如flink-dist_2.12-1.9.0.jar)。 運行程序時,請檢查文件是否在類路徑中。 另外,您可能還需要其他通常位於apache-flink發行版lib目錄中的jar。 您還可以創建一個包含所有依賴項的胖子jar,然后運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM