ヘッダーをスキップ
Oracle® Big Data Applianceソフトウェア・ユーザーズ・ガイド
リリース2 (2.5)
E53260-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 Oracle Big Data Applianceへのユーザー・アクセスのサポート

この章では、Oracle Big Data Appliance上でMapReduceジョブを実行、またはOracle Big Data Connectorsを使用しているユーザーをサポートする方法について説明します。次の項について説明します。

3.1 Kerberosで保護されたクラスタへのアクセスについて

Apache Hadoopは、本質的に安全なシステムではありません。ネットワーク・セキュリティによってのみ保護されています。接続が確立されると、クライアントはシステムに対して完全なアクセス権限を取得します。

こうしたオープンな環境に対処するために、Oracle Big Data Applianceは、ソフトウェア・インストールのオプションとしてKerberosセキュリティをサポートしています。Kerberosは、悪質な偽装の防止に効果的なネットワーク認証プロトコルです。

Kerberosを使用するように構成された場合、CDHは次のセキュリティを提供します。

  • CDHマスター・ノード、NameNodeおよびJobTrackerでグループ名を解決し、ユーザーがグループのメンバーシップを操作できないようにします。

  • マップ・タスクはジョブを発行したユーザーのアイデンティティの下で実行されます。

  • HDFSの認可メカニズムおよびMapReduceを使用して、ユーザーのデータ・アクセスを制御します。

Oracle Big Data ApplianceクラスタをKerberosで保護する場合には、この章で説明するように、CDHクライアントと個々のユーザーを認証するための追加の手順が必要です。ユーザーは、Kerberosユーザー名、パスワードおよびレルムを把握している必要があります。

表3-1では、よく使用されるKerberosのコマンドについて説明します。詳細は、MITのKerberosに関するドキュメントを参照してください。

表3-1 Kerberosのユーザー・コマンド

コマンド 説明

kinit userid@realm

Kerberosチケットを取得します。

klist

すでにチケットがある場合に、Kerberosチケットをリストします。

kdestroy

有効期限が切れる前にチケットを無効にします。

kpasswd userid@realm

パスワードを変更します。



関連項目:


3.2 CDHへのリモート・クライアント・アクセスの提供

Oracle Big Data Applianceでは、Cloudera's Distribution including Apache Hadoop (CDH)のすべてのコマンドおよびユーティリティに対する完全なローカル・アクセスをサポートしています。

Oracle Big Data Applianceのクライアント・ネットワークにアクセスできる任意のコンピュータ上でブラウザを使用すれば、Cloudera Manager、Hadoop Map/Reduce Administration、Hadoop Task TrackerインタフェースなどのブラウザベースのHadoopツールにアクセスできます。

ただし、リモートでHadoopコマンドを発行するには、CDHクライアントとして構成され、Oracle Big Data Applianceクライアント・ネットワークへのアクセス権を持つシステムから接続する必要があります。この項では、HDFSにアクセスしてOracle Big Data Appliance上でMapReduceジョブを発行できるよう、コンピュータを設定する方法について説明します。


関連項目:

My Oracle Support ID 1506203.1

3.2.1 前提条件

次の前提条件を満たしていることを確認します。

  • 次のアクセス権限を持っている必要があります。

    • クライアント・システムへのsudoアクセス権

    • Cloudera Managerへのログイン・アクセス権

    これらの権限がない場合は、社内のシステム管理者にお問い合せください。

  • クライアント・システムが、ClouderaでCDH4用にサポートされているオペレーティング・システムを実行している必要があります。次の場所にある『Cloudera CDH4 Installation Guide』を参照してください。

    http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Requirements-and-Supported-Versions/cdhrsv_topic_1.html

  • クライアント・システムが、Oracle JDK 1.6_28以上を実行している必要があります。CDH4は、1.6.0_31と1.7.0_15で動作確認されています。

    バージョンを確認するには、次のコマンドを使用します。

    $ java -version
    java version "1.7.0_25"
    Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
    

3.2.2 Oracle Exadata Database MachineでのCDHのインストール

どちらのエンジニアド・システムでも同じオペレーティング・システム(Linux 5.xまたは6.x)が使用される場合には、Oracle Exadata Database Machineをクライアントとして使用するときにOracle Big Data Appliance上のRPMファイルを使用できます。ローカル・ネットワーク内でファイルをコピーするほうが、Cloudera Webサイトからダウンロードするよりも高速です。


注意:

以下のステップでは、version_numberを、ファイル名の欠けた部分(2.2.0+189-1.cdh4.2.0.p0.8.el5など)と置き換えてください。

Oracle Exadata Database Machine上にCDHクライアントをインストールするには、次の手順に従います。 

  1. Exadataデータベース・サーバーにログインします。

  2. ExadataシステムにHadoopがインストールされていないことを確認します。

    rpm -qa | grep hadoop
     
    
  3. rpmコマンドが値を返した場合は、次のように既存のHadoopソフトウェアを削除します。

    rpm -e hadoop_rpm
    
  4. 次のLinux RPMを、Oracle Big Data Applianceの第1サーバーからデータベース・サーバーにコピーします。RPMは、/opt/oracle/BDAMammoth/bdarepo/RPMS/x86_64ディレクトリに置かれています。

    • ed-version_number.x86_64.rpm

    • m4-version_number.x86_64.rpm

    • nc-version_number.x86_64.rpm

    • redhat-lsb-version_number.x86_64.rpm

  5. ステップ4でコピーしたOracle Linux RPMを、すべてのデータベース・ノードにインストールします。次に例を示します。

    sudo yum --nogpgcheck localinstall ed-1.1-3.3.el6.x86_64.rpm
    sudo yum --nogpgcheck localinstall m4-1.4.13-5.el6.x86_64.rpm
    sudo yum --nogpgcheck localinstall nc-1.84-22.el6.x86_64.rpm
    sudo yum --nogpgcheck localinstall redhat-lsb-4.0-7.0.1.el6.x86_64.rpm
    

    CDH RPMをインストールする前に、必ずOracle Linux RPMをインストールしてください。

  6. 次のCDH RPMを、/opt/oracle/BDAMammoth/bdarepo/RPMS/noarchディレクトリからコピーします。

    • bigtop-utils-version_number.noarch.rpm

  7. 次のCDH RPMを、/opt/oracle/BDAMammoth/bdarepo/RPMS/x86_64ディレクトリからコピーします。

    • zookeeper-version_number.noarch.rpm

    • hadoop-version_number.x86_64.rpm

    • bigtop-jsvc-version_number.x86_64.rpm

    • hadoop-hdfs-version_number.x86_64.rpm

    • hadoop-0.20-mapreduce-version_number.x86_64.rpm

    • hadoop-yarn-version_number.x86_64.rpm

    • hadoop-mapreduce-version_number.x86_64.rpm

    • hadoop-client-version_number.x86_64.rpm

  8. CDH RPMを、ステップ67で示したのとまったく同じ順序で、すべてのサーバーにインストールします。次に例を示します。

    rpm -ihv bigtop-utils-0.6.0+227-1.cdh4.6.0.p0.12.el6.noarch.rpm
    rpm -ihv zookeeper-3.4.5+25-1.cdh4.6.0.p0.12.el6.x86_64.rpm
    hadoop-2.0.0+1554-1.cdh4.6.0.p0.16.el6.x86_64.rpm
    bigtop-jsvc-1.0.10-1.cdh4.6.0.p0.13.el6.x86_64.rpm
    rpm -ihv hadoop-hdfs-2.0.0+1554-1.cdh4.6.0.p0.16.el6.x86_64.rpm
    rpm -ihv hadoop-0.20-mapreduce-2.0.0+1554-1.cdh4.6.0.p0.16.el6.x86_64.rpm
    rpm -ihv hadoop-yarn-2.0.0+1554-1.cdh4.6.0.p0.16.el6.x86_64.rpm
    rpm -ihv hadoop-mapreduce-2.0.0+1554-1.cdh4.6.0.p0.16.el6.x86_64.rpm
    rpm -ihv hadoop-client-2.0.0+1554-1.cdh4.6.0.p0.16.el6.x86_64.rpm
    
  9. CDHクライアントを構成します。「保護されていないクラスタ用のCDHクライアントの構成」を参照してください。

3.2.3 サポートされているすべてのオペレーティング・システムにCDHクライアントをインストールする

CDHクライアントを、Clouderaでのサポート対象として識別されたすべてのオペレーティング・システムにインストールするには、次の指示に従います。

CDHクライアント・ソフトウェアをインストールするには、次の手順を実行します。 

  1. クライアント・システムにログインします。

  2. 以前のバージョンのHadoopがすでにインストールされている場合には、削除します。

    CDH3の削除については、次の場所にあるClouderaのドキュメントを参照してください。

    http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Installation-Guide/cdh4ig_topic_6_3.html

  3. ClouderaのWebサイトからCDH 4.6ソフトウェアをダウンロードします。

    $ wget http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.6.0.tar.gz
    
  4. ファイルを常設の場所に解凍します。これがHadoopのホーム・ディレクトリになります。次のコマンドは、現在のディレクトリでhadoop-2.0.0-cdh4.6.0にファイルを解凍します。

    tar -xvzf hadoop-2.0.0-cdh4.6.0.tar.gz
    
  5. CDHクライアントを構成します。「保護されていないクラスタ用のCDHクライアントの構成」を参照してください。

3.2.4 保護されていないクラスタ用のCDHクライアントの構成

CDHをインストールしたら、Oracle Big Data Applianceを操作できるように構成する必要があります。

Hadoopクライアントを構成するには、次の手順を実行します。 

  1. クライアント・システムにログインし、Cloudera ManagerからMapReduceクライアント構成をダウンロードします。次の例では、Cloudera Managerがbda01node03.example.comのポート7180 (デフォルト)でリスニングしており、構成mapreduce-conf.zipというファイルに格納されています。

    $ wget -O mapreduce-conf.zip http://bda01node03.examplecom:7180/cmf/services/2/client-config
    
  2. mapreduce-config.zipをクライアント・システム上の常設の場所に解凍します。

    $ unzip mapreduce-config.zip
    Archive:  mapreduce-clientconfig.zip
      inflating: hadoop-conf/hadoop-env.sh
      inflating: hadoop-conf/core-site.xml
      inflating: hadoop-conf/hdfs-site.xml
      inflating: hadoop-conf/log4j.properties
      inflating: hadoop-conf/mapred-site.xml
    

    すべてのファイルは、hadoop-configという名前のサブディレクトリに格納されます。

  3. hadoop-env.shをテキスト・エディタで開き、環境変数をシステム上の実際のパスに設定します。

    export HADOOP_HOME=hadoop-home-dir/share/hadoop/mapreduce1
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_CONF_DIR=hadoop-conf-dir
    export JAVA_HOME=/usr/java/version
    ln -s $HADOOP_HOME/../../../bin-mapreduce1 $HADOOP_HOME/bin
    ln -s $HADOOP_HOME/../../../etc/hadoop-mapreduce1 $HADOOP_HOME/conf
    rm -f $HADOOP_HOME/lib/slf4j-log4j*jar
    alias hadoop=$HADOOP_HOME/bin/hadoop
    alias hdfs=$HADOOP_HOME/../../../bin/hdfs
    
  4. Hadoop構成ファイルのバックアップ・コピーを作成します。

    # cp /full_path/hadoop-conf /full_path/hadoop-conf-bak
    
  5. ステップ2でダウンロードした構成ファイルで既存の構成ファイルを上書きします。

    # cd /full_path/hadoop-conf
    # cp * /usr/lib/hadoop/conf
    

3.2.5Kerberosで保護されたクラスタ用のCDHクライアントの構成

CDHクライアントをセキュアなCDHクラスタで動作できるようにするには、次の手順に従います。

Kerberos用にCDHクライアントを構成するには、次の手順を実行します。 

  1. CDHクライアントを作成するシステムにログインします。

  2. Java Cryptography Extension Unlimited Strength Jurisdiction Policy Filesをインストールします。

    1. 使用しているJavaのバージョン用のファイルをダウンロードします。

      Java 6: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

      Java 7: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

    2. ダウンロードしたファイルを解凍します。この例では、JCE-7を解凍しています。

      $ unzip UnlimitedJCEPolicyJDK7.zip
      Archive:  UnlimitedJCEPolicyJDK7.zip
         creating: UnlimitedJCEPolicy/
        inflating: UnlimitedJCEPolicy/US_export_policy.jar
        inflating: UnlimitedJCEPolicy/local_policy.jar
        inflating: UnlimitedJCEPolicy/README.txt
      

      注意:

      JCE-6ファイルが、UnlimitedJCEPolicyではなくjceという名前のディレクトリに解凍されます。

    3. 解凍されたファイルをJavaのセキュリティ・ディレクトリにコピーします。次に例を示します。

      $ cp UnlimitedJCEPolicy/* /usr/java/latest/jre/lib/security/
      
  3. 保護されていないクライアントを構成する手順に従います。

    「保護されていないクラスタ用のCDHクライアントの構成」を参照してください。

  4. Kerberosレルムに追加されているCDHクラスタのユーザーIDがあることを確認します。

    「Hadoopクラスタ・ユーザーの作成」を参照してください。

  5. CDHクライアント・システムで、$HADOOP_CONF_DIRディレクトリにkrb5.confという名前のファイルを作成します。インストール環境に応じ、サーバー名、ドメインおよびレルムに適した値を使用して次のように構成設定を入力します。

    [libdefaults]
         default_realm = EXAMPLE.COM
         dns_lookup_realm = false
         dns_lookup_kdc = false
         clockskew = 3600
         ticket_lifetime = 24h
         renew_lifetime = 7d
         forwardable = true
     
    [realms]
         EXAMPLE.COM = {
              kdc = bda01node01.example:88
              admin_server = bda01node07:749
              default_domain = example.com
     }
     
    [domain_realm]
          .com = EXAMPLE.COM 
    
  6. 新しい構成ファイルを有効にします。

    export KRB5_CONFIG=$HADOOP_CONF_DIR/krb5.conf
    export HADOOP_OPTS="-Djava.security.krb5.conf=$HADOOP_CONF_DIR/krb5.conf"
    export KRB5CCNAME=$HADOOP_CONF_DIR/krb5cc_$USER
    
  7. Oracle Big Data Applianceクラスタへのアクセス権があることを確認します。

    「CDHクライアントからクラスタへのアクセス権の確認」を参照してください。

3.2.6 CDHクライアントからクラスタへのアクセス権の確認

Oracle Big Data Applianceクラスタへのアクセス権があることを確認するには、次の手順に従います。

クラスタのアクセス権を確認するには、次の手順を実行します。 

  1. Kerberosで保護されたCDHクラスタにアクセスするには、まずチケット発行チケット(TGT)を取得します。

    $ kinit userid@realm
    
  2. 次のような簡単なHadoopファイル・システム・コマンドを入力して、クライアントからOracle Big Data ApplianceのHDFSにアクセスできることを確認します。

    $ hadoop fs -ls /user
    Found 4 items
    drwx------   - hdfs     supergroup          0 2013-01-16 13:50 /user/hdfs
    drwxr-xr-x   - hive     supergroup          0 2013-01-16 12:58 /user/hive
    drwxr-xr-x   - oozie    hadoop              0 2013-01-16 13:01 /user/oozie
    drwxr-xr-x   - oracle   hadoop              0 2013-01-29 12:50 /user/oracle
    

    クライアント・システムではなく、Oracle Big Data Applianceで定義されているHDFSユーザーに対する出力を確認します。Oracle Big Data Appliance上で直接コマンドを入力した場合と同じ結果が表示されます。

  3. MapReduceジョブを発行します。Oracle Big Data Appliance上のHDFSユーザー名と同じユーザー名でクライアント・システムにログインする必要があります。

    次の例では、piの値を算出します。

    $ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples-2.0.0-cdh4.6.0.jar pi 10 1000000
    Number of Maps  = 10
    Samples per Map = 1000000
    Wrote input for Map #0
    Wrote input for Map #1
         .
         .
         .
    13/04/30 08:15:50 INFO mapred.JobClient:     BYTES_READ=240
    Job Finished in 12.403 seconds
    Estimated value of Pi is 3.14158440000000000000
    
  4. Cloudera Managerを使用して、ローカル・システムではなくOracle Big Data Applianceでジョブが実行されたことを確認します。「Activities」メニューから「mapreduce Jobs」を選択してジョブのリストを表示します。

図3-1に、前述の例で作成されたジョブを示します。

図3-1 Cloudera ManagerでのMapReduceジョブの監視

図3-1の説明はこの後にあります
「図3-1 Cloudera ManagerでのMapReduceジョブの監視」の説明

3.3 Hiveへのリモート・クライアント・アクセスの提供

Hiveへのリモート・クライアント・アクセス権を提供するには、次の手順に従います。

Hiveクライアントを設定するには、次の手順を実行します。 

  1. CDHクライアントを設定します。「CDHへのリモート・クライアント・アクセスの提供」を参照してください。

  2. クライアント・システムにログインし、Cloudera ManagerからHiveクライアント構成をダウンロードします。次の例では、Cloudera Managerがbda01node03.example.comのポート7180 (デフォルト)でリスニングしており、構成はhive-conf.zipというファイルに格納されています。

    $ wget -O hive-conf.zip http://bda01node03.examplecom:7180/cmf/services/5/client-config
    
  3. ファイルを常設のインストール・ディレクトリに解凍します。これがHive構成ディレクトリになります。

    $ unzip hive-conf.zip
    Archive:  hive-conf.zip
      inflating: hive-conf/hive-env.sh
      inflating: hive-conf/hive-site.xml
    
  4. ClouderaのWebサイトからHiveソフトウェアをダウンロードします。

    $ wget http://archive.cloudera.com/cdh4/cdh/4/hive-0.10.0-cdh4.6.0.tar.gz
    
  5. ファイルを常設のインストール・ディレクトリに解凍します。これがHiveのホーム・ディレクトリになります。次のコマンドは、現在のディレクトリでhive-0.10.0-cdh4.6.0という名前のサブディレクトリにファイルを解凍します。

    $ tar -xvzf hive-0.10.0-cdh4.6.0.tar.gz
    
  6. hive-home-dirhive-conf-dirを、ステップ35で作成したディレクトリに置き換えて、次の変数を設定します。

    export HIVE_HOME=hive-home-dir 
    export HIVE_CONF_DIR=hive-conf-dir
    alias hive=$HIVE_HOME/bin/hive
    

次の手順は、Hiveクライアントが正常に設定されたかどうかをテストします。

Hiveのアクセス権を確認するには、次の手順を実行します。 

  1. Kerberosで保護されたCDHクラスタにアクセスするには、まずチケット発行チケット(TGT)を取得します。

    $ kinit userid@realm
    
  2. Hiveコンソールを開きます。

    $ hive
    Logging initialized using configuration in jar:file:/usr/lib/hive/lib/hive-common-0.10.0-cdh4.6.0.jar!/hive-log4j.properties
    Hive history file=/tmp/oracle/hive_job_log_e10527ee-9637-4c08-9559-a2e5cea6cef1_831268640.txt
    hive>
    
  3. すべての表をリストします。

    hive> show tables;
    OK
    src
    

3.4 ユーザー・アカウントの管理

このセクションでは、HDFS、MapReduceおよびHiveにアクセスできるユーザーの作成方法を説明します。この項の内容は次のとおりです。

3.4.1 Hadoopクラスタ・ユーザーの作成

ユーザー・アカウントを作成する場合は、次のように定義してください。

  • MapReduceジョブを実行するには、ユーザーはhadoopグループに属しているか、または同等の権限を付与されている必要があります。

  • Hive内に表を作成または変更するには、ユーザーはhiveグループに属しているか、または同等の権限を付与されている必要があります。

  • Hueユーザーを作成するには、ブラウザでHueを開き、「User Admin」アイコンをクリックします。詳細は、「Cloudera Hueを使用したHadoopの操作」を参照してください。

3.4.1.1 保護されていないクラスタでのユーザーの作成

保護されていないHadoopクラスタ上でユーザーを作成するには、次の手順を実行します。

  1. rootユーザーとして、非クリティカル・ノード(node04からnode18)へのssh接続を開きます。

  2. ユーザーのホーム・ディレクトリを作成します。

    # sudo -u hdfs hadoop fs -mkdir /user/user_name
    

    HDFSスーパー・ユーザーはhdfsである(rootではない)ため、sudoを使用します。

  3. ディレクトリの所有者を変更します。

    # sudo -u hdfs hadoop fs -chown user_name:hadoop /user/user_name
    
  4. ディレクトリが正しく設定されていることを確認します。

    # hadoop fs -ls /user
    
  5. クラスタ内のすべてのノードに対してオペレーティング・システム・ユーザーを作成します。

    # dcli useradd -G hadoop,hive[,group_name...] -m user_name
    

    この構文では、group_nameを既存のグループ名、user_nameを新しいユーザー名でそれぞれ置換します。

  6. オペレーティング・システム・ユーザーが正しいグループに属していることを確認します。

    # dcli id user_name
    
  7. ユーザーのホーム・ディレクトリがすべてのノードに作成されたことを確認します。

    # dcli ls /home | grep user_name
    

例3-1では、hadoopをプライマリ・グループとし、hiveを追加グループとしてjdoeという名前のユーザーを作成します。

例3-1 Hadoopユーザーの作成

# sudo -u hdfs hadoop fs -mkdir /user/jdoe
# sudo -u hdfs hadoop fs -chown jdoe:hadoop /user/jdoe
# hadoop fs -ls /user
Found 5 items
drwx------   - hdfs     supergroup          0 2013-01-16 13:50 /user/hdfs
drwxr-xr-x   - hive     supergroup          0 2013-01-16 12:58 /user/hive
drwxr-xr-x   - jdoe     jdoe                0 2013-01-18 14:04 /user/jdoe
drwxr-xr-x   - oozie    hadoop              0 2013-01-16 13:01 /user/oozie
drwxr-xr-x   - oracle   hadoop              0 2013-01-16 13:01 /user/oracle
# dcli useradd -G hadoop,hive -m jdoe
# dcli id jdoe
bda1node01: uid=1001(jdoe) gid=1003(jdoe) groups=1003(jdoe),127(hive),123(hadoop)
bda1node02: uid=1001(jdoe) gid=1003(jdoe) groups=1003(jdoe),123(hadoop),127(hive)
bda1node03: uid=1001(jdoe) gid=1003(jdoe) groups=1003(jdoe),123(hadoop),127(hive)
     .
     .
     .
# dcli ls /home | grep jdoe
bda1node01: jdoe
bda1node02: jdoe
bda1node03: jdoe

3.4.1.2 保護されたクラスタでのユーザーの作成

Kerberosで保護されたクラスタ上でユーザーを作成するには、次の手順を実行します。

  1. HDFSプリンシパルとしてKerberosに接続し、jdoeを実際のユーザー名に置き換えて次のコマンドを実行します。

    hdfs dfs -mkdir /user/jdoe
    hdfs dfs -chown jdoe /user/jdoe
    dcli -C useradd -G hadoop,hive -m jdoe
    hash=$(echo "hadoop" | openssl passwd -1 -stdin)
    dcli -C "usermod --pass='$hash' jdoe"
    
  2. キー配布センター(KDC)にログインし、ユーザーのプリンシパルを追加します。次の例で、jdoe、bda01node01およびexample.comを正しいユーザー名、サーバー名、ドメインおよびレルムで置き換えます。

    ssh -l root bda01node01.example.com kadmin.local
    add_principal user_name@EXAMPLE.COM
    

3.4.2 ユーザー・ログイン権限の付与(オプション)

リモート・クライアントからMapReduceジョブを実行する場合、Oracle Big Data Applianceでログイン権限は必要ありません。ただし、Oracle Big Data Applianceにログインする場合、パスワードを設定する必要があります。パスワードの設定とリセットは同じ方法で行えます。

すべてのOracle Big Data Applianceサーバーに対するユーザー・パスワードを設定するには、次の手順を実行します。

  1. 「Hadoopクラスタ・ユーザーの作成」の説明に従って、Hadoopクラスタ・ユーザーを作成します。

  2. ユーザーにパスワードがないことを確認します。

    # dcli passwd -S user_name
    bda1node01.example.com: jdoe NP 2013-01-22 0 99999 7 -1 (Empty password.)
    bda1node02.example.com: jdoe NP 2013-01-22 0 99999 7 -1 (Empty password.)
    bda1node03.example.com: jdoe NP 2013-01-22 0 99999 7 -1 (Empty password.)
    

    出力に「Empty password」または「Password locked」と表示された場合は、パスワードを設定する必要があります。

  3. パスワードを設定します。

     hash=$(echo 'password' | openssl passwd -1 -stdin); dcli "usermod --pass='$hash' user_name"
    
  4. すべてのサーバーに対してパスワードが設定されていることを確認します。

    # dcli passwd -S user_name
    bda1node01.example.com: jdoe PS 2013-01-24 0 99999 7 -1 (Password set, MD5 crypt.)
    bda1node02.example.com: jdoe PS 2013-01-24 0 99999 7 -1 (Password set, MD5 crypt.)
    bda1node03.example.com: jdoe PS 2013-01-24 0 99999 7 -1 (Password set, MD5 crypt.)
    

関連項目:

  • dcliの詳細は、『Oracle Big Data Applianceオーナーズ・ガイド』を参照してください。

  • useraddコマンドの完全な構文は、Linux manページを参照してください。


3.5 削除されたファイルのリカバリ

CDHはオプションのごみ箱機能を備えているので、削除されたファイルまたはディレクトリをただちにシステムから削除せずに、指定した期間trashディレクトリに移動できます。デフォルトで、ごみ箱機能はHDFSおよびすべてのHDFSクライアントで有効です。

3.5.1 ごみ箱からのファイルのリストア

ごみ箱機能が有効になっている場合は、削除してしまったファイルを簡単にリストアできます。

trashディレクトリからファイルをリストアするには、次の手順を実行します。 

  1. 削除されたファイルがごみ箱にあることを確認します。次の例では、oracleユーザーによって削除されたファイルを確認します。

    $ hadoop fs -ls .Trash/Current/user/oracle
    Found 1 items
    -rw-r--r--  3 oracle hadoop  242510990 2012-08-31 11:20 /user/oracle/.Trash/Current/user/oracle/ontime_s.dat
    
  2. 以前の場所にファイルを移動またはコピーします。次の例では、ontime_s.datをごみ箱からHDFSの/user/oracleディレクトリに移動します。

    $ hadoop fs -mv .Trash/Current/user/oracle/ontime_s.dat /user/oracle/ontime_s.dat
    

3.5.2 ごみ箱を空にする間隔の変更

ごみ箱を空にする間隔とは、ファイルがシステムから永久に削除されるまで、trashディレクトリに保持される時間の最小値です。デフォルト値は、1日(24時間)です。

ごみ箱を空にする間隔を変更するには、次の手順を実行します。 

  1. Cloudera Managerを開きます。詳細は、「Cloudera Managerを使用したCDH操作の管理」を参照してください。

  2. 「All Services」ページの「Name」の下で、「hdfs」をクリックします。

  3. 「hdfs」ページで、「Configuration」をクリックし、「View and Edit」を選択します。

  4. 「NameNode Settings」の下にある「Filesystem Trash Interval」プロパティを検索するか、下方向にスクロールして探します。図3-2を参照してください。

  5. 現在の値をクリックして、ポップアップ・フォームに新しい値を入力します。

  6. 「Save Changes」をクリックします。

  7. ページ上部の「Actions」メニューを展開して、「Restart」を選択します。

  8. rootとして、クラスタ内のノードへの接続を開きます。

  9. 新しい構成をデプロイします。

    dcli -C bdagetclientconfig
    

図3-2は、Cloudera ManagerにFilesystem Trash Intervalプロパティが表示されているところを示しています。

図3-2 Cloudera ManagerでのHDFSプロパティの設定

図3-2の説明はこの後にあります
「図3-2 Cloudera ManagerでのHDFSプロパティの設定」の説明

3.5.3 ごみ箱機能の無効化

Oracle Big Data Applianceでは、デフォルトでごみ箱機能が有効になっています。この構成はクラスタに対して無効にできます。ごみ箱機能を無効化すると、削除されたファイルおよびディレクトリはごみ箱に移動しません。リカバリできなくなります。

3.5.3.1 ごみ箱機能の完全な無効化

次の手順を実行すると、HDFSのごみ箱機能は無効化されます。ごみ箱機能が完全に無効化されても、クライアント構成には影響しません。

ごみ箱機能を完全に無効化するには、次の手順を実行します。

  1. Cloudera Managerを開きます。詳細は、「Cloudera Managerを使用したCDH操作の管理」を参照してください。

  2. 「All Services」ページの「Name」の下で、「hdfs」をクリックします。

  3. 「hdfs」ページで、「Configuration」サブタブをクリックします。

  4. 「NameNode Settings」の下にある「Filesystem Trash Interval」プロパティを検索するか、下方向にスクロールして探します。図3-2を参照してください。

  5. 現在の値をクリックして、ポップアップ・フォームに値0 (ゼロ)と入力します。

  6. 「Save Changes」をクリックします。

  7. ページ上部の「Actions」メニューを展開して、「Restart」を選択します。

3.5.3.2 ローカルのHDFSクライアントのごみ箱機能の無効化

Oracle Big Data ApplianceにインストールされているすべてのHDFSクライアントは、ごみ箱機能を使用するように構成されています。HDFSクライアントとは、HDFSに接続して、HDFSファイルの一覧表示、HDFSとの間のファイルのコピー、ディレクトリの作成といった操作を実行する任意のアプリケーションです。

Cloudera Managerを使用すると、ローカルのクライアント構成設定を変更できますが、ごみ箱機能は有効なままです。


注意:

どのクライアントもごみ箱を使用できないようにするには、ごみ箱機能を完全に無効化します。詳細は、「ごみ箱機能の完全な無効化」を参照してください。

ローカルのHDFSクライアントのごみ箱機能を無効化するには、次の手順を実行します。 

  1. Cloudera Managerを開きます。詳細は、「Cloudera Managerを使用したCDH操作の管理」を参照してください。

  2. 「All Services」ページの「Name」の下で、「hdfs」をクリックします。

  3. 「hdfs」ページで、「Configuration」サブタブをクリックします。

  4. 「Client Settings」の下にある「Use Trash」プロパティを検索するか、下方向にスクロールして探します。図3-2を参照してください。

  5. 「Use Trash」チェック・ボックスの選択を解除します。

  6. 「Save Changes」をクリックします。この設定は、Oracle Big Data Applianceに新たにダウンロードされるすべてのHDFSクライアントの構成に使用されます。

  7. rootとして、クラスタ内のノードへの接続を開きます。

  8. 新しい構成をデプロイします。

    dcli -C bdagetclientconfig
    

3.5.3.3 リモートのHDFSクライアントのごみ箱機能の無効化

リモートのHDFSクライアントは、通常、CDHクライアントをダウンロードおよびインストールすると構成されます(「CDHへのリモート・クライアント・アクセスの提供」を参照)。Oracle SQL Connector for HDFSやOracle R Advanced Analytics for Hadoopなどがリモート・クライアントです。

リモートのHDFSクライアントのごみ箱機能を無効化するには、次の手順を実行します。 

  1. CDHクライアントがインストールされているシステムへの接続を開きます。

  2. テキスト・エディタで/etc/hadoop/conf/hdfs-site.xmlを開きます。

  3. ごみ箱を空にする間隔をゼロにします。

    <property>
         <name>fs.trash.interval</name>
         <value>0</value>
    </property>
    
  4. ファイルを保存します。