全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

KS3-HDFS服务访问

最近更新时间:2023-05-18 17:03:07

本文介绍如何通过Java SDK访问KS3-HDFS服务。

KS3-HDFS 在 kmr5 上部署

1. 将ks3 hdfs shade client jar和配套的hadoop-ks3 jar部署在/mnt/kmr/hadoop/1/hadoop-3.1.1/lib

2. 更改配置

core-site.xml【更改后需要重启Hdfs和Hive服务生效】

alluxio.user.client.base.filesystem.class=alluxio.client.file.Ks3HdfsMetaFileSystem
fs.ks3.impl=alluxio.hadoop.Ks3HdfsFileSystem
alluxio.master.rpc.addresses=ks3 hdfs endpoint地址
alluxio.ks3.hdfs.mode=true

注:

  • 用户需填写对应的ks3-hdfs endpoint,示例:cn-beijing-internal.ks3-dls.ksyuncs.com。
  • 如使用金山云KMR产品,可通过金山云控制台进行配置操作,注意所有的配置范围均须配置。

mapred-site.xml【更改后需要重启MapReduce】

mapred.output.committer.class=org.apache.hadoop.mapred.FileOutputCommitter
mapreduce.outputcommitter.factory.scheme.ks3=org.apache.hadoop.mapreduce.lib.output.PathOutputCommitterFactory

spark-defaults【更改后需要重启Spark】

spark.driver.extraClassPath=/mnt/kmr/hadoop/1/hadoop-3.1.1/lib
spark.executor.extraClassPath=/mnt/kmr/hadoop/1/hadoop-3.1.1/lib
spark.sql.parquet.output.committer.class=org.apache.parquet.hadoop.ParquetOutputCommitter

hbase-site.xml 【更改后需要重启Hbase服务】

hbase.rootdir=ks3://${bucket-name}/hbase  #将bucket name替换为开通ks3-hdfs的桶名称
hbase.wal.dir=hdfs://hdfs-ha/hbase
hbase.bulkload.staging.dir=/tmp/hbase-staging

3. 验证

hdfs dfs -ls ks3://{bucket-name}/
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount ks3-input ks3-output

KS3-HDFS客户端使用

使用示例:

import alluxio.conf.PropertyKey;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class OK8 {
  public static void main(String[] args) throws Exception {
    String accessKey = "";
    String accessSecret = "";

    org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
    conf.set(PropertyKey.MASTER_RPC_ADDRESSES.getName(), "gateway地址");
    conf.set("alluxio.user.client.base.filesystem.class", "alluxio.client.file.Ks3HdfsMetaFileSystem");
    conf.set("alluxio.ks3.hdfs.mode", "true");
    conf.set("fs.ks3.AccessKey", accessKey);
    conf.set("fs.ks3.AccessSecret", accessSecret);
    conf.set("fs.ks3.endpoint", "ks3-cn-beijing.ksyuncs.com");
    conf.set("fs.ks3.impl", "alluxio.hadoop.Ks3HdfsFileSystem");

    FileSystem fs2 = new Path("ks3://YourBucketName/").getFileSystem(conf);
    FileStatus[] rs = fs2.listStatus(new Path("/ryan/m"));
    System.out.println(rs.length);
  }
}

注意事项

  • 在对象存储系统中,约定俗称用以"/"结尾的空文件代表这是一个文件夹
  • 禁止在ks3上存在同名的文件和文件夹,比如如果同时存在ks3 key为"/dir1/dir2/hello_world","/dir1/dir2/hello_world/",可能会导致KS3-HDFS发生异常行为。

关于KS3-HDFS更多实践详情请参见文档:KS3-HDFS实践

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈