在Hadoop的阿里云模块,提供了与阿里云集成支持阿里云对象存储服务(OSS阿里云)。生成的JAR文件hadoop-aliyun.jar还声明了对该支持所需的所有外部工件的传递依赖-使下游应用程序可以轻松使用此支持。
要使其成为Apache Hadoop的默认类路径的一部分,只需确保hadoop-env.sh中的HADOOP_OPTIONAL_TOOLS在列表中具有“ hadoop-aliyun”。
阿里云OSS是“对象存储”的一个示例。为了实现可伸缩性和特别高的可用性,阿里云OSS放宽了传统“ POSIX”文件系统所承诺的一些限制。
特别
<属性>
<name> fs.oss.accessKeyId </ name>
<description>阿里云访问密钥ID </ description>
</ property>
<属性>
<name> fs.oss.accessKeySecret </ name>
<description>阿里云访问密钥机密</ description>
</ property>
<属性>
<name> fs.oss.credentials.provider </ name>
<说明>
实现的凭据提供程序的类名
com.aliyun.oss.common.auth.CredentialsProvider。如果使用访问/保密键,则省略
或其他身份验证机制。指定的类必须提供一个
可访问的构造函数,接受java.net.URI和
org.apache.hadoop.conf.Configuration或可访问的默认构造函数。
</ description>
</ property>
<属性>
<name> fs.AbstractFileSystem.oss.impl </ name>
<value> org.apache.hadoop.fs.aliyun.oss.OSS </ value>
<description> OSS AbstractFileSystem的实现类。
如果您想通过OSS将OSS用作YARN的资源存储目录
Hadoop的core-site.xml中的fs.defaultFS配置属性,
您应该将此配置添加到Hadoop的core-site.xml
</ description>
</ property>
<属性>
<name> fs.oss.endpoint </ name>
<description>要连接的Aliyun OSS端点。最新列表是
在Aliyun OSS文档中提供。
</ description>
</ property>
<属性>
<name> fs.oss.impl </ name>
<value> org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem </ value>
</ property>
<属性>
<name> fs.oss.proxy.host </ name>
<description>用于Aliyun OSS连接的(最佳)代理服务器的主机名</ description>
</ property>
<属性>
<name> fs.oss.proxy.port </ name>
<description>代理服务器端口</ description>
</ property>
<属性>
<name> fs.oss.proxy.username </ name>
<description>用于通过代理服务器进行身份验证的用户名</ description>
</ property>
<属性>
<name> fs.oss.proxy.password </ name>
<description>用于与代理服务器进行身份验证的密码。</ description>
</ property>
<属性>
<name> fs.oss.proxy.domain </ name>
<description>用于通过代理服务器进行身份验证的域。</ description>
</ property>
<属性>
<name> fs.oss.proxy.workstation </ name>
<description>用于通过代理服务器进行身份验证的工作站。</ description>
</ property>
<属性>
<name> fs.oss.attempts.maximum </ name>
<value> 20 </ value>
<description>我们应该对临时错误重试几次。</ description>
</ property>
<属性>
<name> fs.oss.connection。Establishment.timeout </ name>
<value> 50000 </ value>
<description>连接建立超时(以毫秒为单位)。</ description>
</ property>
<属性>
<name> fs.oss.connection.timeout </ name>
<value> 200000 </ value>
<description>套接字连接超时(以毫秒为单位)。</ description>
</ property>
<属性>
<name> fs.oss.paging.maximum </ name>
<value> 1000 </ value>
<description>一次执行目录列表时,需要向Aliyun OSS请求多少个键。
</ description>
</ property>
<属性>
<name> fs.oss.multipart.upload.size </ name>
<value> 10485760 </ value>
<description>每个多部分的大小(以字节为单位)。</ description>
</ property>
<属性>
<name> fs.oss.upload.active.blocks </ name>
<value> 4 </ value>
<description>上传文件时激活(并发)上传块。</ description>
</ property>
<属性>
<name> fs.oss.multipart.download.threads </ name>
<value> 10 </ value>
<description>池中允许进行分段下载和上传的最大线程数。</ description>
</ property>
<属性>
<名称> fs.oss.multipart.download.ahead.part.max.number </名称>
<value> 4 </ value>
<description>读取文件时的最大预读部分数。</ description>
</ property>
<属性>
<name> fs.oss.max.total.tasks </ name>
<value> 128 </ value>
<description>分段下载和上传的最大队列数。</ description>
</ property>
<属性>
<name> fs.oss.max.copy.threads </ name>
<value> 25 </ value>
<description>池中允许进行复制操作的最大线程数。</ description>
</ property>
<属性>
<name> fs.oss.max.copy.tasks.per.dir </ name>
<value> 5 </ value>
<description>复制目录时允许的最大并发任务数。</ description>
</ property>
<属性>
<name> fs.oss.multipart.upload.threshold </ name>
<value> 20971520 </ value>
<description>在开始分段上传或复制之前,最小大小(以字节为单位)。
注意:该属性已弃用,在以后的版本中将被删除。
</ description>
</ property>
<属性>
<name> fs.oss.multipart.download.size </ name>
<值> 102400 /值>
<description>来自ALiyun OSS的每个请求中的字节大小。</ description>
</ property>
<属性>
<名称> fs.oss.buffer.dir </名称>
<description>逗号分隔的目录列表,用于在上传到Aliyun OSS之前缓冲OSS数据</ description>
</ property>
<属性>
<name> fs.oss.acl.default </ name>
<value> </ vaule>
<说明>为存储桶设置一个罐头ACL。值可以是私有的,公共读取的,公共读取写入的。
</ description>
</ property>
<属性>
<name> fs.oss.server-side-encryption-algorithm </ name>
<value> </ vaule>
<description>为oss:文件系统指定服务器端加密算法。
默认情况下未设置,当前唯一允许的其他值为AES256。
</ description>
</ property>
<属性>
<name> fs.oss.connection.maximum </ name>
<value> 32 </ value>
<description>同时连接到oss的数量。</ description>
</ property>
<属性>
<name> fs.oss.connection.secure.enabled </ name>
<value> true </ value>
<description>是否通过ssl连接到oss,默认情况下为true。</ description>
</ property>
要测试oss://文件系统客户端,需要两个将身份验证详细信息传递给测试运行程序的文件。
这两个配置文件必须放入hadoop-tools / hadoop-aliyun / src / test / resources中。
该文件触发对阿里云OSS模块的测试。没有该文件,将不会执行该模块中的任何测试
它包含连接到Aliyun OSS所需的访问密钥ID /秘密和代理信息,并且还应提供OSS存储桶URL。
测试过程中将清洁存储桶中的内容物,因此请勿将存储桶用于测试以外的其他目的。
在/ test / resources下创建文件contract-test-options.xml。如果未定义特定文件fs.contract.test.fs.oss测试路径,则将跳过这些测试。运行这些测试中的任何一个都需要凭据,可以从auth-keys.xml或通过直接XInclude包含复制它们。这是contract-test-options.xml的示例:
<?xml version =“ 1.0”?>
<?xml-stylesheet type =“ text / xsl” href =“ configuration.xsl”?>
<配置>
<include xmlns =“ http://www.w3.org/2001/XInclude”
href =“ auth-keys.xml” />
<属性>
<name> fs.contract.test.fs.oss </ name>
<value> oss:// spark-tests </ value>
</ property>
<属性>
<name> fs.oss.impl </ name>
<value> org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem </ value>
</ property>
<属性>
<name> fs.oss.endpoint </ name>
<value> oss-cn-hangzhou.aliyuncs.com </ value>
</ property>
<属性>
<名称> fs.oss.buffer.dir </名称>
<value> / tmp / oss </ value>
</ property>
<属性>
<name> fs.oss.multipart.download.size </ name>
<value> 102400 </ value>
</ property>
</ configuration>