sqoop1 使用测试
hive导入数据到mysql最简单的方式就是从hdfs直接读取hive表文件导入mysql,当然这需要知道数据表保存的目录
如果能直接从表到表的导入,无需路径,当然是最好了
1.需要下载合适的hive-hcatalog-core-*.jar,分别复制到hive以及sqoop对应的lib目录下,并且配置环境变量,不然导入直接报错
sqoop export --connect jdbc:mysql://localhost:3306/test --username root --password root --table role1 --hcatalog-database sqoopdb --hcatalog-table role
执行结果如下:
................................
18/06/06 09:55:42 INFO hcat.SqoopHCatUtilities: Database column name - info map :
level : [Type : 4,Precision : 11,Scale : 0]
roleid : [Type : 4,Precision : 10,Scale : 0]
sex : [Type : 4,Precision : 10,Scale : 0]
name : [Type : 12,Precision : 30,Scale : 0]
dateid : [Type : 93,Precision : 19,Scale : 0]
addr : [Type : 12,Precision : 100,Scale : 0]
18/06/06 09:55:42 WARN conf.HiveConf: HiveConf of name hive.enable.spark.execution.engine does not exist 18/06/06 09:55:42
INFO common.HiveClientCache: Initializing cache: eviction-timeout=120 initial-capacity=50 maximum-capacity=50
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hive.common.util.ShutdownHookManager.addShutdownHook(Ljava/lang/Runnable;)V
at org.apache.hive.hcatalog.common.HiveClientCache.createShutdownHook(HiveClientCache.java:221)
at org.apache.hive.hcatalog.common.HiveClientCache.<init>(HiveClientCache.java:153)
at org.apache.hive.hcatalog.common.HiveClientCache.<init>(HiveClientCache.java:97)
at org.apache.hive.hcatalog.common.HCatUtil.getHiveMetastoreClient(HCatUtil.java:553)
at org.apache.hive.hcatalog.mapreduce.InitializeInput.getInputJobInfo(InitializeInput.java:104)
at org.apache.hive.hcatalog.mapreduce.InitializeInput.setInput(InitializeInput.java:88)
at org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:95)
at org.apache.hive.hcatalog.mapreduce.HCatInputFormat.setInput(HCatInputFormat.java:51)
at org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureHCat(SqoopHCatUtilities.java:386)
at org.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java:431)
at org.apache.sqoop.manager.SqlManager.exportTable(SqlManager.java:931)
at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:80)
at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:99)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
以上问题未解决
2.删掉hive的表sqoopdb.role,执行
sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table role --hive-import --hive-table sqoopdb.role
执行结果是:建表+导数据
mysql导入hbase
[root@host lib]# sqoop import --connect jdbc:mysql://192.168.53.122:3306/gamedw --table account --hbase-table account --column-family info --hbase-row-key accid --hbase-create-table --username 'root' -P
以上执行过程中需要输入mysql密码,验证 成功
[root@host lib]# sqoop import --connect jdbc:mysql://192.168.53.122:3306/gamedw --table account --hbase-table account --column-family info --hbase-row-key accid --hbase-create-table --username 'root' -password root
以上执行过程中不需要输入密码,验证成功
[root@host lib]# sqoop import --connect jdbc:mysql://192.168.53.122:3306/database--table datatable--hbase-table hbasetable--column-family info --hbase-row-key key --hbase-create-table --username 'root' -password root
----------------------
[root@host lib]# sqoop import --connect jdbc:mysql://192.168.53.122:3306/gamedw --query "select * from account where dateid=20180116 and \$CONDITIONS" --hbase-table account111 --column-family person --hbase-row-key accid --hbase-create-table --username root --password root --split-by platid
以上语句验证成功
[root@host lib]# sqoop import --connect jdbc:mysql://192.168.53.122:3306/gamedw --table account --hbase-table account22 --column-family person --hbase-row-key accid --hbase-create-table --username root --password root --columns "platid,dateid,accid" --where " platid=1 and dateid=20180116"
以上语句将mysql的表gamedw.account的三个字段platid,dateid,accid以platid=1 and dateid=20180116为条件查询出来导入hbase,验证成功
mysql导入数据到HDFS
sqoop import --connect jdbc:mysql://192.168.116.132:3306/sqoop --username root --password 123456 --table test_user --target-dir /sqoop/test_user -m 2 --fields-terminated-by "\t" --columns "id,name" --where 'id>2 and id<=6'
--connect 连接数据库
--username 用户
--password 密码
--table 表名
--target-dir 目标目录/sqoop/test_user
-m 2个mapreduce执行
--fields-terminated-by 用“\t”分隔 不用逗号默认是逗号.
--columns 只导入 id和name两个字段
--where 添加条件筛选 语句要用引号抱起来
sqoop import --connect jdbc:mysql://192.168.116.132:3306/sqoop --username root --password 123456 --query 'select * from test_user where id < 9 and id > 1 and $CONDITIONS' --target-dir /sqoop/test_user4 -m 2 --split-by test_user.id
--query 直接用查询语句 这样就可以join 查询多表
-m 1 的时候可以执行 大于1就不行 如果要多个map要设置每个map读多少数据用--split-by分隔
--split-by test_user.id
sqoop1 使用测试的更多相关文章
- sqoop1的安装以及数据导入导出测试
下载 wget http://mirror.bit.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 解压 tar -zxf ...
- 【sqoop】安装配置测试sqoop1
3.1.1 下载sqoop1:sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 3.1.2 解压并查看目录: [hadoop@hadoop01 ~]$ tar -zxvf sq ...
- Sqoop-1.4.6.bin__hadoop-2.0.4-alpha 环境搭建
一.Sqoop 环境搭建 1.下载安装包及解压 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 1)拷贝sqoop-1.4.6.bin__hadoop-2 ...
- sqoop1.99.4安装与简介
1.什么是sqoop clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具 2.版本及其区别 现在分为sqoop1和sqoop2 1)架构图(sqoop1和hadoo ...
- Sqoop安装与使用(sqoop-1.4.5 on hadoop 1.0.4)
1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特点以批处理的方式加快数据传输,发展至今 ...
- hadoop 2.6.0上安装sqoop-1.99.6-bin-hadoop200
第一步:下载sqoop-1.99.6-bin-hadoop200.tar.gz 地址:http://www.eu.apache.org/dist/sqoop/1.99.6/ 第二步:将下载好的sqo ...
- sqoop1.4.6配置安装
1.下载sqoop1.4.6 2.配置环境变量. 3.复制sqoop/conf/sqoop-env-template.sh为sqoop-env.sh 添加相关的配置 #Setpath to where ...
- Sqoop-1.4.6 Merge源码分析与改造使其支持多个merge-key
Sqoop中提供了一个用于合并数据集的工具sqoop-merge.官方文档中的描述可以参考我的另一篇博客Sqoop-1.4.5用户手册. Merge的基本原理是,需要指定新数据集和老数据集的路径,根据 ...
- 通过 Sqoop1.4.7 将 Mysql5.7、Hive2.3.4、Hbase1.4.9 之间的数据导入导出
目录 目录 1.什么是 Sqoop? 2.下载应用程序及配置环境变量 2.1.下载 Sqoop 1.4.7 2.2.设置环境变量 2.3.设置安装所需环境 3.安装 Sqoop 1.4.7 3.1.修 ...
随机推荐
- 清华集训2016Day4
清华集训2016Day4 组合数问题(problem) 用卢卡斯定理可知满足条件即将\(n\)和\(m\)分别用\(k\)进制表示,要求\(n\)的每一位都要大于等于\(m\)的对应位.直接数位\(d ...
- CH4302 Interval GCD
题意 4302 Interval GCD 0x40「数据结构进阶」例题 描述 给定一个长度为N的数列A,以及M条指令 (N≤5*10^5, M<=10^5),每条指令可能是以下两种之一: &qu ...
- 系统有专门画图的api
- Fiddler抓取https设置详解
很多使用fiddler抓包,对于http来说不需太多纠结,随便设置下就能用,但是抓取https就死活抓不了, 出现诸如以下问题: creation of the root certificate wa ...
- VSCODE includePath 中使用系统中的变量
使用 ${env.ENVNAME} 这样只需要在 系统中加一个系统变量就可以. https://github.com/Microsoft/vscode-cpptools/issues/697
- ResourceBundle介绍
介绍: ResourceBundle类主要作用是读取属性文件,读取属性文件时可以直接指定属性文件的名称(指定名称时不需要文件的后缀),也可以根据Locale所指定的区域码来选取指定的资源文件: Res ...
- 【转】每天一个linux命令(38):cal 命令
原文网址:http://www.cnblogs.com/peida/archive/2012/12/14/2817473.html cal命令可以用来显示公历(阳历)日历.公历是现在国际通用的历法,又 ...
- 从操作系统rm数据文件后,利用句柄与rman恢复的过程。(已验证)
以下操作代码的流程是配的,但是相应的文件名,啥的 必须改动. 故障现象 数据文件被误删除 具体情况 接到反馈说,数据文件data20120512.dbf被误删除,需要恢复 数据库提示 ERROR ...
- centos 修改时区及NTP时间同步
在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...
- Oracle Grid control 11g及Active DataGuard 11g安装部署
Oracle Grid control 11g及Active DataGuard 11g安装部署(一) 原贴 http://blog.csdn.net/lichangzai/article/detai ...