このページでは、E-MapReduce クラスターの複数の操作方法について説明します。コンポーネントに対する個別の操作の実行がより簡単になります。

重要 後段のクラスターバージョン (3.2 以降) では、コンポーネントのすべての操作はコンソールの [クラスター管理] ページから実行できます。 コンポーネントの管理は Web ページを使用して行うよう推奨します。

一般的な環境変数

env コマンドを入力して、以下の例に類似した環境変数の設定を確認します。 実際の設定は異なる場合があります。 この例はあくまで参考用です。
JAVA_HOME=/usr/lib/jvm/java
HADOOP_HOME=/usr/lib/hadoop-current
HADOOP_CLASSPATH=/usr/lib/hbase-current/lib/*:/usr/lib/tez-current/*:/usr/lib/tez-current/lib/*:/etc/emr/tez-conf:/usr/lib/hbase-current/lib/*:/usr/lib/tez-current/*:/usr/lib/tez-current/lib/*:/etc/emr/tez-conf:/opt/apps/extra-jars/*:/opt/apps/extra-jars/*
HADOOP_CONF_DIR=/etc/emr/hadoop-conf
SPARK_HOME=/usr/lib/spark-current
SPARK_CONF_DIR=/etc/emr/spark-conf
HBASE_HOME=/usr/lib/hbase-current
HBASE_CONF_DIR=/etc/emr/hbase-conf
HIVE_HOME=/usr/lib/hive-current
HIVE_CONF_DIR=/etc/emr/hive-conf
PIG_HOME=/usr/lib/pig-current
PIG_CONF_DIR=/etc/emr/pig-conf
TEZ_HOME=/usr/lib/tez-current
TEZ_CONF_DIR=/etc/emr/tez-conf
ZEPPELIN_HOME=/usr/lib/zeppelin-current
ZEPPELIN_CONF_DIR=/etc/emr/zeppelin-conf
HUE_HOME=/usr/lib/hue-current
HUE_CONF_DIR=/etc/emr/hue-conf
PRESTO_HOME=/usr/lib/presto-current
PRESTO_CONF_DIR=/etc/emr/presot-conf

Web UI を使用してコンポーネントを起動および停止

E-MapReduce サービスの Web UI を使用して、指定された ECS インスタンスで実行されているコンポーネントを起動、停止、および再起動できます。 HDFS サービスなどさまざまなコンポーネントに対する操作は類似しています。 emr-worker-1 インスタンスの DataNode コンポーネントを起動、停止、および再起動するには、以下のステップを実行します。
  1. クラスター一覧 のページで、操作を実行するクラスターの "アクション" 列の [管理]をクリックします。
  2. [クラスターとサービス] ページで、 [HDFS] リンクをクリックし [HDFS] サービスページに移動します。
  3. [コンポーネントトポロジ] タブをクリックして、クラスター内のすべてのインスタンスで実行されているコンポーネントの一覧を表示します。
  4. emr-worker-1 インスタンス上で実行される DataNode コンポーネントで "アクション" 列の [開始] をクリックします。 ダイアログボックスにコミットレコードを入力し、[OK] をクリックします。 10 秒後にページを最新の情報に更新します。 DataNode の "コンポーネントステータス" 列の値が "STOPPED" から "STARTED" に切り替わります。
  5. コンポーネントが起動したら、"アクション" 列で [再起動] をクリックします。 ダイアログボックスにコミットレコードを入力し、[OK] をクリックします。

    40 秒後にページを最新の情報に更新します。 DataNode の "コンポーネントステータス" 列の値が "STOPPED" から "STARTED" に切り替わります。

  6. "アクション" 列の [停止] をクリックします。 ダイアログボックスにコミットレコードを入力し、[OK] をクリックします。

    10 秒後にページを最新の情報に更新します。 DataNode の "コンポーネントステータス" 列の値が "STOPPED" から "STARTED" に切り替わります。

Web UI を使用してコンポーネントに対する一括操作を実行

指定した単一の ECS インスタンスではなく、複数の ECS インスタンスのコンポーネントに対して一括操作を実行できます。 HDFS サービスを例とします。 すべてのインスタンスの DataNode コンポーネントを再起動するには、以下のステップを実行します。

  1. クラスター一覧 ページで、操作を実行するクラスターの "アクション" 列の [管理] をクリックします。
  2. クラスターとサービス ページで、サービス一覧の [HDFS][アクション] をクリックします。
  3. [アクション]ドロップダウンリストから [RESTART DataNode] を選択します。 ダイアログボックスにコミットレコードを入力し、[OK] をクリックします。

    [HDFS] をクリックして [コンポーネントトポロジ] タブをクリックします。 [コンポーネントトポロジ] タブページで各プロセスのステータスを閲覧します。

    重要 クラスターのローリング再起動を実行後に手動でノードを再起動すると、コンソールからエラーが報告されます。

CLI を使用してコンポーネントを起動および停止

  • YARN
    Account: hadoop
    • ResourceManager (マスターコンポーネント)
      //Starts a component.
      /usr/lib/hadoop-current/sbin/yarn-daemon.sh start resourcemanager
      //Stops a component.
      /usr/lib/hadoop-current/sbin/yarn-daemon.sh stop resourcemanager
    • NodeManager (コアコンポーネント)
      //Starts a component.
      /usr/lib/hadoop-current/sbin/yarn-daemon.sh start nodemanager
      //Stops a component.
      /usr/lib/hadoop-current/sbin/yarn-daemon.sh stop nodemanager
    • JobHistoryServer (マスターコンポーネント)
      //Starts a component.
      /usr/lib/hadoop-current/sbin/mr-jobhistory-daemon.sh start historyserver
      //Stops a component.
      /usr/lib/hadoop-current/sbin/mr-jobhistory-daemon.sh stop historyserver
    • JobHistoryServer (マスターコンポーネント)
      //Starts a component.
      /usr/lib/hadoop-current/sbin/mr-jobhistory-daemon.sh start historyserver
      //Stops a component.
      /usr/lib/hadoop-current/sbin/mr-jobhistory-daemon.sh stop historyserver
    • WebProxyServer (マスターコンポーネント)
      //Starts a component.
      /usr/lib/hadoop-current/sbin/yarn-daemon.sh start proxyserver
      //Stops a component.
      /usr/lib/hadoop-current/sbin/yarn-daemon.sh stop proxyserver
  • HDFS
    Account: hdfs
    • NameNode (マスターコンポーネント)
      //Starts a component.
      /usr/lib/hadoop-current/sbin/hadoop-daemon.sh start namenode
      //Stops a component.
      /usr/lib/hadoop-current/sbin/hadoop-daemon.sh stop namenode
    • DataNode (コアコンポーネント)
      //Starts a component.
      /usr/lib/hadoop-current/sbin/hadoop-daemon.sh start datanode
      //Stops a component.
      /usr/lib/hadoop-current/sbin/hadoop-daemon.sh stop datanode
  • Hive

    Account: hadoop

    • MetaStore (マスターコンポーネント)
      //Starts a component. 最大メモリーを大きくするには、HADOOP_HEAPSIZE 環境変数をより大きな値に設定できます。
      HADOOP_HEAPSIZE=512 /usr/lib/hive-current/bin/hive --service metastore >/var/log/hive/metastore.log 2>&1 &
    • HiveServer2 (マスターコンポーネント)
      //Starts a component.
      HADOOP_HEAPSIZE=512 /usr/lib/hive-current/bin/hive --service hiveserver2 >/var/log/hive/hiveserver2.log 2>&1 &
  • HBase

    運用アカウント : hdfs

    注 : 以下の例は HBase サービスをベースとしています。 対応する設定なしでコンポーネントを起動するとエラーが発生します。

    • HMaster (マスターコンポーネント)
      //Starts a component.
      /usr/lib/hbase-current/bin/hbase-daemon.sh start master
      //Restarts a component.
      /usr/lib/hbase-current/bin/hbase-daemon.sh restart master
      //Stops a component.
      /usr/lib/hbase-current/bin/hbase-daemon.sh stop master
    • HRegionServer (コアコンポーネント)
      //Starts a component.
      /usr/lib/hbase-current/bin/hbase-daemon.sh start regionserver
      //Restarts a component.
      /usr/lib/hbase-current/bin/hbase-daemon.sh restart regionserver
      //Stops a component.
      /usr/lib/hbase-current/bin/hbase-daemon.sh stop regionserver
    • ThriftServer (マスターコンポーネント)
      //Starts a component.
      /usr/lib/hbase-current/bin/hbase-daemon.sh start thrift -p 9099 >/var/log/hive/thriftserver.log 2>&1 &
      //Stops a component.
      /usr/lib/hbase-current/bin/hbase-daemon.sh stop thrift
  • Hue

    アカウント : hadoop

    //Starts a component.
    su -l root -c "${HUE_HOME}/build/env/bin/supervisor >/dev/null 2>&1 &"
    //Stops a component.
    ps aux | grep hue     //Lists information about the currently running Hue processes.
    kill -9 huepid        //Kills the Hue process by its PID.
  • Zeppelin

    アカウント : hadoop

    //Starts a component. 最大メモリーを大きくするには、HADOOP_HEAPSIZE 環境変数をより大きな値に設定できます。
    su -l root -c "ZEPPELIN_MEM=\"-Xmx512m -Xms512m\" ${ZEPPELIN_HOME}/bin/zeppelin-daemon.sh start"
    //Stops a component.
    su -l root -c "${ZEPPELIN_HOME}/bin/zeppelin-daemon.sh stop"
  • Presto

    Account: hadoop

    • PrestoServer (マスターコンポーネント)
      //Starts a component.
      /usr/lib/presto-current/bin/launcher --config=/usr/lib/presto-current/etc/coordinator-config.properties start
      //Stops a component.
      /usr/lib/presto-current/bin/launcher --config=/usr/lib/presto-current/etc/coordinator-config.properties stop
    • (コアコンポーネント)
      //Starts a component.
      /usr/lib/presto-current/bin/launcher --config=/usr/lib/presto-current/etc/worker-config.properties start
      //Stops a component.
      /usr/lib/presto-current/bin/launcher --config=/usr/lib/presto-current/etc/worker-config.properties stop

CLI を使用してコンポーネントに対する一括操作を実行

すべてのワーカー (コア) ノードに一括操作を実行するスクリプトコマンドを記述します。 EMR クラスターでは、SSH を使用してマスターノードから hadoop アカウントと hdfs アカウントで実行されるすべてのワーカーノードにアクセスできます。

たとえば、以下のコマンドを実行して、すべてのワーカーノードの NodeManager コンポーネントを停止できます。 ワーカーノードの数を 10 と仮定します。
for i in `seq 1 10`;do ssh emr-worker-$i /usr/lib/hadoop-current/sbin/yarn-daemon.sh stop nodemanager;done