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

标签 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 和数据库驱动程序提供额外的库?

最佳答案

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

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

在这里,您通过 -libjars 选项传递要放置在类路径中的 jars。

如果您有多个要定位的集群,那么您只需要为每个集群创建不同的 conf 文件夹并在调用 hadoop 脚本之前设置 HADOOP_CONF_DIR 环境变量,或者您可以使用 -Dkey=value 通用参数来适本地设置 fs.default.namemapred.job.tracker:

exec ${HADOOP_HOME}/bin/hadoop com.cloudera.sqoop.Sqoop \
    -libjars myjar1.jar,myjar2,jar \
    -Dfs.default.name=hdfs://namenode-servername:9000 \
    -Dmapred.job.jobtracker=jobtracker-servername:9001 \
    "$@"

关于java - 如何创建和配置 Hadoop 客户端脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101225/

相关文章:

java - 如何设置Java线程的cpu核心亲和性?

linux - Bash Shell 脚本 : what simple logic am I missing

hadoop - 如何在没有域名的情况下设置Kerberos领域

java - 覆盖hibernate子类中的主键

java - 无法创建 ChromeDriver 对象

java - 找不到或加载主类,为什么?

linux - Dovecot/Amavis 重启脚本(正在进行中)

bash - Shell脚本if语句总是执行else block

mysql - 使用 Hive 查询 Sqoop 到 MySQL

sql - HIVE SQL 将连续范围折叠成单行