Skip to content

Commit

Permalink
update README
Browse files Browse the repository at this point in the history
  • Loading branch information
zh-jn committed Sep 16, 2021
1 parent ccd6b05 commit 5f8fa08
Showing 2 changed files with 279 additions and 270 deletions.
277 changes: 7 additions & 270 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,272 +1,9 @@
# Compiliation guide

Version 3.1.1.45/2.8.3.45/2.7.2.45
This project is origanized by Maven, you can build this project like the following examples:

修复问题:
1. 【功能】新增预读策略,优化顺序读性能
2. 【优化】修复文件桶追加输出流的getPos语义的正确性
3. 【优化】将文件桶truncate接口中的HadoopIllegalArgumentException异常封装为IOException
4. 【优化】快速删除trash目标对象存在时,添加时间戳后缀到ms级,并按最大时间做冲突重试
5. 【优化】文件桶递归删除目录409冲突时按最大时间重试
6. 【优化】create接口添加文件立即可见性开关,默认关闭
7. 【优化】去掉HDFSWrapper中的默认shema必须为hdfs的检查
8. 【优化】升级obs sdk版本为3.21.4.1,修复列举操作时最后文件的lastmodifytime字段不正确
9. 【优化】修改HDFSWrapper中的rename抛出异常为IOException

=========================================================================

Version 3.1.1.43/2.8.3.43/2.7.2.43

修复问题:
1. 【功能】新增OBSWrapper特性,用于支持已hdfs schema方式对接OBS
2. 【功能】针对对象桶修复目录过大rename性能问题
3. 【功能】修复快速删除功能trash时并发冲突问题
4. 【用例】补充OBSWrapper功能用例
5. 【用例】补充trash并发冲突场景用例

=========================================================================

Version 3.1.1.42/2.8.3.42/2.7.2.42

修复问题:
1. 【功能】解决本地写缓存文件名字符串,进程退出才清理导致的OOM问题
2. 【功能】替换依赖的hadoop-common2.8.3为修复安全漏洞的2.8.3.0101-hw-ei-14
3. 【功能】Metrics统计删除冗余的参数,并提供close接口用于退出时释放资源
4. 【功能】排除hadoop-common中对jetty非安全包的依赖

=========================================================================

Version 3.1.1.41/2.8.3.41/2.7.2.41

修复问题:
1. 【功能】支持public接口的metrics统计
2. 【功能】调用create()接口后,文件立即可见
3. 【功能】支持FileSystem/InputStream/OutputStream关闭后拒绝接口访问
4. 【功能】finalize()接口不再调用带I/O操作的close(),以防止上层误用
5. 【功能】pom文件依赖排除hadoop-common 3.1.1引入的jackson-databind不合规版本
6. 【功能】实现getCanonicalServiceName接口,用于提升HBase BulkLoad场景同一桶内加载性能
7. 【用例】补充完善重试机制测试用例

=========================================================================

Version 3.1.1.40/2.8.3.40/2.7.2.40

修复问题:
1. 【功能】接口语义排查,按原生HDFS语义实现
2. 【功能】开源社区规范整改
3. 【功能】truncate功能支持
4. 【功能】目录名不带/细粒度授权policy支持
5. 【功能】递归列举接口未更新目录lasymodifyTime问题修复
6. 【功能】重试机制增强,最大支持180s时间重试
7. 【功能】初始化支持探测写缓存的可访问性,开关控制,默认关闭
8. 【功能】OBS JAVA SDK调整为3.20.6.1版本

=========================================================================

Version 3.1.1.39/2.8.3.39/2.7.2.39

修复问题:
1. 【功能】静态检查和安全扫描整改
2. 【功能】接口测试用例补充


=========================================================================


Version 3.1.1.38/2.8.3.38/2.7.2.38

修复问题:
1. 【功能】修改listStatus接口返回的目录的lastModifyTime为准确值


=========================================================================


Version 3.1.1.37/2.8.3.37/2.7.2.37

修复问题:
1. 【功能】seekInStream方法中skip改为while循环,及去掉available判断
2. 【功能】ObsClient及socket buffer大小改为256KB
3. 【功能】OBS SDK 连接池优化开关可配置
4. 【功能】OBSBlockOutputStream日志打印优化


=========================================================================

Version 3.1.1.36/2.8.3.36/2.7.2.36

修复问题:
1. 【功能】eSDK鉴权协商增加开关,默认关闭
2. 【功能】初始化时head bucket增加异常重试逻辑
3. 【功能】onReadFailure中reopen异常时增加重试逻辑
4. 【功能】append stream在客户端记录文件长度,修复可能的异常
5. 【功能】增加递归listStatus接口,提升大目录列举性能
6. 【功能】trash对象时,如果trash目录下存在同名对象,新对象时间戳后缀不带冒号
7. 【用例】
(1)增加用例验证eSDK鉴权协商开关有效性
(2)增加head bucket重试机制测试用例
(3)增加onReadFailure中reopen重试机制测试用例
(4)增加head文件长度无效时,append stream用例
(5)增加listStatus递归列举用例
(6)增加trash文件和trash目录的测试用例


=========================================================================

Version 3.1.1.35/2.8.3.35/2.7.2.35

修复问题:
1. 【功能】OBSFileInputStream.java中文件桶的rename()接口新增重试逻辑


=========================================================================

Version 3.1.1.33/2.8.3.33/2.7.2.33

修复问题:
1. 【功能】OBSBlockOutputStream finalize方法中关闭流,清理写缓存文件
2. 【功能】解决listFiles接口递归列举时遇到子目录抛空指针异常问题
3. 【功能】合入eSDK3.19.11.1版本,解决EcsObsCredentialsProvider偶现请求失败问题
4. 【用例】
(1)增加listFiles接口测试用例


=========================================================================

Version 3.1.1.32/2.8.3.32/2.7.2.32

修复问题:
1. 【功能】list超时客户端并发列举优化
2. 【功能】read(ByteBuffer buffer)接口重载
3. 【功能】对象桶rename接口部分场景未按HDFS原生语义实现修复
4. 【功能】OBSFileInputStream.java中四个参数配置开关,默认走父类方法
5. 【功能】fs.obs.read.buff.size和fs.obs.write.buff.size默认值调整为64KB
6. 【功能】readaheadInputStreamEnabled预读相关代码注释
7. 【用例】
(1)对象桶rename增加四个用例
(2)增加read(ByteBuffer buffer)接口测试用例
(3)增加四个参数read接口开关测试用例


=========================================================================

Version 3.1.1.31/2.8.3.31/2.7.2.31

修复问题:
1. 【功能】OBSFileInputStream.java中带四个参数read接口未按HDFS语义实现及返回长度bug修复
2. 【功能】list和head接口返回对象最后修改时间不一致问题修复
3. 【功能】Rename接口源和目的相同时,返回值未按原生HDFS语义实现问题修复
4. 【功能】递归删除BUG解决
5. 【用例】
(1)完善getContentSummary用例,增加对递归删除的校验
(2)增加四个参数read接口对不同入参处理和返回值判断用例
(3)增加list和head对应用返回对象最后修改时间比较用例
(4)增加rename接口源和目的相同时的用例


=========================================================================

Version 3.1.1.30/2.8.3.30/2.7.2.30

修复问题:
1. 【功能】OBSFileSystem.java中接口getFileStatus、copyFile、listObjects、continueListObjects增加异常重试逻辑
2. 【功能】OBSFileSystem.java中renameFolder中删除源目录实现由异步删除为批删
3. 【功能】OBSInputStream.java中read相关的3个接口增加异常重试逻辑
4. 【功能】对象桶getContentSummary性能优化
5. 【功能】支持uper jar包编译
6. 【用例】
(1)增加getContentSummary用例
(2)增加重试接口mock用例


=========================================================================

Version 3.1.1.29/2.8.3.27/2.7.2.29

修复问题:
1. 【功能】修改fs.obs.readahead.range默认值为1MB;
2. 【功能】当fs.obs.fast.upload.buffer为array时,申请的第一个block的大小默认修改为1MB,加了参数fs.obs.fast.upload.array.first.buffer;
3. 【功能】OBSBlockOutputStream增加多段上传过程中异常快速抛出,异常后,write、close都抛异常;
4. 【功能】OBSInputStream在seekInStream方法中,incrementBytesRead修改读取数据的值为真实skipped的字节数;
5. 【功能】fs.obs.connection.establish.timeout和fs.obs.connection.timeout默认值修改为120S
6. 【功能】修改deleteObejcts()接口,批删失败转单点删除,单点删除失败重试3次;
7. 【功能】修改批删触发条件,当开启enableMultiObjectsDelete开关,并且删除对象数大于等于3时才走批删
8. 【用例】
(1)增加批量删除用例一个,覆盖批量请求目标对象数小于100、1000~2000、大于2000场景
(2)增加array的block用例1个和putPart快速失败用例1个,覆盖array的第一个block size为默认1MB,以及覆盖putPart快速失败用例。
(3)增加readahead默认值为1MB用例1个


=========================================================================

Version 3.1.1.28/2.8.3.28/2.7.2.28

修复问题:
1. 【功能】copyFromLocalFile对目录支持,直接调用super的copyFromLocalFile方法。
3. 【用例】增加copyFromLocalFile目录的用例

=========================================================================

Version 3.1.1.27/2.8.3.27/2.7.2.27

修复问题:
1. 【功能】增加匿名访问方式的obsclient初始化。
2. 【功能】将23版本的KMS和26版本的append stream只走posix桶的append方法合并。
3. 【用例】(1)增加MainTest方法,后面流水线就通过执行该方法完成跑自动化用例。
(2)增加assembly.xml,在编译test时,需要使用assemly方式将test打包。
打包方法:“compile assembly:single -Ddescriptor=E:\bigdata\obs_bigdataonobs\hadoop-tools\hadoop-huaweicloud\src\test\resources\assembly.xml --settings C:\Users\user\apache-maven-3.5.4\conf\settings_cloudmonitor.xml”
跑用例:java -cp hadoop-huaweicloud-2.8.3.26-assembly.jar org.apache.hadoop.fs.obs.MainTest

=========================================================================

Version 2.8.3.26/2.7.2.26 补丁版本

修复问题:
1. 【功能】针对posix桶,在rename被使用为move场景,需要加上move的key。修改方式为:依照S3方法,先做HEAD,再调rename接口。

=========================================================================

Version 2.8.3.25/2.7.2.25 补丁版本

修复问题:
1. 【功能】修改obsblockoutputstream的append模式,在大于阈值时,直接调用appendFS接口,不再走多段上传;
2. 【用例】新增append和hflush场景的4个用例:
(1). hflush大对象(20MB)
(2). hflush中对象(5MB)
(3). hflush小对象(2MB)
(4). appendstream根据缓存大小做了4次append操作;
3. 【优化】优化DELETE在409情况下,3次重试机制;
4. 【遗留问题】修改obsclient初始化方式,在credential provider\aksk\security provider都没有设置时,使用匿名方式初始化obsclient。

=========================================================================

Version 2.8.3.23/2.7.2.23

新增需求:
1. 【功能】新增参数对象加密功能,新增需参数:
(1)fs.obs.server-side-encryption-type:加密算法,参数值为:sse-kms or sse-c;
(2)fs.obs.server-side-encryption-key:当参数(1)的值为sse-kms时,该值可选,表示kms加密key id;当参数(1)为sse-c时,该值必选,表示base64 encoded content。
(3)kms加密需要将fs.obs.connection.ssl.enabled设为true,走https加密方式。

修复问题:
1. 【优化】 delete 方法加了在409的时候3次最大重试功能,减小外层任务失败的概率。

=========================================================================
Version 2.8.3.22/2.7.2.22

修复问题:
1. 【功能】优化Posix桶时的性能,减少元数据HEAD次数;

新增需求:
1. 【功能】新增参数fs.obs.security.provider,配合ESDK从环境变量和ECS获取AK SK信息。

=========================================================================
Version 2.8.3.20/2.7.2.20

修复问题:
1. 【功能】OBSFileSystem被GC,导致的OBSInputStream中obsclient的引用为空,引起空指针异常;

=========================================================================
Version 2.8.3.19/2.7.2.19

修复问题:
1. 【功能】HBASE场景,未关闭JAVA SDK的连接,导致EOF异常;
## hadoop-huaweicloud
`
cd hadoop-huaweicloud
mvn clean package -Dmaven.test.skip=true -Dhadoop.plat.version=3.1.1 -Dhadoop.version=3.1.1 -P dist
`
Loading

0 comments on commit 5f8fa08

Please sign in to comment.