本文介紹如何使用開源HDFS用戶端訪問LindormDFS。
前提條件
已安裝Java環境,JDK版本不能低於1.7。
已將用戶端IP地址添加至Lindorm白名單。如何添加,請參見設定白名單。
注意事項
如果應用部署在ECS,您需要確保Lindorm執行個體和ECS執行個體滿足以下條件,以保證網路的連通性。
所在地區相同,並建議使用相同的可用性區域域(以減少網路延時)。
使用相同的專用網路。
下載用戶端
下載Hadoop2.7.3版本SDK:hadoop-2.7.3.tar.gz
。下載地址:Apache官網。
配置Hadoop
執行以下命令,解壓縮SDK包。
tar -zxvf hadoop-2.7.3.tar.gz
添加Hadoop環境變數。
export HADOOP_HOME=/${Hadoop安裝目錄}/hadoop-2.7.3
執行以下命令進入
hadoop
目錄。cd $HADOOP_HOME
將Java環境變數
JAVA_HOME
添加至etc/hadoop/
目錄下的hadoop-env.sh
檔案中,假設Java安裝在/opt/install/java
。# set to the root of your Java installation export JAVA_HOME=/opt/install/java
修改
etc/hadoop/hdfs-site.xml
檔案。hdfs-site.xml
檔案中需要修改的內容如下所示,其中執行個體ID需要替換為真實的執行個體ID。<configuration> <property> <name>dfs.nameservices</name> <value>${執行個體ID}</value> </property> <property> <name>dfs.client.failover.proxy.provider.${執行個體ID}</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> <property> <name>dfs.ha.namenodes.${執行個體ID}</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.${執行個體ID}.nn1</name> <value>${執行個體ID}-master1-001.lindorm.rds.aliyuncs.com:8020</value> </property> <property> <name>dfs.namenode.rpc-address.${執行個體ID}.nn2</name> <value>${執行個體ID}-master2-001.lindorm.rds.aliyuncs.com:8020</value> </property> </configuration>
說明
您可以在自動組建組態檔案,詳情請參見開通指南。
以上樣本適用於配置單個執行個體時的情境,即樣本中的
${執行個體ID}
均為同一執行個體的ID。如果需要同時配置多個執行個體,請按照執行個體數量,將上述範例程式碼中所有的<property>
屬性複製多份,每份設定不同的執行個體ID,並粘貼在<configuration>
屬性內。
常用操作樣本
上傳本地檔案。
建立目錄。
$HADOOP_HOME/bin/hadoop fs -mkdir hdfs://${執行個體ID}/test
準備一個檔案,將其上傳到LindormDFS。
echo "test" > test.log $HADOOP_HOME/bin/hadoop fs -put test.log hdfs://${執行個體ID}/test
查看上傳的檔案。
$HADOOP_HOME/bin/hadoop fs -ls hdfs://${執行個體ID}/test
下載檔案到本地。
$HADOOP_HOME/bin/hadoop fs -get hdfs://${執行個體ID}/test/test.log
說明其中執行個體ID請替換為真實的執行個體ID。