sqoop从mysql导入数据到hive及hive导入数据到mysql的指令

sqoop命令举例
1)列出mysql数据库中的所有数据库
sqoop list-databases -connect jdbc:mysql://172.31.100.115:3306/ -username root -password 123456


image.png

2)连接mysql并列出test数据库中的表
sqoop list-tables -connect jdbc:mysql://172.31.100.115:3306/etl -username root -password 123456
命令中的test为mysql数据库中的etl数据库名称 username password分别为mysql数据库的用户密码

image.png

3)将关系型数据的表结构复制到hive中,只是复制表的结构,表中的内容没有复制过去。
sqoop create-hive-table -connect jdbc:mysql://172.31.100.115:3306/etl -table ads_log_kakou_month -username root -password 123456 -hive-table sqoop_test_etl
其中 –table sqoop_test为mysql中的数据库test中的表 –hive-table test 为hive中新建的表名称

image.png

4)从关系数据库导入文件到hive中
sqoop import -connect jdbc:mysql://172.31.100.115:3306/etl -username root -password 123456 -table ads_log_kakou_month -hive-import -hive-table s_sqoop_test_etl -m 1
-table ads_log_kakou_month 这是mysql中的表名称,-hive-import -hive-table s_sqoop_test_etl这是hive中的表名。hive中可以不提前建表也可以导入进去。

image.png

5)将hive中的表数据导入到mysql中,在进行导入之前,mysql中的表hive_test必须已经提前建好,而且结构必须和hive表中一致。
sqoop export -connect jdbc:mysql://172.31.100.115:3306/sqoop_test -username root -password 123456 -table hive_test --fields-terminated-by '\001' --export-dir /dfs/user/hive/warehouse/s_sqoop_test_etl/part-m-00000
hive的表有个分隔符,所以要加一条这样的语句--fields-terminated-by '\001' 不然会报错

image.png

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 03013蔡婉华 今天,在喜玛拉雅收听了《绘本之力》。这本书是河合隼雄、松居直、柳田邦男三位在2000年11月12...
    Cath2017阅读 245评论 0 0
  • 肾结石是由于机体内胶体和晶体代谢平衡失调所致,与感染、营养代谢紊乱、泌尿系统异物、尿郁积以及地理气候等因素有关。男...
    大海_f916阅读 262评论 0 1
  • 1.冷静 窗边席地而坐,翻阅着手中的书。是不是有那么一本书,让你反反复复翻看无数遍。我深信,喜欢一个故事是需要理由...
    紫萸香慢阅读 233评论 0 2
  • 风吹不燃一簇安眠的烛笸 借冰凉的时钟计算把握 当你用剔透的茶水浇灭烟灰时 花正凋着 我清楚听见你那滚烫的笑声 是日...
    叶子leee阅读 240评论 2 3