本插件通过 Thrift 接口连接到 HBase,并读取数据。推荐版本:HBase 版本为 1.2.0,Thrift 版本为 0.14.0。
HBase插件目前支持版本:relsease200, release130, release120。您当前查看的插件版本为release200,请使用DolphinDB 2.00.X版本server。若使用其它版本server,请切换至相应插件分支。
注意:目前插件市场仅支持 Linux 版本的 HBase。
listRemotePlugins
命令查看插件仓库中的插件信息。login("admin", "123456")
listRemotePlugins(, "http://plugins.dolphindb.cn/plugins/")
installPlugin
命令完成插件安装。installPlugin("hbase")
返回:<path_to_HBase_plugintxt>/pluginHBase.txt
loadPlugin
命令加载插件(即上一步返回的.txt文件)。loadPlugin("<path_to_HBase_plugintxt>/pluginHBase.txt")
通过以下命令开启 Thrift server,并指定端口 9090:
$HBASE_HOME/bin/hbase-daenom.sh start thrift -p 9090
通过以下命令关闭 Thrift:
$HBASE_HOME/bin/hbase-daemon.sh stop thrift
hbase::connect(host, port, [isFramed], [timeout])
通过 Thrift server 与 HBase 建立一个连接,返回一个 HBase 连接的句柄。
conn = hbase::connect("192.168.1.114", 9090)
注意:如果该连接长时间(默认为 1min)没有操作,HBase 会自动关闭这个连接。此时再通过该连接进行后续操作时,会报 No more data to read
的错误,需要执行 hbase::connect
重新进行连接。通过 HBase 的配置文件(conf/hbase-site.xml)可修改超时时间。若添加如下配置,则表示一天没有操作时将自动关闭连接:
修改 hbase.thrift.server.socket.read.timeout
和 hbase.thrift.connection.max-idletime
<property>
<name>hbase.thrift.server.socket.read.timeout</name>
<value>86400000</value>
<description>eg:milisecond</description>
</property>
<property>
<name>hbase.thrift.connection.max-idletime</name>
<value>86400000</value>
</property>
hbase::showTables(hbaseConnection)
显示已连接的数据库中所有表的表名。
conn = hbase::connect("192.168.1.114", 9090)
hbase::showTables(conn)
hbase::deleteTable(hbaseConnection, tableName)
删除数据库中存在的表。
conn = hbase::connect("192.168.1.114", 9090)
hbase::deleteTable(conn, "demo_table")
hbase::getRow(hbaseConnection, tableName, rowKey, [columnName])
读取 rowKey 所对应的数据。
conn = hbase::connect("192.168.1.114", 9090)
hbase::getRow(conn, "test", "row1")
hbase::load(hbaseConnection, tableName, [schema])
将 HBase 的查询结果导入 DolphinDB 中的内存表。schema 中支持的数据格式见第3小节。
conn = hbase::connect("192.168.1.114", 9090)
t = table(["cf:a","cf:b", "cf:c", "cf:time"] as name, ["STRING", "INT", "FLOAT", "TIMESTAMP"] as type)
t1 = hbase::load(conn, "test", t)
schema 中支持的数据类型如下表所示。HBase 中存储的数据格式需要与下表相同,才能将 HBase 中的数据转成 DolphinDB 中对应数据类型,否则无法转换,且会返回空值。
Type | HBase 数据 | DolphinDB 数据 |
---|---|---|
BOOL | true, 1, FALSE | true, true, false |
CHAR | a | a |
SHORT | 1 | 1 |
INT | 21 | 21 |
LONG | 112 | 112 |
FLOAT | 1.2 | 1.2 |
DOUBLE | 3.5 | 3.5 |
SYMBOL | s0 | "s0" |
STRING | name | "name" |
DATE | 20210102, 2021.01.02 | 2021.01.02, 2021.01.02 |
MONTH | 201206, 2012.12 | 2012.06M, 2021.12M |
TIME | 052013140, 05:20:01.999 | 05:20:13.140, 05:20:01.999 |
MINUTE | 1230, 13:30 | 12:30m, 13:30m |
SECOND | 123010, 13:30:10 | 12:30:10, 13:30:10 |
DATETIME | 20120613133010, 2012.06.13 13:30:10, 2012.06.13T13:30:10 | 2012.06.13T13:30:10, 2012.06.13T13:30:10, 2012.06.13T13:30:10 |
TIMESTAMP | 20210218051701000, 2012.06.13 13:30:10.008, 2012.06.13T13:30:10.008 | 2021.02.18T05:17:01.000, 2012.06.13T13:30:10.008, 2012.06.13T13:30:10.008 |
NANOTIME | 133010008007006, 13:30:10.008007006 | 13:30:10.008007006, 13:30:10.008007006 |
NANOTIMESTAMP | 20120613133010008007006, 2012.06.13 13:30:10.008007006, 2012.06.13T13:30:10.008007006 | 2012.06.13T13:30:10.008007006, 2012.06.13T13:30:10.008007006, 2012.06.13T13:30:10.008007006 |
可以导入 bin 目录下预编译好的 HBase 插件。
(1) 添加插件所在路径到 LIB 搜索路径 LD_LIBRARY_PATH
export LD_LIBRARY_PATH=path_to_hbase_plugin/:$LD_LIBRARY_PATH
(2) 启动 DolphinDB server 并导入插件
loadPlugin("path_to_hbase_plugin/PluginHBase.txt")
通过以下方法编译 HBase 插件,编译成功后通过以上方法导入插件。
使用 cmake 构建
安装 cmake:
sudo apt-get install cmake
安装 OpenSSL:
sudo apt-get install openssl
编译整个项目:
mkdir build
cd build
cmake ../
make
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。