1

実行中の Hadoop クラスターがあります。Hadoop ディストリビューション (この場合は 0.20.205.0) をダウンロードしました。

そのクラスターで Hadoop を呼び出すことができるシェル スクリプト (bash/zsh/perl) を作成する必要があります。理想的には、次の方法で Sqoop スクリプトから呼び出せるようにする必要があります。

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

Hadoop を呼び出して namenode/jobtracker URI を提供するにはどうすればよいですか? Sqoop および DB ドライバーで追加のライブラリを提供するにはどうすればよいですか?

4

2 に答える 2

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 "$@"

ここでは、オプションを介してクラスパスに配置する jar を渡し-libjarsます。

対象とするクラスターが複数ある場合は、クラスターごとに異なる conf フォルダーを作成しHADOOP_CONF_DIR、hadoop スクリプトを呼び出す前に環境変数を設定するか、-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 \
    "$@"
于 2013-02-27T01:05:54.373 に答える
0

私の問題は、実際に Sqoop を実行することでした。そこで、Sqoop コマンド (例: sqoop-import) の最初の引数として -fs および -jt パラメーターを指定するだけで解決しました。

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
于 2013-02-27T04:40:18.667 に答える