hbase mulesoft cloudhub连接

ffdz8vbo  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(586)

我必须将cloudhub连接到hbase。我已从community edition hbase connector获取trid,但未成功。然后我尝试使用java代码,但再次失败。hbase团队只提供了主ip(10.99.x.x)、端口(2181)和用户名(hadoop)。
我尝试了以下选项:
通过java代码:
公共对象transformmessage(mulemessage message,string outputencoding)引发transformerexception{try{

Configuration conf = HBaseConfiguration.create();
        //conf.set("hbase.rotdir", "/hbase");
        conf.set("hbase.zookeeper.quorum", "10.99.X.X");
        conf.set("hbase.zookeeper.property.clientPort", "2181");
        conf.set("hbase.client.retries.number", "3");
        logger.info("############# Config Created ##########");
        // Create a get api for consignment table
        logger.info("############# Starting Consignment Test  ##########");
        // read from table
        // Creating a HTable instance
        HTable table = new HTable(conf, "consignment");
        logger.info("############# HTable instance Created ##########");
        // Create a Get object
        Get get = new Get(Bytes.toBytes("6910358750"));
        logger.info("############# RowKey Created ##########");
        // Set column family to be queried
        get.addFamily(Bytes.toBytes("consignment_detail"));
        logger.info("############# CF Created ##########");
        // Perform get and capture result in a iterable
        Result result = table.get(get);
        logger.info("############# Result Created ##########");
        // Print consignment data
        logger.info(result);

        logger.info(" #### Ending Consignment Test ###");

        // Begining Consignment Item Scanner api
        logger.info("############# Starting Consignmentitem test ##########");

        HTable table1 = new HTable(conf, "consignmentitem");
        logger.info("############# HTable instance Created ##########");
        // Create a scan object with start rowkey and end rowkey (partial
        // row key scan)
        // actual rowkey design: <consignment_id>-<trn>-<orderline>
        Scan scan = new Scan(Bytes.toBytes("6910358750"),Bytes.toBytes("6910358751"));
        logger.info("############# Partial RowKeys Created ##########");
        // Perform a scan using start and stop rowkeys
        ResultScanner scanner = table1.getScanner(scan);
        // Iterate over result and print them
        for (Result result1 = scanner.next(); result1 != null; result1 = scanner.next()) {
            logger.info("Printing Records\n");
            logger.info(result1);
        }
        return scanner;
    }  catch (MasterNotRunningException e) {
        logger.error("HBase connection failed! --> MasterNotRunningException");
        logger.error(e);
    } catch (ZooKeeperConnectionException e) {
        logger.error("Zookeeper connection failed! -->ZooKeeperConnectionException");
        logger.error(e);
    } catch (Exception e) {
        logger.error("Main Exception Found! -- Exception");
        logger.error(e);
    }
    return "Not Connected";

}

上面的代码给出下面的错误
java.net.unknownhostexception:未知主机:ip-10-99-x-x.ap-southeast-2.compute.internal
cloudhub似乎找不到主机名,因为cloudhub没有配置dns
当我尝试使用community edition hbase connector时,出现以下异常:
org.apache.hadoop.hbase.masternotrunningexception:重试3次
请建议一些方法。。。rgeards nilesh电子邮件:bit.nilesh。kumar@gmail.com

deikduxw

deikduxw1#

似乎您正在配置客户端以尝试连接到位于专用ip地址(10.99.x.x)的zookeeper仲裁。我假设您已经设置了专有网络,这是您的cloudhub工作人员连接到您的专用网络所必需的。
您的unknownhostexception表示您连接到的hbase服务器托管在aws上,该服务器定义了与错误消息中的名称类似的私有域名。
所以可能发生的是:
mule连接到zookeeper,询问有哪些hbase节点,然后返回 ip-10-99-X-X.ap-southeast-2.compute.internal .
mule试图连接到该地址以查找htable“寄售”,但无法解析该名称的ip地址。
不幸的是,如果这是正在发生的事情,它将需要一些网络的变化来修复它。专有网络发现表单中的常见问题说明了有关私有dns的内容:
目前我们无法将dns查询中继到内部dns服务器。您需要使用ip地址或公共dns条目。小心连接到可能通过使用内部dns条目重定向到虚拟ip端点的系统。
您可以使用公共dns和弹性ip来解决这个问题,但这需要您将hbase集群暴露到internet上。

0pizxfdo

0pizxfdo2#

我相信cloudhub网络指南中包含了您问题的答案。
https://developer.mulesoft.com/docs/display/current/cloudhub+networking+guide

相关问题