Взаимодействие с HBase, работающим в Docker, через код Java.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Взаимодействие с HBase, работающим в Docker, через код Java.

Сообщение Anonymous »

Я новичок в Hbase и Java. Мне удалось запустить образ HBase в докере, и я могу беспрепятственно взаимодействовать с оболочкой hbase. А еще у меня есть доступ к пользовательскому интерфейсу для мониторинга HBase. Однако, когда я попытался написать код Java для взаимодействия с этим HBase, работающим в докере, я столкнулся с некоторой проблемой.
Мой код Java выглядит следующим образом:

Код: Выделить всё

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;

public class HBaseExample {
public static void main(String[] args) {
try {
// HBase Configuration
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "localhost");
config.set("hbase.zookeeper.property.clientPort", "2181");

// Establish connection
Connection connection = ConnectionFactory.createConnection(config);

// Access HBase table
Table table = connection.getTable(TableName.valueOf("my_table"));

// Retrieve data for a specific row
Get get = new Get(Bytes.toBytes("row1"));
Result result = table.get(get);
byte[] value = result.getValue(Bytes.toBytes("my_cf1"), Bytes.toBytes("col1"));

System.out.println("Value: " + Bytes.toString(value));

// Close resources
table.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
И когда я запускаю эту программу, она не распечатывает нужное значение в моей таблице hbase, вывод терминала:

Код: Выделить всё

log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
java.net.SocketTimeoutException: callTimeout=60000, callDuration=68630: can not resolve c47da4f0ee21,16020,1730323430132 row 'my_table,row1,99999999999999' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=c47da4f0ee21,16020,1730323430132, seqNum=-1
at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:159)
at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:80)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.net.UnknownHostException: can not resolve c47da4f0ee21,16020,1730323430132
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.createAddr(AbstractRpcClient.java:430)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.createBlockingRpcChannel(AbstractRpcClient.java:507)
at org.apache.hadoop.hbase.client.ConnectionImplementation.lambda$getClient$2(ConnectionImplementation.java:1214)
at org.apache.hadoop.hbase.util.CollectionUtils.computeIfAbsentEx(CollectionUtils.java:61)
at org.apache.hadoop.hbase.client.ConnectionImplementation.getClient(ConnectionImplementation.java:1212)
at org.apache.hadoop.hbase.client.ReversedScannerCallable.prepare(ReversedScannerCallable.java:111)
at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.prepare(ScannerCallableWithReplicas.java:399)
at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:105)
...  4 more
На стороне Docker-контейнера журнал показывает что-то вроде:

Код: Выделить всё

hbase-1  | ==> /hbase/logs/zookeeper.log  /hbase/logs/SecurityAuth.audit 

Подробнее здесь: [url]https://stackoverflow.com/questions/79143508/interact-with-hbase-running-in-docker-through-java-code[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»