下面是在本地用idea连接虚拟机上的hbase集群的实现代码的完整攻略。
连接HBase集群
准备工作
- 安装HBase
- 安装Zookeeper
- 开启HBase和Zookeeper服务
在IDEA中配置HBase插件
-
下载Intellij IDEA插件
HBase Integration
-
安装后重启IDEA
-
在IDEA的
Settings -> Other Settings -> HBase Integration
中配置 -
ZooKeeper Quorum: 进入hbase-site.xml中找到 hbase.zookeeper.quorum 的值,将其填入
- ZooKeeper Port: 2181
- HBase Master: 进入hbase-site.xml中找到 hbase.master 的值,将其填入
- HBase ZooKeeper Znode Parent: 进入hbase-site.xml中找到 hbase.zookeeper.property.dataDir 的值(默认为/tmp/hbase),在此基础上加上/hbase
示例一
public static void main(String[] args) throws IOException {
Configuration hbaseConfig = HBaseConfiguration.create();
hbaseConfig.set("hbase.zookeeper.quorum", "hadoop1");
hbaseConfig.set("hbase.zookeeper.property.clientPort", "2181");
hbaseConfig.set("hbase.rootdir", "hdfs://hadoop1:9000/hbase");
Connection connection = ConnectionFactory.createConnection(hbaseConfig);
Admin admin = connection.getAdmin();
Table table = connection.getTable(TableName.valueOf("tableName"));
}
示例二
- 用TableMapper来从HBase中读取数据,并在console中输出
- 在IDEA中创建HBaseMapper类
public class HBaseMapper extends TableMapper<ImmutableBytesWritable, Result> {
protected void map(ImmutableBytesWritable key, Result value, Context context)
throws IOException, InterruptedException {
String rowKey = Bytes.toString(key.get());
String name = Bytes.toString(value.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")));
System.out.println("rowKey: " + rowKey + " name: " + name);
}
}
- 在main函数中创建Job并运行
public static void main(String[] args) throws Exception {
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "hadoop1");
Job job = Job.getInstance(conf);
...
TableMapReduceUtil.initTableMapperJob(
"tableName", // 使用的表名
scan, // Scan实例,包含了扫描数据的条件
HBaseMapper.class, // 指定Mapper类
null, // Mapper输出key的数据类型
null, // Mapper输出value的数据类型
job);
job.waitForCompletion(true);
}
以上就是在本地用idea连接虚拟机上的hbase集群的实现代码,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在本地用idea连接虚拟机上的hbase集群的实现代码 - Python技术站