应用场景为导出HDFS的数据到MySql数据库中。HDFS中的文件和MySql字段一一对应,但是每次执行的时候就报错。
执行命令:
./sqoop export --connect jdbc:mysql://10.0.0.0:3306/datacenter --username root --password admin --table uv_info --export-dir /user/hive/warehouse/uv/dt=2011-08-03
报错信息:
11/08/05 10:51:22 INFO mapred.JobClient: Running job: job_201108051007_0010
11/08/05 10:51:23 INFO mapred.JobClient: map 0% reduce 0%
11/08/05 10:51:36 INFO mapred.JobClient: Task Id : attempt_201108051007_0010_m_000000_0, Status : FAILED
java.util.NoSuchElementException
at java.util.AbstractList$Itr.next(AbstractList.java:350)
at uv_info.__loadFromFields(uv_info.java:194)
at uv_info.parse(uv_info.java:143)
at com.cloudera.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:79)
at com.cloudera.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:38)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at com.cloudera.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:187)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
at org.apache.hadoop.mapred.Child.main(Child.java:264)
此错误的原因为sqoop解析文件的字段与MySql数据库的表的字段对应不上造成的。因此需要在执行的时候给sqoop增加参数,告诉sqoop文件的分隔符,使它能够正确的解析文件字段。
./sqoop export --connect jdbc:mysql://10.0.0.0:3306/datacenter --username root --password admin --table uv_info --export-dir /user/hive/warehouse/uv/dt=2011-08-03 --input-fields-terminated-by '\t'
分享到:
相关推荐
出现此问题时使用:java.lang.NullPointerException at org.json.JSONObject.(JSONObject.java:144) at org.apache.sqoop.util.SqoopJsonUtil.... at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
它允许用户将大规模数据导入到Hadoop的分布式文件系统(HDFS)中,或者从Hadoop导出数据到结构化的数据库。 Sqoop1.4.6版在Apache Atlas 2.3.0中被使用,可能是为了实现数据治理中的ETL(提取、转换、加载)流程,...
编译Atlas用 sqoop-1.4.6.2.3.99.0-195.jar 内含安装jar包以及maven手动安装命令 详情可参考我的博客: https://blog.csdn.net/qq_26502245/article/details/108008070
Sqoop 导入数据的基本语法如下: ```bash sqoop import [generic-args] [import-args] ``` 其中,`generic-args` 包含通用的 Hadoop 参数,而 `import-args` 是特定于 Sqoop 导入的参数。 2. **简单验证**: ...
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将数据导入Hive时,可能出现的问题包括数据类型不匹配、空值处理、数据格式错误等。 1. 数据类型不匹配:数据库中的字段类型与Hive表定义的字段类型不一致可能导致数据导入后出现异常。例如,数据库中的...
Sqoop 是一个开源工具,主要用于在关系型数据库(如 MySQL、Oracle 等)与 Hadoop 之间进行数据导入导出。在这个特定的文件“sqoop-1.4.7.tar.gz.zip”中,我们看到的是 Sqoop 1.4.7 版本的源码或二进制包。这个版本...
- **数据导入**:使用 Sqoop 可以将整个数据库表或特定查询结果导入到 HDFS 中,这通常通过指定数据库连接信息、表名和导入选项来完成。 - **数据导出**:反之,也可以将 HDFS 中的数据导出到数据库中,建立 Hadoop...
sqoop导入数据到hive
基于atlas2.0.0编译,需要而很难找到有效地址下载不到的jar包 sqoop-1.4.6.2.3.99.0-195.jar
1. **改进的性能**:相较于早期版本,1.2.0 版本的 Sqoop 在数据导入导出的性能上有所提升,特别是在处理大数据量时。 2. **新功能**:可能引入了新的命令行选项、连接器或数据格式支持,以增强其灵活性和功能性。 3...
7. **`--hive-drop-import-delims`**:该选项告诉Sqoop在导入数据时不要使用任何分隔符。这通常用于导入非结构化或半结构化数据,例如CSV文件,但在此上下文中,意味着不希望在导入的数据中包含特定的分隔符。 8. **...
6. **并行性**:通过调整并行度参数,Sqoop 能够利用多个 Map 任务并行导入数据,提高整体导入速度。 7. **数据转换**:在导入过程中, Sqoop 允许用户添加自定义的 MapReduce 任务进行数据清洗和转换,增强了其...
在导入数据时,Sqoop首先通过JDBC检查目标数据库表,获取列信息和SQL数据类型,并将这些类型映射为Java数据类型。然后,Sqoop自动生成相应的MapReduce应用,以Java类型存储字段值,方便数据处理。 #### Sqoop导出...
8. **API支持**:除了Web UI,Sqoop2 还提供了RESTful API 和Java API,使得开发者可以方便地集成到自己的应用程序中,自动化数据迁移过程。 9. **容错机制**:如果在数据传输过程中发生错误,Sqoop2 将尝试恢复...
在Sqoop中,这个驱动用于建立从Java环境到SQL Server的数据连接,从而读取数据库中的数据并准备导入到HDFS。 其次,`sqoop-sqlserver-1.0.tar.gz`是Sqoop针对SQL Server的特定适配器包。 Sqoop本身支持多种RDBMS,...
1. 数据导入:Sqoop 可以从 RDBMS 导入数据到 HDFS,支持全量导入和增量导入。增量导入允许用户仅导入自上次导入以来发生更改的数据,减少了不必要的数据传输。 2. 数据导出:与导入相反,Sqoop 还能将 HDFS 中的...
此外,Sqoop还会自动生成一个 `user.java` 文件,这是用于MapReduce作业的源代码。 **总结** Sqoop作为大数据处理的重要工具,简化了Hadoop和RDBMS之间的数据迁移工作。正确配置和使用Sqoop,可以有效地实现大数据...
描述提到,解压并配置"configure-sqoop"文件后,我们可以利用这个版本的Sqoop实现从关系型数据库导入数据到Hadoop的功能。"configure-sqoop"通常是指`conf/sqoop-site.xml`配置文件,它是 Sqoop 配置的核心部分,...
在导入数据时,Sqoop会将所有字段的值序列化为字符串,并将其转换为UTF-8编码的二进制值存储在HBase中。这意味着所有类型的数据都将被转换为文本格式,这可能会影响数据的读取效率和存储空间。 总的来说,将MySQL...