一、HDFS 原理分析 (2)

HDFS 读取过程

客户端发起读数据的请求;

告诉 NameNode 要读那个文件;

NameNode 返回 block 信息列表(包括要读取的数据在那个机器上);

到指定的机器上读取具体的数据;

DataNode 根据 block 信息找到数据的存储位置并返回数据给客户端;

客户端读完数据之后告诉 NameNode 已经读取完成;

三、HDFS 常用配置文件 3.1 hdfs-site.xml name value description
dfs.datanode.data.dir   /data1/dfs,/data2/dfs,/data3/dfs,/data4/dfs,/data5/dfs,/data6/dfs   datanode本地文件存放地址  
dfs.replication   3   副本数  
dfs.namenode.name.dir   /data1/dfsname,/data2/dfsname,/data3/dfsname   namenode本地文件存放地址  
dfs.support.append   TRUE   是否支持追加,但不支持并发线程往里追加  
dfs.permissions.enabled   FALSE   是否开启目录权限  
dfs.nameservices   ns1   提供服务的NS逻辑名称,与core-site.xml里的对应,可以配置多个命名空间的名称,使用逗号分开即可。  
dfs.ha.namenodes.[nameservice ID]   nn1,nn2   命名空间中所有NameNode的唯一标示名称。可以配置多个,使用逗号分隔。该名称是可以让DataNode知道每个集群的所有NameNode。  
dfs.namenode.rpc-address.ns1.nn1   nn1.hadoop:9000   指定NameNode的RPC位置  
dfs.namenode.http-address.ns1.nn1   nn1.hadoop:50070   指定NameNode的Web Server位置  
dfs.namenode.rpc-address.ns1.nn2   nn2.hadoop:9000   指定NameNode的RPC位置  
dfs.namenode.http-address.ns1.nn2   nn2.hadoop:50070   指定NameNode的Web Server位置  
dfs.namenode.shared.edits.dir   qjournal://nn1.hadoop:8485;nn2.hadoop:8485/ns1   指定用于HA存放edits的共享存储,通常是namenode的所在机器  
dfs.journalnode.edits.dir   /data/journaldata/   journaldata服务存放文件的地址  
fs.trash.interval   2880   垃圾回收周期,单位分钟  
dfs.blocksize   134217728   块的大小  
dfs.datanode.du.reserved   2147483648   每个存储卷保留用作其他用途的磁盘大小  
dfs.datanode.fsdataset.volume.choosing.policy   org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy   datanode数据副本存放的磁盘选择策略,、有2种方式一种是轮询方式 (org.apache.hadoop.hdfs.server.datanode.fsdataset.RoundRobinVolumeChoosingPolicy,为默认方式),另一种为选择可用空间足够多的磁盘存储方式 (org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy)。  
dfs.datanode.available-space-volume-choosing-policy.balanced-space-threshold   2147483648   当选择可用空间足够多的磁盘存储方式才生效,hdfs计算最大可用空间-最小可用空间的差值,如果差值小于此配置,则选择轮询方式存储  
3.2 core-site.xml name value description
io.native.lib.available   true   开启本地库支持  
fs.defaultFS   hdfs://ns1   客户端连接HDFS时,默认的路径前缀。默认文件服务的协议和NS(nameservices)逻辑名称,和hdfs-site里的对应此配置替代了1.0里的fs.default.name  
io.compression.codecs   org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec   相应编码的操作类,用逗号分隔  
ha.zookeeper.quorum   nn1.hadoop:2181,nn2.hadoop:2181,s1:2181   HA使用的zookeeper地址  
3.3 slaves

slaves文件里面记录的是集群里所有DataNode的主机名

3.4 hadoop-env.sh

HADOOP_CLASSPATH:hadoop的classpath

JAVA_LIBRARY_PATH:java加载本地库的地址

HADOOP_HEAPSIZE:java虚拟机使用的最大内存

HADOOP_OPTS:hadoop启动公用参数

HADOOP_NAMENODE_OPTS:namenode专用参数

HADOOP_DATANODE_OPTS:datanode专用参数

HADOOP_CLIENT_OPTS:hadoop client专用参数

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywxsp.html