hdfs计算向数据偏移思想
核心:主要是实现数据的分治思想,主机优先和自己距离最近的datanode获取数据,通过seek(偏移量)实现。
如:当文件分为两个数据块block1和bloack2.时,且两台服务器1和2均可调用block2中的数据,若服务器1就具有自己所需读取的block2时,则就近调用。不再通过服务器2去读取
代码测试:
public class TestHDFS {
public Configuration conf = null;
public FileSystem fs = null;
@Before
public void conn() throws Exception {
conf = new Configuration(true);//true代表加载配置文件
//fs = FileSystem.get(conf);//取得环境变量HADOOP_USER_NAME-NAME god
// <property>
// <name>fs.defaultFS</name>
// <value>hdfs://mycluster</value>
// </property>
fs = FileSystem.get(URI.create("hdfs://mycluster/"),conf,"god");
}
@Test
public void mkdir() throws Exception {
Path dir = new Path