天道酬勤,学无止境

sqoop

hive.HiveImport:失败:SemanticException [错误 10072]:数据库不存在:(hive.HiveImport: FAILED: SemanticException [Error 10072]: Database does not exist:)

问题 我正在尝试将 MySQL 数据库导入 Hive 以根据博客分析大型 MySQL 数据,有几种方法可以做到这一点 非实时:Sqoop 实时:用于 MySQL 的 Hadoop 应用程序 所以我决定采用“非实时”方法,并且我已经设置了具有 4 个节点、Sqoop 和 Hive 的 Hadoop 集群,它们在以下版本中运行良好 名称版本 Apache Hadoop 2.6.0 Apache Hive hive-0.14.0 Apache Sqoop sqoop-1.4.5.bin__hadoop-2.0.4-alpha 现在当我尝试使用以下命令导入数据时 导入命令 sqoop-import-all-tables --verbose --connect jdbc:mysql://X.X.X.X/edgeowt --username root -P --hive-import --warehouse-dir /user/hive/warehouse --hive-database edgeowt.db --hive-overwrite 然后我收到以下错误 错误 INFO hive.HiveImport: FAILED: SemanticException [Error 10072]: Database does not exist: edgeowt.db 15/04/16 13:32

2021-09-20 03:58:25    分类:技术分享    mysql   hadoop   hive   sqoop   hadoop2

Sqoop - 绑定到 YARN 队列(Sqoop - Binding to YARN queues)

问题 因此,使用 mapreduce v2,您可以使用绑定到某些 YARN 队列来管理资源和优先级。 基本上通过使用 “hadoop jar /xyz.jar -D mapreduce.job.queuename=QUEUE1 /input /output”完美运行。 运行 sqoop 查询时如何将 Yarn 队列绑定与 Sqoop 集成? IE。 sqoop import \ --connect 'jdbc://server' \ --target-dir \ 还有什么? 回答1 对 Sqoop 也使用相同的方法,即 sqoop import -Dmapreduce.job.queuename=NameOfTheQueue\ --connect 'jdbc://server' \ --target-dir \ 请注意,mapreduce.job.queuename 参数应在导入之后但在连接或其他选项之前使用。

2021-09-20 01:42:39    分类:技术分享    hadoop   mapreduce   sqoop   yarn   sqoop2

Sqoop - 尝试连接到 Oracle DB 服务器时获取 java.lang.NullPointerException(Sqoop - getting java.lang.NullPointerException when trying to connect to Oracle DB Server)

问题 使用 Sqoop,我尝试连接到 Oracle DB,然后列出可用的数据库。 但是当我尝试执行命令时,我收到 java.lang.NullPointerException 请找到我得到的命令和异常,如下所述: [hadoop@njpas01 bin]$ ./sqoop list-databases --connect jdbc:oracle:thin@DEVDB1:1521 --username dev_user -P Warning: $HADOOP_HOME is deprecated. 15/04/01 14:56:24 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5 Enter password: 15/04/01 14:56:35 INFO oracle.OraOopManagerFactory: Data Connector for Oracle and Hadoop is disabled. 15/04/01 14:56:35 INFO manager.SqlManager: Using default fetchSize of 1000 15/04/01 14:56:35 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang

2021-09-19 18:59:23    分类:技术分享    sqoop

Sqoop中--connection-manager的意义(Significance of --connection-manager in Sqoop)

问题 我已经编写了 sqoop 脚本来将数据从 Teradata 导入到 Hive。 `sqoop import \ --connect $JDBC_URL \ --driver com.teradata.jdbc.TeraDriver \ --username $Username \ --password $Password \ --table $TD_Table \ --hive-import \ --hive-overwrite \ --hive-drop-import-delims \ --hive-table $Hive_Database.$Hive_Staging_Table \ --split-by $Split_Col \ -m $Mapper_Number` 上面的脚本给出警告为 --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. 但是当我将--connection-manager与上述脚本一起使用时,我的--hive-drop-import-delims和--hive-overwrite 停止工作 我试图理解 connection-manager 参数的意义是什么,如果我省略它,它将如何影响我的导入 请建议 回答1

2021-09-19 18:17:52    分类:技术分享    hadoop   hive   teradata   sqoop

如何为 Sqoop 输出文件提供自定义名称(How to give custom name to Sqoop output files)

问题 默认情况下,当我使用 sqoop 将数据导入 hive 时,它​​会在 HDFS 上创建文件名为 part-m-0000、part-m-0001 等。 是否可以重命名这些文件? 如果我想给一些有意义的名字,比如带有日期的后缀文件名来表示负载,我该怎么做? 请建议 回答1 你不能直接用 sqoop 来做,但你可以在 sqoop 导入完成后在 HDFS 中重命名它们: today=`date +%Y-%m-%d` files=$(hadoop fs -ls /path-to-files | awk '{print $8}') for f in $files; do hadoop fs -mv $f $f$today; done 第一个命令获取今天的日期。 第二个命令获取目录中的所有文件名。 第三个命令重命名这些文件,并附加日期。 回答2 我们可以 ! 看这里 sqoop import -D mapreduce.output.basename=`date +%Y-%m-%d`

2021-09-18 17:55:00    分类:技术分享    hadoop   output   hdfs   sqoop

通过 Oozie HDP 2.1 的作业不创建 job.splitmetainfo(Job via Oozie HDP 2.1 not creating job.splitmetainfo)

问题 当尝试执行将我的 Hadoop 程序作为-jarFiles参数中的 jar 文件传递​​的 sqoop 作业时,执行失败并显示以下错误。 任何分辨率似乎都不可用。 具有相同 Hadoop 用户的其他作业正在成功执行。 org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.io.FileNotFoundException: File does not exist: hdfs://sandbox.hortonworks.com:8020/user/root/.staging/job_1423050964699_0003/job.splitmetainfo at org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl$InitTransition.createSplits(JobImpl.java:1541) at org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl$InitTransition.transition(JobImpl.java:1396) at org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl$InitTransition.transition

2021-09-18 11:39:04    分类:技术分享    hadoop   mapreduce   sqoop   oozie   hortonworks-data-platform

通过 Oozie HDP 2.1 的作业不创建 job.splitmetainfo(Job via Oozie HDP 2.1 not creating job.splitmetainfo)

问题 当尝试执行将我的 Hadoop 程序作为-jarFiles参数中的 jar 文件传递​​的 sqoop 作业时,执行失败并显示以下错误。 任何分辨率似乎都不可用。 具有相同 Hadoop 用户的其他作业正在成功执行。 org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.io.FileNotFoundException: File does not exist: hdfs://sandbox.hortonworks.com:8020/user/root/.staging/job_1423050964699_0003/job.splitmetainfo at org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl$InitTransition.createSplits(JobImpl.java:1541) at org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl$InitTransition.transition(JobImpl.java:1396) at org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl$InitTransition.transition

2021-09-18 11:37:55    分类:技术分享    hadoop   mapreduce   sqoop   oozie   hortonworks-data-platform

sqoop无法导入带点的表(sqoop unable to import table with dot)

问题 我尝试导入名称中带有点的表,但 sqoop 向我发送架构不存在 sqoop-import --connect jdbc:postgresql://db.xxxxxxxx:5432/production --driver org.postgresql.Driver --username xxxx --password xxxx --connection-manager org.apache.sqoop.manager.GenericJdbcManager --hive-database exxxxxxx --hive-import --warehouse-dir '/user/xxxxx/xxx_import/xxxx' --create-hive-table --table product.product 这个在导入所有表时工作,但它真的很慢而且总是失败 回答1 有效的 Hive 表名称由字母数字和下划线组成。 在您的例子product.product意指表product数据库product 。 回答2 odoo 使用下划线分隔符而不是点

2021-09-17 22:49:00    分类:技术分享    hive   sqoop

如何使用 sqoop 在 Hive 中创建外部表。 需要建议(How to create external table in Hive using sqoop. Need suggestions)

问题 使用 sqoop 我可以创建托管表,但不能创建外部表。 请让我知道从数据仓库卸载数据并将它们加载到 Hive 外部表中的最佳实践是什么。 1.仓库中的表是分区的。 有些是按日期分区的,有些是按状态分区的。 请把你的想法或做法用于生产环境。 回答1 Sqoop 不支持创建 Hive 外部表。 相反,您可能会: 使用 Sqoop codegen 命令生成用于创建与远程 RDBMS 表匹配的 Hive 内部表的 SQL(请参阅 http://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_literal_sqoop_codegen_literal) 修改生成的SQL,创建Hive外部表在Hive中执行修改后的SQL 运行您的 Sqoop 导入命令,加载到预先创建的 Hive 外部表中 回答2 第一步:从mysql导入数据到hive表。 sqoop import --connect jdbc:mysql://localhost/ --username training --password training --table --hive-import --hive-table -m 1 --fields-terminated-by ',' 第 2 步:在 hive 中将表类型从 Managed 更改为 External。 Alter

2021-09-17 19:39:19    分类:技术分享    hadoop   hive   sqoop

Apache Sqoop 和 Flume 可以互换使用吗?(Can Apache Sqoop and Flume be used interchangeably?)

问题 我是大数据的新手。 从Flume 和Sqoop 有什么区别?的一些回答来看,Flume 和Sqoop 都可以从source 拉取数据,然后push 到Hadoop。 任何人都可以指定使用水槽的地方和使用 sqoop 的地方吗? 两者可以用于相同的任务吗? 回答1 Flume 和 Sqoop 都旨在处理不同类型的数据源。 Sqoop 适用于任何支持 JDBC 连接的 RDBMS 系统。 另一方面,Flume 可以很好地处理流数据源,例如在您的环境中连续生成的日志数据。 具体来说, Sqoop 可用于向 RDBMS 系统(如 Oracle、MS SQL Server、MySQL、PostgreSQL、Netezza、Teradata 和其他一些支持 JDBC 连接的系统)导入/导出数据。 Flume 可用于从像下面这样的源摄取高吞吐量数据并插入到下面的目的地(接收器)中。 常用的水槽源: 假脱机目录 - 在其中创建大量文件的目录,主要用于收集和聚合日志数据 JMS - 从基于 JMS 的系统收集指标还有更多常用的水槽: 高密度文件系统 HBase 索尔弹性搜索还有更多 不,这两种工具不能用于完成相同的任务,例如,flume 不能用于数据库,sqoop 不能用于流数据源或平面文件。 如果您有兴趣,flume 也有一个替代品,它与 chukwa 做同样的事情。

2021-09-16 02:26:04    分类:技术分享    hadoop   bigdata   sqoop   flume