用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql

http://www.cnblogs.com/xuyou551/p/7999773.html

用sqoop将mysql的数据导入到hive表中

https://www.cnblogs.com/xuyou551/p/7998846.html

1:先将mysql一张表的数据用sqoop导入到hdfs中

准备一张表

需求 将 bbs_product 表中的前100条数据导 导出来  只要id  brand_id和 name 这3个字段

数据存在 hdfs 目录   /user/xuyou/sqoop/imp_bbs_product_sannpy_  下

  1. bin/sqoop import \
  2. --connect jdbc:mysql://172.16.71.27:3306/babasport \
  3. --username root \
  4. --password root \
  5. --query 'select id, brand_id,name from bbs_product where $CONDITIONS LIMIT 100' \
  6. --target-dir /user/xuyou/sqoop/imp_bbs_product_sannpy_ \
  7. --delete-target-dir \
  8. --num-mappers 1 \
  9. --compress \
  10. --compression-codec org.apache.hadoop.io.compress.SnappyCodec \
  11. --fields-terminated-by '\t'

ps: 如果导出的数据库是mysql  则可以添加一个 属性  --direct

  1. 1 bin/sqoop import \
  2. 2 --connect jdbc:mysql://172.16.71.27:3306/babasport \
  3. 3 --username root \
  4. 4 --password root \
  5. 5 --query 'select id, brand_id,name from bbs_product where $CONDITIONS LIMIT 100' \
  6. 6 --target-dir /user/xuyou/sqoop/imp_bbs_product_sannpy_ \
  7. 7 --delete-target-dir \
  8. 8 --num-mappers 1 \
  9. 9 --compress \
  10. 10 --compression-codec org.apache.hadoop.io.compress.SnappyCodec \
  11. 11 --direct \
  12. 12 --fields-terminated-by '\t'

加了 direct 属性在导出mysql数据库表中的数据会快一点 执行的是mysq自带的导出功能

第一次执行所需要的时间

第二次执行所需要的时间 (加了direct属性)

执行成功

2:启动hive 在hive中创建一张表

  1. 1 drop table if exists default.hive_bbs_product_snappy ;
  2. 2 create table default.hive_bbs_product_snappy(
  3. 3  id int,
  4. 4  brand_id int,
  5. 5 name string
  6. 6 )
  7. 7 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;

3:将hdfs中的数据导入到hive中

  1. 1 load data inpath '/user/xuyou/sqoop/imp_bbs_product_sannpy_' into table default.hive_bbs_product_snappy ;

4:查询  hive_bbs_product_snappy 表

  1. 1 select * from hive_bbs_product_snappy;

此时hdfs 中原数据没有了

然后进入hive的hdfs存储位置发现

注意 :sqoop 提供了 直接将mysql数据 导入 hive的 功能  底层 步骤就是以上步骤

创建一个文件  touch test.sql     编辑文件  vi test.sql

  1. 1 use default;
  2. 2 drop table if exists default.hive_bbs_product_snappy ;
  3. 3 create table default.hive_bbs_product_snappy(
  4. 4 id int,
  5. 5 brand_id int,
  6. 6 name string
  7. 7 )
  8. 8 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;

在 启动hive的时候 执行 sql脚本

  1. bin/hive -f /opt/cdh-5.3.6/sqoop-1.4.5-cdh5.3.6/test.sql

执行sqoop直接导入hive的功能

  1. 1 bin/sqoop import \
  2. 2 --connect jdbc:mysql://172.16.71.27:3306/babasport \
  3. 3 --username root \
  4. 4 --password root \
  5. 5 --table bbs_product \
  6. 6 --fields-terminated-by '\t' \
  7. 7 --delete-target-dir \
  8. 8 --num-mappers 1 \
  9. 9 --hive-import \
  10. 10 --hive-database default \
  11. 11 --hive-table hive_bbs_product_snappy

看日志输出可以看出 在执行map任务之后 又执行了load data

查询 hive 数据

sqoop数据导入到Hdfs 或者hive的更多相关文章

  1. Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)

    一.说明: 将关系型数据库中的数据导入到 HDFS(包括 Hive, HBase) 中,如果导入的是 Hive,那么当 Hive 中没有对应表时,则自动创建. 二.操作 1.创建一张跟mysql中的i ...

  2. 使用 sqoop 将mysql数据导入到hdfs(import)

    Sqoop 将mysql 数据导入到hdfs(import) 1.创建mysql表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` va ...

  3. sqoop数据导入命令 (sql---hdfs)

    mysql------->hdfs sqoop导入数据工作流程: sqoop提交任务到hadoop------>hadoop启动mapreduce------->mapreduce通 ...

  4. Sqoop1.99.7将MySQL数据导入到HDFS中

    准备 本示例将实现从MySQL数据库中将数据导入到HDFS中 参考文档: http://sqoop.apache.org/docs/1.99.7/user/Sqoop5MinutesDemo.html ...

  5. 使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误

    1.原表没有设置主键,出现错误提示: ERROR tool.ImportTool: Error during import: No primary key could be found for tab ...

  6. Sqoop 数据导入导出实践

    Sqoop是一个用来将hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:mysql,oracle,等)中的数据导入到hadoop的HDFS中,也可以将HDFS的数据导入到 ...

  7. sqoop 数据导入hive

    一. sqoop: mysql->hive sqoop import -m 1 --hive-import --connect "jdbc:mysql://127.0.0.1:3306 ...

  8. Sqoop mysql 数据导入到hdfs

    1.--direct 模式使用mysqldump 工具,所以节点上需要安装该工具,非direct 模式直接使用jdbc ,所以不需要 具体script参考如下: sqoop import --conn ...

  9. Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)

    Hive总结(七)Hive四种数据导入方式 (强烈建议去看) Hive几种数据导出方式 https://www.iteblog.com/archives/955 (强烈建议去看) 把MySQL里的数据 ...

随机推荐

  1. iOS 状态栏更改为白色

    如果觉得在iOS 7启动期间状态栏黑色不合你意,以下方法可改变Status bar style成白色 在工程的plist添加 Status bar style,改变style值 默认是Gray sty ...

  2. [hihoCoder] 题外话·堆

    A direct applicatin of the heap data structure. Specifically, a max heap is used. The required funct ...

  3. python中,有关正则表达式re函数:compile、match、search、findall

    1.全局匹配函数 re.compile(pattern=pattern,re.S).findall(text)函数: compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对 ...

  4. matplotlib绘制圆饼图

    import matplotlib.pyplot as plt labels = ['Nokia','Samsung','Apple','Lumia'] values = [10,30,45,15] ...

  5. 10分钟让你的站点也支持Markdown

    Markdown简介 Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.Markdown 的语法十分简单,常用的标记符号也不超过十个,这种相对于 ...

  6. 定时备份DB和WEB文件

    sql.sh #!/bin/bash ##备份数据库: 每4小时 date2=`date "+%Y-%m-%d---%H.%M.%S"` /alidata/server/mysql ...

  7. 接口测试工具 — jmeter(关联)

    1.正则表达式 1)添加正则表达式提取器 2)提取关联词 3)填写正则表达式 4)使用关联,其他请求使用${sign2}代替变量值 2. 1)添加提取器 2)填写变量值 3)使用关联,其他请求使用${ ...

  8. 转!! Eclipse设定和修改文件字符编码格式和换行符

    Window -> Preferences -> General -> Workspace : Text file encoding :Default : 选择此项将设定文件为系统默 ...

  9. poco库 RSA加解密

    #include "poco/Crypto/Cipher.h"#include "poco/Crypto/CipherFactory.h"#include &q ...

  10. MongoDB-1:安装和配置

    一.简介 MongoDB一种非关系型数据库(NoSql),是一种强大.灵活.可扩展的数据存储方式,因为MongoDB是文档模型,自由灵活很高,可以让你在开发过程中畅顺无比,对于大数据量.高并发.弱事务 ...