本文介绍如何使用开源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。