Не могу подключиться к hbase через phoenix

Я пытаюсь подключить hbase через phoenix: сначала я добавил phoenix-2.jar в каталог hbase lib. Затем перезапустите региональный сервер, а затем создайте проект в netbeans и добавьте phoenic-2-client.jar в путь к классам проекта. Затем добавил строки ниже в hbase.site.xml для hbase и phoenix.

    <property>
<name>hbase.master</name>
<value>23.201.00.100:60000</value>
<description>The host and port the HBase master runs at. 
</description>
</property>
<property>
  <name>hbase.zookeeper.property.clientPort</name>
  <value>2222</value>
  <description>Property from ZooKeeper's config zoo.cfg.
  The port at which the clients will connect.
  </description>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
         <value>rs1.example.com,rs2.example.com,rs3.example.com,rs4.example.com,rs5.example.com</value>
  <description>Comma separated list of servers in the ZooKeeper Quorum.
  For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
  By default this is set to localhost for local and pseudo-distributed modes
  of operation. For a fully-distributed setup, this should be set to a full
  list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
  this is the list of servers which we will start/stop ZooKeeper on.
  </description>
</property>
<property>
  <name>hbase.zookeeper.property.dataDir</name>
  <value>/usr/local/zookeeper</value>
  <description>Property from ZooKeeper's config zoo.cfg.
  The directory where the snapshot is stored.
  </description>
</property>

Мой hbase находится в псевдораспределенном режиме. Наконец, я написал следующий код в netbeans для подключения к hbase:

 Connection conn;
    Properties prop = new Properties();
      try{
        Class.forName("com.salesforce.phoenix.jdbc.PhoenixDriver");
        conn =  DriverManager.getConnection("jdbc:phoenix:rs1.example.com,rs2.example.com,rs3.example.com,rs4.example.com,rs5.example.com:2222:hdfs://localhost:8020/hbase");
        System.out.println(conn);

но показывает эту ошибку:

    java.sql.SQLException: ERROR 102 (08001): Malformed connection url. jdbc:phoenix:rs1.example.com,rs2.example.com,rs3.example.com,rs4.example.com,rs5.example.com:2222:hdfs://localhost:8020/hbase
    at com.salesforce.phoenix.exception.SQLExceptionInfo.buildException(SQLExceptionInfo.java:146)
    at com.salesforce.phoenix.jdbc.PhoenixEmbeddedDriver$ConnectionInfo.create(PhoenixEmbeddedDriver.java:206)
    at com.salesforce.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:78)
    at  com.salesforce.phoenix.jdbc.PhoenixEmbeddedDriver.connect(PhoenixEmbeddedDriver.java:115)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:233)
    at hbase.phoenix.HbasePhoenix.main(HbasePhoenix.java:30)
BUILD SUCCESSFUL (total time: 2 seconds)

Пожалуйста, направьте меня..


person Asma    schedule 21.08.2013    source источник
comment
Пожалуйста, используйте надлежащие заглавные буквы и отступы. Я бросил редактирование на полпути.   -  person kiheru    schedule 21.08.2013
comment
Вы указали имя пользователя и пароль в XML-файле или URL-адресе подключения?   -  person Soosh    schedule 21.08.2013
comment
нет, я не определял имя пользователя и пароль. я не уверен, что код правильный или нет.. я не знаю, что делать это   -  person Asma    schedule 21.08.2013
comment
Вы подключались к HBase без phoenix? И что означает hdfs в вашем URL-адресе подключения? Или вы знаете обо всем этом?   -  person Soosh    schedule 21.08.2013
comment
Нет, я пытаюсь подключиться к hbase через драйвер jdbc, но не могу его найти. мое отношение db к hbase.   -  person Asma    schedule 21.08.2013
comment
hdfs — это значение hbase.rootdir в файле hbase-site.xml.   -  person Asma    schedule 21.08.2013
comment
так как у вас недостаточно репутации, я не могу общаться с вами здесь, свяжитесь со мной по адресу ee.amir.noori@gmail   -  person Soosh    schedule 21.08.2013
comment
хорошо жду тебя! не трать мое время :Р   -  person Soosh    schedule 21.08.2013


Ответы (4)


Проверьте, есть ли эта ссылка< /а> помогает.

Как упоминалось в проекте Phoenix, URL-адрес подключения jdbc должен быть таким: jdbc:phoenix:zookeeper1:port,zookeeper2:port

По умолчанию zookeeper прослушивает порт 2181.

Спасибо

person Sankar    schedule 23.08.2013

Как ясно говорит ошибка, ваш URL-адрес подключения к базе данных неверен в методе getConnection:

jdbc:phoenix:rs1.example.com,rs2.example.com,rs3.example.com,rs4.example.com,rs5.example.com:2222:hdfs://localhost:8020/hbase

Я считаю, что ваш URL-адрес подключения jdbc должен выглядеть примерно так:

jdbc:hbql;maxtablerefs=10;hbase.master=23.201.00.100:60000
person Juned Ahsan    schedule 21.08.2013
comment
я думаю, что этот URL-адрес подключения работает с hbql, но я хочу подключиться через phoenix... пожалуйста, помогите мне. - person Asma; 21.08.2013

Добавление ответа для тех, кто все еще ищет:

Ваша строка подключения jdbc должна выглядеть так:

jdbc:phoenix:zookeeper_quorum:2181:/hbase_znode или

jdbc:phoenix:zookeeper_quorum:/hbase_znode

(По умолчанию zookeeper прослушивает порт 2181.)

zookeeper_quorum – имена серверов, разделенные запятыми (должны быть полностью определенные DNS-имена). hbase_znode – hbase или hbase-unsecured

e.g.

jdbc: феникс: server1.abc.com, server2.abc.com: 2181: / hbase

person viczsaurav    schedule 06.06.2016

Я использовал Phoenix-4.7.0-HBase-1.1. Если вы работаете в псевдо-распределенном режиме, вы можете сразу выполнить connection = DriverManager.getConnection("jdbc:phoenix");. Просто убедитесь, что ваша Java-программа может взаимодействовать с Master, Zookeeper и RegionServer. Проверьте, какие порты и IP/имя хоста используются. В моем случае (туннелирование SSH) я убедился, что порты HMaster:16000, HQuorumPeer:2181 и HRegionServer:16201 не заблокированы.

person jpllosa    schedule 08.06.2016