【发布时间】:2016-01-12 15:05:37
【问题描述】:
我正在使用 Oozie、shell 动作和 sqoop。
我正在使用 oozie 运行许多 sqoop 命令。我已经设置了一个 shell 操作,并且在那个 shell 中我放置了许多 sqoop 命令。现在,shell 动作被触发,甚至 sqoop 也在发生。
但是,sqoop 没有正确的日志记录。所以我有 sqoop 命令被重定向到日志文件。在那里我只看到以下几行。
我的代码如下。在 shell 脚本内部:
*
sqoop import --connect jdbc:mysql://server:3306/test --verbose --username root --password Password --append --table People --m 1 --hive-drop-import-delims --target-dir /user/username/20/ --delete-target-dir >> /tmp/log
*
捕获的日志详细信息:
警告:/opt/cloudera/parcels/CDH-5.4.2-1.cdh5.4.2.p0.2/bin/../lib/sqoop/../accumulo 不存在! Accumulo 导入将失败。 请将 $ACCUMULO_HOME 设置为 Accumulo 安装的根目录。
如何在 Oozie 中使用 shell 操作获取 sqoop 日志?我需要详细信息,例如加载/提取了多少记录,以及我们在控制台上运行 sqoop 命令时发生的通常日志记录。
请在下面找到我的 jobproperties.xml:
*oozie.use.system.libpath=True
credentials={u'hcat': {'xml_name': u'hcat', 'properties': [('hcat.metastore.uri', u'thrift://node:9083'), ('hcat.metastore.principal', u'hive/node@.COM')]}, u'hive2': {'xml_name': u'hive2', 'properties': [('hive2.jdbc.url', 'jdbc:hive2://node.jnj.com:10000/default'), ('hive2.server.principal', 'hive/itsusraedld01.jnj.com@.COM')]}, u'hbase': {'xml_name': u'hbase', 'properties': []}}
nameNode=hdfs://nameservice1
jobTracker=yarnRM
oozie.sqoop.log.level=DEBUG
log4jConfig=debug-log.properties
oozie.libpath=/user/oozie/share/lib*
【问题讨论】:
-
>>是1>>的缩写,意思是“将流#1(STDOUT)重定向到文件”,但大多数日志来自流#2(STDERR)......因此您需要1>> wtf/duh.log 2>> wtf/duh.log -
顺便说一句,如果您不重定向 STDERR,它将显示在 YARN 日志中 -cf. stackoverflow.com/questions/34344114/…
-
谢谢 Samson.i 确实得到了 std err - 但是,这里的问题是 - 我在 shell 中使用 sqoop,它没有显示 sqoop 日志,它向我显示了这个日志 - log4j:ERROR 不能从 URL [file:/var/run/cloudera-scm-agent/process/8217-yarn-NODEMANAGER/log4j.properties] 读取配置文件。 java.io.FileNotFoundException: /var/run/cloudera-scm-agent/process/8217-yarn-NODEMANAGER/log4j.properties (Permission denied) 如何获取使用 shell log/stderr 生成的 sqoop 日志
-
您的代码块以星号 (
*) 开头和结尾。它们实际上是每种情况下代码的一部分吗?
标签: hadoop workflow hdfs oozie sqoop