将数据加载到客户端节点外的Hbase

时间:2015-10-07 23:23:48

标签: hadoop hbase

提前致谢。 我们正在使用Java将数据加载到Hbase中。当我们在客户端节点(边缘节点)上运行程序时,它非常直接并且工作正常。但是我们希望在我们的网络中远程运行这个程序(在hadoop集群之外)以加载数据。 在hadoop集群的安全性方面是否需要做任何事情?当我在集群外部运行程序时它会挂起..

请指教。非常感谢您的帮助。

由于

此处代码

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;

import com.dev.stp.cvsLoadEventConfig;
import com.google.protobuf.ServiceException;

public class LoadData {


static String ZKHost;
static String ZKPort;
private static Configuration config = null;

private static String tableName;


public LoadData (){

    //Set Application Config
    LoadDataConfig conn = new LoadDataConfig();
    ZKHost = conn.getZKHost();
    ZKPort = conn.getZKPort();

    config = HBaseConfiguration.create();
    config.set("hbase.zookeeper.quorum", ZKHost);
    config.set("hbase.zookeeper.property.clientPort", ZKPort);
    config.set("zookeeper.znode.parent", "/hbase-unsecure");

    tableName = "E_DATA";
}   


//Insert Record
    try {
        HTable table = new HTable(config, tableName);

        Put put = new Put(Bytes.toBytes(eventId));
        put.add(Bytes.toBytes("E_DETAILS"), Bytes.toBytes("E_NAME"),Bytes.toBytes("test data 1"));   
        put.add(Bytes.toBytes("E_DETAILS"), Bytes.toBytes("E_TIMESTAMP"),Bytes.toBytes("test data 2"));


        table.put(put);
        table.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

0 个答案:

没有答案