Добавление значений в HBase с использованием метода Put.add () - PullRequest
0 голосов
/ 19 сентября 2018

Я пишу простой клиентский код Java для добавления значений в таблицу HBase.Я использую put.add(byte[] columnFamily, byte[] columnQualifier, byte[] value), но этот метод устарел в новом HBase API.Может кто-нибудь помочь, пожалуйста, как это сделать с помощью нового API Put?

Используя maven Я скачал JAR для HBase версии 1.2.0.

Я использую следующий код:

package com.NoSQL;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;


public class PopulatingData {

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

        String table = "Employee";

        Logger.getRootLogger().setLevel(Level.WARN);
        Configuration conf = HBaseConfiguration.create();
        Connection con = ConnectionFactory.createConnection(conf);
        Admin admin = con.getAdmin();

        if(admin.tableExists(TableName.valueOf(table))) {
            Table htable = con.getTable(TableName.valueOf(table));


            /*********** adding a new row ***********/

            // adding a row key


            Put p = new Put(Bytes.toBytes("row1"));



            p.add(Bytes.toBytes("ContactDetails"), Bytes.toBytes("Mobile"), Bytes.toBytes("9876543210"));
            p.add(Bytes.toBytes("ContactDetails"), Bytes.toBytes("Email"), Bytes.toBytes("abhc@gmail.com"));

            p.add(Bytes.toBytes("Personal"), Bytes.toBytes("Name"), Bytes.toBytes("Abhinav Rawat"));
            p.add(Bytes.toBytes("Personal"), Bytes.toBytes("Age"), Bytes.toBytes("21"));
            p.add(Bytes.toBytes("Personal"), Bytes.toBytes("Gender"), Bytes.toBytes("M"));

            p.add(Bytes.toBytes("Employement"), Bytes.toBytes("Company"), Bytes.toBytes("UpGrad"));
            p.add(Bytes.toBytes("Employement"), Bytes.toBytes("DOJ"), Bytes.toBytes("11:06:2018"));
            p.add(Bytes.toBytes("Employement"), Bytes.toBytes("Designation"), Bytes.toBytes("ContentStrategist"));

            htable.put(p);


            /**********************/

            System.out.print("Table is Populated");`enter code here`            

        }else {

            System.out.println("The HBase Table named "+table+" doesn't exists.");
        }

        System.out.println("Returnning Main");

    }

}

1 Ответ

0 голосов
/ 19 сентября 2018

Используйте метод addColumn ():

Put put = new Put(Bytes.toBytes(rowKey));
put.addColumn(NAME_FAMILY, NAME_COL_QUALIFIER, name);

Более подробную информацию см. Ниже в javadoc: https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Put.html

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