バルクロードや、Hadoop 分散ファイルシステム (HDFS) への直接アクセスを必要とするその他の操作を実行するには、ご利用の ApsaraDB for HBase クラスターで HDFS ポートを有効にし、Hadoop クライアントを構成してクラスターの HDFS に接続します。
HDFS ポートを有効にすると、ご利用のクラスターが悪意のある攻撃にさらされ、パフォーマンスの不安定性やデータ損失につながる可能性があります。Alibaba Cloud は、ユーザーの誤操作によって HDFS で発生したデータ損失について責任を負いません。続行する前に、HDFS の操作に精通していることを確認してください。
前提条件
開始する前に、以下を確認してください。
Hadoop クライアントがインストールされ、
hadoopコマンドが利用可能なマシンApsaraDB for HBase Q&A DingTalk グループへのアクセス (HDFS をアクティブ化し、ヘッダーノードのホスト名を取得するために必要)
HDFS アクセスの有効化
HDFS アクセスはセルフサービスではありません。これをアクティブ化するには、ApsaraDB for HBase Q&A DingTalk グループに連絡してください。タスクが完了すると、Alibaba Cloud はクラスターを保護するために HDFS を再度無効にします。
DingTalk グループは、以下の構成ファイルで必要となる 2 つのヘッダーノードのホスト名 ({hbase-header-1-host} および {hbase-header-2-host}) の実際の値も提供します。
Hadoop クライアントの構成
これらはクライアント側の構成ファイルのみです。HDFS クラスター全体を構成する必要はなく、Hadoop クライアントが NameNode に到達する方法を指示するパラメーターのみを構成します。
Hadoop クライアントディレクトリに
confという名前の構成フォルダを作成します。このフォルダがすでに存在する場合は、この手順をスキップしてください。次の 2 つの構成ファイルを
confフォルダに追加します。core-site.xml— クライアントが接続するデフォルトの HDFS ネームサービスを設定します。<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hbase-cluster</value> </property> </configuration>hdfs-site.xml— クライアントがアクティブな NameNode を自動的に特定できるように、高可用性 (HA) フェイルオーバーを構成します。<configuration> <property> <name>dfs.nameservices</name> <value>hbase-cluster</value> </property> <property> <name>dfs.client.failover.proxy.provider.hbase-cluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.automatic-failover.enabled.hbase-cluster</name> <value>true</value> </property> <property> <name>dfs.ha.namenodes.hbase-cluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.hbase-cluster.nn1</name> <value>{hbase-header-1-host}:8020</value> </property> <property> <name>dfs.namenode.rpc-address.hbase-cluster.nn2</name> <value>{hbase-header-2-host}:8020</value> </property> </configuration>{hbase-header-1-host}および{hbase-header-2-host}を、ApsaraDB for HBase Q&A DingTalk グループによって提供される実際のホスト名に置き換えてください。hdfs-site.xmlの主要なパラメーターとその機能は次のとおりです。パラメーター 説明 dfs.nameservicesHDFS ネームサービスの論理名。 fs.defaultFSおよびその他の構成キーで使用されます。dfs.ha.namenodes.hbase-clusterHA ペア内の 2 つの NameNode ( nn1、nn2) の ID。dfs.namenode.rpc-address.hbase-cluster.nn1/nn2各 NameNode の RPC アドレス (ポート 8020)。 dfs.client.failover.proxy.provider.hbase-clusterクライアントが現在アクティブな NameNode を特定するために使用する Java クラス。 dfs.ha.automatic-failover.enabled.hbase-clusterアクティブな NameNode が利用不可になった場合に、クライアントがスタンバイ NameNode に切り替わるように自動フェイルオーバーを有効にします。 confフォルダを Hadoop クライアントのクラスパスに追加します。
接続の確認
HDFS ポートがアクセス可能であり、読み取り/書き込み操作が機能することを確認するために、次のコマンドを実行します。
echo "hdfs port test" >/tmp/test
hadoop dfs -put /tmp/test /
hadoop dfs -cat /test接続が成功した場合、最後のコマンドは次を出力します。
hdfs port testコマンドがエラーを返すか、出力がない場合は、以下を確認してください。
HDFS が ApsaraDB for HBase Q&A DingTalk グループによってアクティブ化されていること
confフォルダが Hadoop クライアントのクラスパス上にあることhdfs-site.xml内のヘッダーノードのホスト名が DingTalk グループによって提供された値と一致すること