zoukankan      html  css  js  c++  java
  • Sqoop的使用(Mysql To HBase)

    最近需要将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

    采用命令的方式

    sqoop import --connect jdbc:mysql://192.168.100.**/database --username user -P --query 'select a.market, a.label, DATE_FORMAT(b.datetime,"%Y%m%d%H%i%s") as time, b.open, b.high, b.low, b.close, b.volume, b.amount, b.advance, b.decline, b.position, b.turnover, b.openvolume, b.openamount from stockdata_history_dayone as b join stock_information as a on a.stockid = b.stockid where $CONDITIONS limit 10' --hbase-table stockdata_history_dayone --column-family info --hbase-row-key market,label,time --hbase-create-table -m 1

    问题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用到的列

  • 相关阅读:
    Linux下MongoDB的基本操作
    PHP curl及并发curl封装函数实现
    根据ip地址获取地区信息的接口
    修改Samba服务的监听端口
    定时脚本更新svn文件
    第一次直面http的301跳转
    ASP.NET MVC 学习之路-6
    ASP.NET MVC 学习之路-5
    C#静态构造函数
    HTML5新特性学习-2
  • 原文地址:https://www.cnblogs.com/tyoyi/p/4517835.html
Copyright © 2011-2022 走看看