内容纲要
概要描述
使用Sqoop把MySQL数据库的数据导入到Hyperbase中。
实验环境为TDH 6.2.1,其他版本也可以参考。
详细说明
TDH Client集成了Sqoop工具,而Sqoop是支持MySQL及HBase数据库的,Hyperbase部分兼容HBase,所以可以尝试这个方案。
操作步骤
1 安装TDH Client
在Manager 8180页面中下载TDH Client然后上传到服务器中。
2 检查TDH-Client目录中是否有hbase目录
进入TDH-Client
目录中,检查是否有hbase
目录。
如果存在hbase
目录则表示正常,进入下一步。
如果不存在hbase
目录,则创建hbase
目录并将hyperbase
目录下所有文件拷贝进去。
mkdir hbase
cp -r hyperbase/* hbase/
3 下载lib包
通过本链接下载lib包。
4 将下载的lib包中的所有jar包上传到sqoop/lib目录
将上一步下载的lib包中所有的.jar
文件上传到TDH-Client/sqoop/lib
目录中。
5 初始化TDH Client
在TDH Client根目录,执行以下命令进行初始化。
source init.sh
6 使用如下命令进行导数
sqoop import \
--connect jdbc:mysql://172.22.40.199:3306/test \
--username root \
--password root \
--table test2 \
--hbase-table test3 \
--column-family name \
--hbase-create-table \
--hbase-row-key id \
--hbase-bulkload
将上面示例中的MySQL和Hyperbase相关信息改成实际的即可。
常见问题
AuthFailedException: KeeperErrorCode = AuthFailed for /hyperbase1/hbaseid
这是由于开了安全的集群zookeeper开了强认证导致的。
解决方法是在Manager节点,修改/var/lib/transwarp-manager/master/content/meta/services/ZOOKEEPER/transwarp-6.2.1-final/templates/zookeeper-env.sh.ftl
文件,查找关键词-Dzookeeper.allowSaslFailedClients=false
,然后把false改成true,重启manager,配置服务+重启zookeeper即可。