0

Hive ジョブを送信するときにユーザーが Hadoop 構成ファイルのデフォルト プロパティをオーバーライドしないようにするにはどうすればよいですか?

例:

mapred-site.xml:

<property>
    <name>mapreduce.job.heap.memory-mb.ratio</name>
    <value>0.8</value>
  </property>

ユーザーはハイブ ジョブで以下のプロパティを使用して上書きします

set mapreduce.job.heap.memory-mb.ratio=0.9 
4

1 に答える 1

2

Hadoop のドキュメントから:

構成パラメーターは final と宣言される場合があります。リソースが値 final を宣言すると、その後ロードされるリソースはその値を変更できません(...)管理者は通常、ユーザー アプリケーションが変更できない値に対して、core-site.xml でパラメーターを final として定義します。

<property>
  <name>dfs.hosts.include</name>
  <value>/etc/hadoop/conf/hosts.include</value>
  <final>true</final>
</property>

したがって、ユーザーが JDBC 経由で接続する場合は、構成をいじるだけです。一部の小道具を「最終」にするために HiveServer2 によって使用されるファイル。

ユーザーがレガシーhiveCLI で接続し、ハッカーでない場合は、( a) Hadoop クライアントのグローバル conf をいじるか、(b)特定の構成ファイルを選択するように「ハイブ」ランチャー スクリプトをいじる必要があります。デフォルト以外のディレクトリ (通常は、標準の Hadoop CLASSPATH の前にカスタム ディレクトリを強制することによって行われます)。

ユーザーがハッカーであり、レガシー CLI にアクセスできる場合、構成ファイル自体を上書きする可能性があるため、技術的にはプロパティをhive強制できません。<final>とにかく、誰かがそれを達成できれば、おそらくあなたの仕事を得るでしょう;-)

于 2016-06-06T16:16:14.290 に答える