`
- 浏览:
16542 次
-
转载:
http://lookqlp.iteye.com/blog/1666449
文章的链接:http://blog.csdn.net/maixia24/article/details/9266295
使用sqoop导入数据至hive常用语句
直接导入hive表
sqoop import --connect jdbc:postgresql://ip/db_name--username user_name --table table_name --hive-import -m 5
内部执行实际分三部,1.将数据导入hdfs(可在hdfs上找到相应目录),2.创建hive表名相同的表,3,将hdfs上数据传入hive表中
sqoop根据postgresql表创建hive表
sqoop create-hive-table --connect jdbc:postgresql://ip/db_name --username user_name --table table_name --hive-table hive_table_name( --hive-partition-key partition_name若需要分区则加入分区名称)
导入hive已经创建好的表中
sqoop import --connect jdbc:postgresql://ip/db_name --username user_name --table table_name --hive-import -m 5 --hive-table hive_table_name (--hive-partition-key partition_name --hive-partition-value partititon_value);
使用query导入hive表
sqoop import --connect jdbc:postgresql://ip/db_name --username user_name --query "select ,* from retail_tb_order where \$CONDITIONS" --hive-import -m 5 --hive-table hive_table_name (--hive-partition-key partition_name --hive-partition-value partititon_value);
注意:$CONDITIONS条件必须有,query子句若用双引号,则$CONDITIONS需要使用\转义,若使用单引号,则不需要转义。
遇到问题
若需要在导入hive数据表的前提下,再添加在原有关系型数据库中没有的一列数据如何解决。
首先,我们想到的是添加一个partition可很方便的添加“一列”数据,partition的使用很类似普通一列,常用的sql执行是没有问题的。
其次,想到在query的sql中添加一个常量或者一个变量,例如:”select 'hello',* from retail_tb_order where \$CONDITIONS“,执行后会报异常
12/08/28 14:41:31 INFO tool.CodeGenTool: Beginning code generation
12/08/28 14:41:31 INFO manager.SqlManager: Executing SQL statement: select 'hello',* from retail_tb_order where (1 = 0)
12/08/28 14:41:32 INFO manager.SqlManager: Executing SQL statement: select 'hello',* from retail_tb_order where (1 = 0)
12/08/28 14:41:32 ERROR orm.ClassWriter: Cannot resolve SQL type 1111
12/08/28 14:41:32 ERROR orm.ClassWriter: Cannot resolve SQL type 1111
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_
12/08/28 14:41:32 ERROR orm.ClassWriter: No Java type for SQL type 1111 for column _column_
12/08/28 14:41:32 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.sqoop.orm.ClassWriter.parseNullVal(ClassWriter.java:900)
at org.apache.sqoop.orm.ClassWriter.parseColumn(ClassWriter.java:925)
at org.apache.sqoop.orm.ClassWriter.generateParser(ClassWriter.java:999)
at org.apache.sqoop.orm.ClassWriter.generateClassForColumns(ClassWriter.java:1314)
at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1138)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:367)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:453)
at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
at org.apache.sqoop.Sqoop.main(Sqoop.java:238)
at com.cloudera.sqoop.Sqoop.main(Sqoop.java:57)
该问题出现原因是sqoop ClassWriter类会在postgresql表中解析sql中的所有列,当解析常量'hello'时,数据库没有该列也就找不到相应的数据类型。
若要解决该问题应该需修改ClassWriter源码。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
NULL 博文链接:https://kingding.iteye.com/blog/2435018
sqoop导入数据到hive
bdp2hive项目介绍一、概述项目主要是集成生成sqoop脚本和创建hive分区表组件。生成sqoop脚本组件主要通过传递的数据库信息查询数据库获取表字段与数据集之间的对照关系SQL语句,通过模板拼接成sqoop脚本,上传服务器...
Sqoop导Oracle数据到Hive,代码清晰一目了然
实战Sqoop数据导入及大数据用户行为案例分析...08_Sqoop将MySQL数据导入Hive表中 09_Sqoop的导出及脚本中使用的方式 10_案例分析-动态分区的实现 11_案例分析-源表的分区加载创建 12_案例分析-指标分析使用Sqoop导出
mysql,sqoop,spark,hive工作流管道它将通过两个表order和order_items产生每日收入Sqoop 以“ parquet”格式将订单和order_items数据从mysql导入到hdfs 在这里,我们正在创建sqoop作业以用于增量数据导入命令订单...
4.使用Sqoop将数据从Hive导入MySQL 5.使用Sqoop将数据从MySQL导入HBase 6.使用HBase Java API把数据从本地导入到HBase中 7.使用R对MySQL中的数据进行可视化分析 内含三份报告和数据集,报告中有源码,是用spark做的
数据同步Sqoop用法之mysql与Hive导入导出.docx
2. 练习使用Sqoop将数据从Mysql中导入到HBase中 3. 练习使用Sqoop将数据在Mysql与Hive之间的导入导出 4. Sqoop上的操作举例
使用Spark框架进行网站用户购物分析 ...4、使用Sqoop将数据从Hive导入MySQL 5、使用Sqoop将数据从MySQL导入HBase 6、使用HBase Java API把数据从本地导入到HBase中 7、使用R对MySQL中的数据进行可视化分析
代码演示,如何编写基本的Airflow以实现从Mysql到Hive的增量导入。 #问题陈述:-MySQL具有名为'employee_profile'的表,该表具有雇员信息,包括名字,姓氏和SSN。 脚本应检查表中是否有新记录和修改过的记录,并...
1.对文本文件形式的原始数据集进行预处理 ...4.使用Sqoop 将数据从Hive导入MySQL 5.使用Sqoop将数据从MySQL导入HBase 6.使用HBase Java API把数据从本地导入到HBase中 7.使用R对MySQL中的数据进行可视化分析
1.02_02_01_06 使用Sqoop导入数据到HDFS及本质分析 网页.mp4 1.02_02_01_07 Sqoop导入数据设置数据存储格式parquet 网页.mp4 .. 第3章 任务调度框架Oozie 3.02_02_03_01 工作流调度框架Oozie功能初步认识 网页.mp4 ...
数据导入数据仓库Hive 4.基于复杂条件实现数据导入 5.基于订单案例实现Increment增量同步数据 6.基于订单案例实现lastModified增量同步导入数据 7.数据导入原理详解 第三章:Sqoop数据导出实战开发 1.Sqoop...
写在前面 我在直接下载https://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.7.0.tar.gz 解压使用会出现几个bug,之前也是出现了,然后也没有来...这是因为sqoop缺少java-json.jar包 下载java-json.jar包: http
Sqoop 将数据从mysql导入HIVE 操作hive中的数据来计算每个股票代码的股票量 将此数据存储到 hive 上的 stock_volume 表中 使用 sqoop 将此数据从 hive 导出回 mysql 进行报告。 待开发。 用于导入、数据操作和...
将爬取到的滴滴出行相关数据整理后上传存储到Hbase中,然后导入到Hive中并进行数据分析,将数据分析后的结果通过Sqoop导入到Mysql中,最后对数据进行可视化。
环境软件准备: 1:Centos 6.8虚拟机 2:含有导入数据的Mysql数据库 3:Sqoop 安装包 下载地址: https://mirrors.cnnic.cn/apache/sqoop/ Sqoop安装 大数据-sqoop全文共16页,当前为第8页。 配置环境变量加入Sqoop...
sqoop、hive命令的封装,可配置化,数据的导入导出功能