Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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 使用apachecassandra更新_Java_Cassandra - Fatal编程技术网

Java 使用apachecassandra更新

Java 使用apachecassandra更新,java,cassandra,Java,Cassandra,我有一个问题需要用java更新Cassandra。 群集中有3台服务器,其中您的IP为: 192.168.1.8 192.168.1.9 192.168.1.10 对于连接,我使用以下代码中的IP:192.168.1.8: Cluster cluster = Cluster.builder().addContactPoint("192.168.1.8").build(); Session session = cluster.connect("nfe"); List<St

我有一个问题需要用java更新Cassandra。 群集中有3台服务器,其中您的IP为:

  • 192.168.1.8
  • 192.168.1.9
  • 192.168.1.10
  • 对于连接,我使用以下代码中的IP:192.168.1.8:

    Cluster cluster = Cluster.builder().addContactPoint("192.168.1.8").build();
    
        Session session = cluster.connect("nfe");
    
        List<String> chaves = new ArrayList<String>();
    
        chaves.add("1");
        chaves.add("2");
        chaves.add("3");
        chaves.add("4");
        chaves.add("5");
        chaves.add("6");
        chaves.add("7");
        chaves.add("8");
        chaves.add("9");
        chaves.add("10");
    
        Map<String, ObjTeste> teste = new HashMap<String, ObjTeste>();
    
        for (String chave : chaves) {
    
            Assignment set = set(STATUSMANIFESTACAO, 1);
            Statement update = update("nfe", "xmldev").with(set).where(eq(CHAVE, chave));
            session.execute(update);
            session2.execute(update);
            session3.execute(update);
    
        }
    
        session.close();
        cluster.close();
    
    Cluster Cluster=Cluster.builder().addContactPoint(“192.168.1.8”).build();
    会话=cluster.connect(“nfe”);
    List chaves=new ArrayList();
    chaves.添加(“1”);
    chaves.添加(“2”);
    chaves.添加(“3”);
    chaves.添加(“4”);
    chaves.添加(“5”);
    chaves.添加(“6”);
    chaves.添加(“7”);
    chaves.添加(“8”);
    chaves.添加(“9”);
    chaves.添加(“10”);
    Map teste=newhashmap();
    for(字符串chave:chaves){
    分配集=集(StatusManifestaco,1);
    语句update=update(“nfe”,“xmldev”)。带有(set)。其中(eq(CHAVE,CHAVE));
    执行(更新);
    会话2.执行(更新);
    会话3.执行(更新);
    }
    session.close();
    cluster.close();
    
    此模式不会更新用于升级的任何密钥。 如果我这样使用它,它会起作用:

        Cluster cluster = Cluster.builder().addContactPoint("192.168.1.8").build();
        Cluster cluster2 = Cluster.builder().addContactPoints("192.168.1.10").build();
        Cluster cluster3 = Cluster.builder().addContactPoints("192.168.1.9","192.168.1.10").build();
    
    
        Session session = cluster.connect("nfe");
        Session session2 = cluster2.connect("nfe");
        Session session3 = cluster3.connect("nfe");
    
        List<String> chaves = new ArrayList<String>();
    
        chaves.add("1");
        chaves.add("2");
        chaves.add("3");
        chaves.add("4");
        chaves.add("5");
        chaves.add("6");
        chaves.add("7");
        chaves.add("8");
        chaves.add("9");
        chaves.add("10");
    
        Map<String, ObjTeste> teste = new HashMap<String, ObjTeste>();
    
        for (String chave : chaves) {
    
            Assignment set = set(STATUSMANIFESTACAO, 1);
            Statement update = update("nfe", "xmldev").with(set).where(eq(CHAVE, chave));
            session.execute(update);
            session2.execute(update);
            session3.execute(update);
    
        }
        session.close();
        cluster.close();
    
    Cluster Cluster=Cluster.builder().addContactPoint(“192.168.1.8”).build();
    Cluster cluster2=Cluster.builder().addContactPoints(“192.168.1.10”).build();
    Cluster cluster3=Cluster.builder().addContactPoints(“192.168.1.9”、“192.168.1.10”).build();
    会话=cluster.connect(“nfe”);
    会话session2=cluster2.connect(“nfe”);
    会话session3=cluster3.connect(“nfe”);
    List chaves=new ArrayList();
    chaves.添加(“1”);
    chaves.添加(“2”);
    chaves.添加(“3”);
    chaves.添加(“4”);
    chaves.添加(“5”);
    chaves.添加(“6”);
    chaves.添加(“7”);
    chaves.添加(“8”);
    chaves.添加(“9”);
    chaves.添加(“10”);
    Map teste=newhashmap();
    for(字符串chave:chaves){
    分配集=集(StatusManifestaco,1);
    语句update=update(“nfe”,“xmldev”)。带有(set)。其中(eq(CHAVE,CHAVE));
    执行(更新);
    会话2.执行(更新);
    会话3.执行(更新);
    }
    session.close();
    cluster.close();
    

    有一种方法可以不使用太多会话,并使用一个会话更新所有密钥?

    我不确定我是否理解您的问题。你是说第一个代码块不做更新吗?在第一个块中,
    session2
    session3
    在哪里声明?另外,为什么要更新同一个键3次,为什么要为第二个块中的每个节点创建集群?tks all,问题是服务器需要一个小时,为了更正,我为所有节点设置了正确的小时。