如何创建和配置Hadoop客户端脚本?

时间:2013-02-26 23:06:33

标签: java shell hadoop sqoop

有一个正在运行的Hadoop集群。 我已经下载了Hadoop发行版(在本例中为0.20.205.0)

我需要创建一些能够在该集群上调用Hadoop的shell脚本(bash / zsh / perl)。理想情况下,它应该能够以这种方式从Sqoop脚本调用:

exec ${HADOOP_HOME}/bin/hadoop com.cloudera.sqoop.Sqoop "$@"

如何调用Hadoop并提供namenode / jobtracker URI? 如何使用Sqoop和DB驱动程序提供额外的库?

2 个答案:

答案 0 :(得分:1)

使用hadoop通用选项应该足够简单 - 我假设你已经为你的集群配置了${HADOOP_HOME}/conf的内容(即core-site.xml和mapred-site.xml)

exec ${HADOOP_HOME}/bin/hadoop com.cloudera.sqoop.Sqoop \
    -libjars myjar1.jar,myjar2,jar "$@"

在这里,您可以通过-libjars选项将jar放置在类路径上。

如果您想要定位多个群集,那么您只需要为每个群集创建不同的conf文件夹,并在调用hadoop脚本之前设置HADOOP_CONF_DIR环境变量,或者您可以使用适当设置-Dkey=valuefs.default.name的{​​{1}}个通用参数:

mapred.job.tracker

答案 1 :(得分:0)

我的问题实际上是运行Sqoop。 所以我通过简单地提供-fs和-jt参数作为Sqoop命令的第一个参数(例如sqoop-import)来解决它

sqoop-import \
    -fs $HADOOP_FILESYSTEM -jt $HADOOP_JOB_TRACKER  \
    --connect $DB_CONNECTION_STRING --username $DB_USER -P \
    --outdir /home/user/sqoop/generated_code \
    "$@" # <- other parameters