HBase доступ из Java API Client - PullRequest
0 голосов
/ 14 декабря 2018

У меня проблемы с доступом к HBase из java API Client, и я не могу понять, что я делаю неправильно.

Я использую HBase 1.1.2 в автономном режиме на ВМ (10.166.205.41) с RHEL6 и JAVA 1.7.Вот моя конфигурация HBase из hbase-site.xml

<configuration>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>10.166.205.41</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>9091</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///usr/local/hbaserootdir/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/hbaserootdir/zookeeper</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
</configuration>

Мой файл regionservers определен следующим образом:

10.166.205.41

Клиент оболочки HBase работает нормально, и я могу получить доступ кОсновной интерфейс HBase с URL 10.166.205.41:16010.

Вот мой клиент Java API, работающий на Eclipse в Windows 7. Pom.xml

<dependencies>
    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase</artifactId>
         <version>1.1.2</version>
         <type>pom</type>
    </dependency>
</dependencies>

Исходный код:

public class InsertData {

    final static Logger logger = Logger.getLogger(InsertData.class);

    public static void main(String[] args) throws IOException {

        Configuration config = HBaseConfiguration.create();

        config.setInt("timeout", 120000);
        config.set("hbase.zookeeper.quorum","10.166.205.41");
        config.set("hbase.zookeeper.property.clientPort", "9091");

        Connection connection = ConnectionFactory.createConnection(config);

        Table table = connection.getTable(TableName.valueOf("emp"));

        try {

            Get g = new Get(Bytes.toBytes("1"));
            Result result = table.get(g);

            byte [] name = result.getValue(Bytes.toBytes("personal data"), Bytes.toBytes("name"));

            logger.info("name : " + Bytes.toString(name));

        } finally {
            table.close();
            connection.close();
        }
    }
}

Во время выполнения не удалось подключиться к серверу 10.166.205.41:41571.

2018-12-14 16:35:19 DEBUG FailedServers:56 - Added failed server with address hlzudd5hdf01.yres.ytech/10.166.205.41:41571 to list caused by org.apache.hbase.thirdparty.io.netty.channel.ConnectTimeoutException: connection timed out: hlzudd5hdf01.yres.ytech/10.166.205.41:41571
2018-12-14 16:35:19 DEBUG ClientCnxn:843 - Reading reply sessionid:0x167ad4d815d000b, packet:: clientPath:/hbase/meta-region-server serverPath:/hbase/meta-region-server finished:false header:: 3,4  replyHeader:: 3,4697,0  request:: '/hbase/meta-region-server,F  response:: #ffffffff0001a726567696f6e7365727665723a3431353731ffffffa0ffffffe9ffffff80fffffffd5611ffffff8c6a50425546a24a17686c7a7564643568646630312e797265732e797465636810ffffffe3ffffffc4218ffffffceffffff93ffffffb6ffffffeafffffffa2c100183,s{4519,4519,1544800813291,1544800813291,0,0,0,0,77,0,4519} 
2018-12-14 16:35:19 DEBUG ClientCnxn:742 - Got ping response for sessionid: 0x167ad4d815d000b after 38ms
2018-12-14 16:35:19 DEBUG AbstractRpcClient:349 - Not trying to connect to hlzudd5hdf01.yres.ytech/10.166.205.41:41571 this server is in the failed servers list
2018-12-14 16:35:19 DEBUG ClientCnxn:843 - Reading reply sessionid:0x167ad4d815d000b, packet:: clientPath:/hbase/meta-region-server serverPath:/hbase/meta-region-server finished:false header:: 4,4  replyHeader:: 4,4697,0  request:: '/hbase/meta-region-server,F  response:: #ffffffff0001a726567696f6e7365727665723a3431353731ffffffa0ffffffe9ffffff80fffffffd5611ffffff8c6a50425546a24a17686c7a7564643568646630312e797265732e797465636810ffffffe3ffffffc4218ffffffceffffff93ffffffb6ffffffeafffffffa2c100183,s{4519,4519,1544800813291,1544800813291,0,0,0,0,77,0,4519} 

В главном интерфейсе HBase это адрес сервера региона, и, нажав на ссылку, я не могу получить страницу, ни,Я упаковал свою программу в виде jar-файла, и я запустил ее на своей виртуальной машине, и это заставляет меня думать, что это может быть проблема с доступом к порту.

Ввод netstat -tanp |Команда grep LISTEN на моей виртуальной машине RHEL6 сообщает, что порт моего регионального сервера прослушивает

tcp        0      0 10.166.205.41:41571         0.0.0.0:*                   LISTEN      26322/java

Кажется, у меня не запущен брандмауэр, поэтому не знаю, почему не удалось установить соединение.Может быть, это что-то еще.

Я не собираюсь исправлять эту проблему, так что, если бы вы могли мне помочь, это было бы очень признательно ^^ Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...