# Hadoopのアップグレード

Hadoop配信の新規バージョンにアップグレードする場合、BDDクラスタと統合するように更新する必要があります。`bdd-admin`スクリプトを使用してこれを実行できます。

スクリプトを実行する前に、配信用の新規Hadoopクライアント・ライブラリを取得し、それを管理サーバーに移動する必要があります。スクリプトが実行されると、これらのライブラリを使用して、新規fat jarを生成します。これはその後すべてのBDDノードに配信されます。

「Hadoopクライアント構成ファイルの更新」で説明されているように、スクリプトは、新規Hadoopクライアント構成ファイルの取得および配信も行います。

注意: `bdd-admin`を使用して、別のHadoop配信に切り替えることはできません。たとえば、CDH 5.4からCDH 5.5にはアップグレードできますが、HDP 2.3にはアップグレードできません。

Hadoopをアップグレードするには、次の手順を実行します。

1. 管理サーバーの$BDD_HOME/BDD_manager/binから次を実行して、BDDクラスタを停止します。

       ./bdd-admin.sh stop [-t <minutes>]

2. ディストリビューションのドキュメントの説明に従って、Hadoopクラスタをアップグレードします。
3. BDDをインストールする前に行ったすべての構成変更(YARN設定など)がアップグレード中にリセットされなかったか、確認します。
   さらにHDPを保有している場合は、次を実行します。
   1. mapred-site.xmlで、`${hdp.version}`のすべてのインスタンスをHDPバージョン番号に置き換えます。
   2. hive-site.xmlで、次のプロパティの値から`s`を削除します。
      - `hive.metastore.client.connect.retry.dealay`
      - `hive.metastore.client.cocket.timeout`
   MapRを保有しており、新しいバージョンのMapRで別のバージョンのMapRクライアントを使用する必要がある場合は、MapRクライアントを再インストールして再構成できます。MapRクライアントは、MapRクラスタの一部ではないすべてのDgraph、Studioおよび変換サービス・ノードの`$PATH`にインストールし、追加する必要があります。クライアントのインストール手順は、MapRのドキュメントのMapRクライアントのインストールの項を参照してください。
4. 新規バージョンのHadoop配信用のクライアント・ライブラリを取得し、それを管理サーバーに配置します。
   実行時に`bdd-admin`スクリプトにパスを指定するため、ライブラリを配置する位置は任意です。
   - CDHを保有している場合は、http://archive-primary.cloudera.com/cdh5/cdh/5/から次のパッケージをダウンロードし、解凍します。
     - spark-<spark_version>.cdh.<cdh_version>.tar.gz
     - hive-<hive_version>.cdh.<cdh_version>.tar.gz
     - hadoop-<hadoop_version>.cdh.<cdh_version>.tar.gz
     - avro-<avro_version>.cdh.<cdh_version>.tar.gz
   - HDPを保有している場合は、次のディレクトリをHadoopノードから管理サーバーにコピーします。
     - /usr/hdp/<version>/pig/lib/h2/
     - /usr/hdp/<version>/hive/lib/
     - /usr/hdp/<version>/spark/lib/
     - /usr/hdp/<version>/spark/external/spark-native-yarn/lib/
     - /usr/hdp/<version>/hadoop/
     - /usr/hdp/<version>/hadoop/lib/
     - /usr/hdp/<version>/hadoop-hdfs/
     - /usr/hdp/<version>/hadoop-hdfs/lib/
     - /usr/hdp/<version>/hadoop-yarn/
     - /usr/hdp/<version>/hadoop-yarn/lib/
     - /usr/hdp/<version>/hadoop-mapreduce/
     - /usr/hdp/<version>/hadoop-mapreduce/lib/
   - MapRを保有している場合は、次のディレクトリをHadoopノードから管理サーバーにコピーします。
     - /opt/mapr/spark/spark-<version>/lib
     - /opt/mapr/hive/hive-<version>/lib
     - /opt/mapr/zookeeper/zookeeper-<version>
     - /opt/mapr/zookeeper/zookeeper-<version>/lib
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/common
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/common/lib
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/hdfs
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/hdfs/lib
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/mapreduce
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/mapreduce/lib
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/tools/lib
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/yarn
     - /opt/mapr/hadoop/hadoop-<version>/share/hadoop/yarn/lib
5. BDDクラスタを起動します。

       ./bdd-admin.sh start

6. 次を実行して、BDD'のHadoop構成を更新します。

       ./bdd-admin.sh publish-config hadoop -l <path[,path]> -j <file>

   説明:
   - `<path[,path]>`は、管理サーバー上の各クライアント・ライブラリへの絶対パスのカンマ区切りリストです。HDPクラスタの場合、ライブラリは、上にリストされた順序で指定する必要があります。
   - `<file>`は、Hadoopノード上のYARN jarのSparkへの絶対パスです。Hadoopインストール環境の場所が変更されていないかぎり、$BDD_HOME/BDD_manager/conf/bdd.confの`SPARK_ON_YARN_JAR`の値を使用できます。念のために、パスをダブルチェックしてください。
7. 変更が有効になるように、クラスタを再起動します。

       ./bdd-admin.sh restart [-t <minutes>]