您的位置:首页 > 其它

HBase系列 1:开发环境搭建

2017-08-09 23:31 197 查看

Hbase单机部署

需事先准备安装好hadoop 2.x,单机版部署即可。之后,HBase单机部署只需两步:

1. 编辑hosts文件,给本机ip定义一个host name

2. 编辑 conf/hbase-site.xml并添加

```
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
```


3. 修改conf/regionservers, 由于是单机部署,只需要填写之前在hosts文件中定义的host

4. bin/start-all.sh启动HBase,并通过hbase shell 连接hbase,进行测试。

Intellij IDEA用gradle构建工程

使用IDEA 构建一个gradle的空项目

build.gradle中添加hbase client依赖,注意版本与HBase安装版本一致

compile 'org.apache.hbase:hbase-client:1.2.6'


使用HBase api 连接HBase

代码如下:

public static void main(String[] args) throws IOException {
Configuration hConf = HBaseConfiguration.create();

hConf.set("hbase.zookeeper.quorum", "hbaseHost"); //这里使用与HBase主机相同的host
hConf.set("hbase.zookeeper.property.clientPort", "2181");

Connection connection = ConnectionFactory.createConnection(hConf);
Admin admin = connection.getAdmin();
for (TableName tableName : admin.listTableNames()){
System.out.println("Table name is :" + tableName.getNameAsString());
}

TableName tableName = TableName.valueOf("demo");
if(!admin.tableExists(tableName)){
HTableDescriptor tableDesc = new HTableDescriptor(tableName);
HColumnDescriptor colDesc = new HColumnDescriptor("cf");
tableDesc.addFamily(colDesc);

admin.createTable(tableDesc);
System.out.println("Table demo created");
}
}


可以看出HBase client是通过连接Zookeeper来与HBase进行通信的。

调试时一个无限等待的小坑

注意hosts的配置,如果client在连接时,如果HBase主机和client所在主机,关于使用的host 所配置的ip不一致的话,client在连上zookeeper之后,就会陷入无限等待。

比如,HBase 主机(192.168.1.199) hosts配置了127.0.0.1 hbase, regionservers 配置的是hbase, HBase正常启动了。而 Client hosts配置192.168.1.100 hbase。 这时Client在连接时就会陷入无限等待。必须把HBase的host 配置改为192.168.1.100 hbase。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hbase