HDFS Short-Circuit Local Reads
2015-11-28 16:52
543 查看
HDFS Short Circuit Local Reads
Background
HDFS中,读操作通常通过DataNode。因此,当一个客户端访问DataNode读一个文件的时候,DataNode从磁盘中读出该文件,然后通过TCK Socket发送到客户端。所谓的“short-circuit”是绕开DataNode,允许客户端直接读一个文件。明显地,当客户端与数据在同一地点时可能会出现这种情况。Short-circuit为很多应用提供了巨大的性能提升。
Configuration
为了配置short-circuit本地读,你将需要启用libhadoop.so。查看Native Libraries部分获取更多开启本地库的细节。Short-circuit读利用了Unix的域套接字。这在文件系统中是一个特别的路径,这允许客户端和DataNode来通信。你将需要设置这个路径到这个Socket中。DataNode需要能够创建这个路径。另一方面,这个路径应该不可能被除了hdfs和root用户之外的任何用户创建。因为这个原因,经常使用中/var/run or /var/lib的子目录的路径。
Short-circuit本地读需要在DataNode和客户端都配置。
Example Configuration
这是一个配置的例子:[html] view
plaincopy
![](https://code.csdn.net/assets/CODE_ico.png)
<configuration>
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
<property>
<name>dfs.domain.socket.path</name>
<value>/var/lib/hadoop-hdfs/dn_socket</value>
</property>
</configuration>
Configuration Keys
1. dfs.client.read.shortcircuit这个配置参数打开short-circuit本地读
2. dfs.client.read.shortcircuit.skip.checksum
如果这个配置参数被设置,short-circuit本地读将会跳过checksum。这通常不推荐,但是对于一些特别的安装可能会有用。你可能需要在HDFS外做你自己的checksum。
3. dfs.client.read.shortcircuit.streams.cache.size
DFSClient维护了一个最近打开文件的描述符的缓存。这个参数管理缓存的大小。设置高了将会使用更多的文件描述符,但是潜在地在查询发在方面提供更好的性能。
4. dfs.client.read.shortcircuit.streams.cache.expiry.ms
这个参数控制文件描述符在文件因为inactive太长时间可以被关闭之前需要被放进FileInputStreamCache 的最小时间。
5. dfs.client.domain.socket.data.traffic
这控制我们是否将尝试通过Unix域套接字传送正常的数据流量。
相关文章推荐
- iOS流布局UICollectionView系列一——初识与简单使用UICollectionView
- Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备四)
- easyui datagrid 表格组件列属性formatter和styler使用方法
- 导航栏控制器和标签栏控制器(UINavigationController和UITabBarController)混用
- codeforces B.Queries about less or equal elements
- UIViewController、UINavigationController与UITabBarController的整合使用
- Android属性之build.prop生成过程分析
- 软件测试自动化之- 基于反射的UI自动化测试框架 - UI Automation Test Framework
- H+响应式后台主题UI
- ToStringBuilder、EqualsBuilder、HashCodeBuilder等实例
- IOS之UI -- UITableView -- 2 -- 等高的Cell
- LeetCode303——Range Sum Query - Immutable
- 设置系统自带UIBarButtonItem
- iOS开发UI篇—UIWindow简单介绍
- 使用UITextField去自定义searchBar 【iOS】
- uid_t gid_t等的定义
- Android UI性能优化实战 识别绘制中的性能问题
- POJ-1417-并查集-True Liars
- 使用yuicompressor.jar对js/css文件代码压缩
- Educational Codeforces Round 1 B.Queries on a String(模拟)