Привет, я установил ubuntu на свою машину и установил hbase0.98-hadoop2. Затем я редактировал файл hbase-env.sh и hbase-site.xml. Теперь моя оболочка hbase работает нормально. Но когда я пытаюсь подключиться к hbase из кода Java, используя hbase java api. Я получаю ошибки. Мой код:
Configuration hc = HBaseConfiguration.create();
HTableDescriptor ht = new HTableDescriptor("User");
ht.addFamily( new HColumnDescriptor("Id"));
ht.addFamily( new HColumnDescriptor("Name"));
System.out.println( "connecting" );
HBaseAdmin hba = new HBaseAdmin( hc );
System.out.println( "Master running ? "+ hba.isMasterRunning());
System.out.println( "Creating Table" );
hba.createTable( ht );
System.out.println("Done......");
Мой выход:
connecting
Exception in thread "main" java.lang.NumberFormatException: For input string: "42529';��7ec�PBUF
jamil-37037�������)
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at org.apache.hadoop.hbase.HServerAddress.<init>(HServerAddress.java:63)
at org.apache.hadoop.hbase.MasterAddressTracker.getMasterAddress(MasterAddressTracker.java:63)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:353)
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:89)
at HBaseConnector.main(HBaseConnector.java:157)
Мой код создает проблему в HbaseAdmin. Любая помощь, пожалуйста? Помните, что я установил автономную hbase и не устанавливал hadoop отдельно. Это был тот же пакет hbase0.98.6-hadoop2.
Если вы используете maven, посмотрите, используете ли вы точные зависимые от версии зависимости, как ваша настройка hbase. Foпример, если ваша hbase предполагает hbase-0.xx, вы должны добавить зависимость hbase-0.xx в свой проект. Аналогичным образом проверьте все другие зависимости, например, hadoop, zookeeper. Если не maven, загрузите соответствующие банки и добавьте их в свой путь к классам. Если вы не знаете, перейдите в папку lib вашего приложения и посмотрите на банки.
Надеюсь это поможет. благодаря