最近需要将mysql的数据整合到HBase中,原本使用MapReduce,自己制作job将mysql的数据导入,
查阅资料过程中,发现了开源工具sqoop(关系性数据库与HDFS,HBASE,HIVE等)互相导入的工具,
于是准备尝试使用,看是否能够满足目前数据转移的需求。
sqoop import --connect jdbc:mysql://192.168.100.**/database --username user -P --table information --hbase-table information --column-family info --hbase-row-key market,label --columns market,label,name,py --hbase-create-table -m 1
--hbase-row-key market,label这个命令可以产生market_label格式的rowkey
问题1:
ERROR security.UserGroupInformation: PriviledgedActionException ...
导致这个问题,主要是权限问题,使用的user没有在目标路径下创建有权限的文件夹
sudo -u hdfs hadoop fs -mkdir /user/user
sudo -u hdfs hadoop fs -chown user:user /user/user
(/user文件夹是在sqoop没有指明文件路径情况下的默认路径)
问题2:
Could not insert row with null value for row-key column:
这个问题,可能是由于使用的问题,在columns中需要指明row-key用到的列