本文介紹如何使用開源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。
自動組建組態檔案
登入Lindorm管理主控台。
在頁面左上方,選擇執行個體所屬的地區。
在執行個體列表頁,單擊目標執行個體ID或者目標執行個體所在行操作列的管理。
在左側導覽列,單擊資料庫連接。
在資料庫連接頁面,單擊底層檔案訪問頁簽。
單擊一鍵組建組態項 ,產生hdfs-site和core-site配置資訊。