Windows安装Hbase并用c# Thrift访问hbase
https://blog.csdn.net/yuebao1991/article/details/72629479
下面我记录一下安装的过程,以备下次再遇到安装这种环境:
1.下载安装包,jdk1.8,hadoop以及hbase
hadoop-common-2.2.0-bin-master.zip
或者百度网盘
https://pan.baidu.com/s/1Z9Eedbh44Pjr_ZGnDI5pNg 密码:0mc5
下载hbase也可以去官网下载自己所需要的的版本,我这里用的是hbase-1.2.0
官网地址:http://archive.apache.org/dist/hbase/
2.配置hadoop环境
在系统环境变量中增加HADOOP_HOME,并在path中增加%HADOOP_HOME%\bin
3.配置hbase环境
在hbase-1.2.0\conf下找到hbase-env.cmd
配置以下属性:
set HBASE_MANAGES_ZK=false
set JAVA_HOME=D:\DEV\env\jdk1.8.0_77
set HBASE_CLASSPATH=F:\hbase\hbase-1.2.0\conf
JAVA_HOME配置自己的jdk路径
HBASE_CLASSPATH配置自己的hbase中conf文件夹路径
在hbase-1.2.0\conf中找到hbase-site.xml
配置以下属性:
<property>
<name>hbase.rootdir</name>
<value>d:/hbase-1.2.0/root</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>d:/hbase-1.2.0/tem</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>127.0.0.1</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>d:/hbase-1.2.0/zoo</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
同样,涉及到路径的都配置自己的hbase中的路径,其中没有的文件夹,会自己创建
4.启动hbase
进入到hbase-1.2.0\bin目录下,启动start-hbase.cmd,看到控制台无报错信息,并启动停止即可
在cmd模式下,进入到hbase-1.2.0\bin目录下:
输入命令:hbase shell
出现hbase(main):001.0>
恭喜,成功搭建好单机版的hbase环境
5.创建表
输入 create 'user','nameinfo'
正常的话会出现类似 0 row(s) in 1.3200 seconds 这样的结果
输入list
即可看见刚才创建的表user
=====================================================================
以上部分为转载,下面是个人添加的部分
通过web访问方式
http://127.0.0.1:16010
附:.net c# 连接 hbase
首先在windows hbase服务器上可通过hbase.cmd thrift start 可启动thrift服务,然后可以使用以下代码做测试
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Thrift;
using Thrift.Protocol;
using Thrift.Transport;
using Thrift.Collections;
using Thrift.Server;
using ThriftHbaseCommon;
namespace TestConsoleApplication
{
class Program
{
static void Main(string[] args)
{
TTransport transport = null;
try
{
//实例化Socket连接
transport = new TSocket("127.0.0.1", 9090);
//实例化一个协议对象
TProtocol tProtocol = new TBinaryProtocol(transport);
//实例化一个Hbase的Client对象
var client = new Hbase.Client(tProtocol);
//打开连接
transport.Open();
//根据表名,RowKey名来获取结果集
Listreslut = client.getRow(Encoding.UTF8.GetBytes("User"), Encoding.UTF8.GetBytes("row1"), null);
//遍历结果集
foreach (var key in reslut)
{
Console.WriteLine("RowKey:\n{0}",Encoding.UTF8.GetString(key.Row));
//打印Qualifier和对应的Value
foreach (var k in key.Columns)
{
Console.WriteLine("Family:Qualifier:" + "\n" + Encoding.UTF8.GetString(k.Key));
Console.WriteLine("Value:"+Encoding.UTF8.GetString(k.Value.Value));
}
}
}
catch (Exception e)
{
System.Console.WriteLine(e);
}
finally
{
if (null != transport)
{
transport.Close();
}
}
Console.ReadLine();
}
}
}