设为首页 收藏本站
查看: 712|回复: 0

[经验分享] HDFS学习小结(Hadoop2.xx版本)v1.2

[复制链接]

尚未签到

发表于 2018-10-29 12:17:12 | 显示全部楼层 |阅读模式
  hadoop2.xx 集群搭建:http://bigtrash.blog.51cto.com/8966424/1830423
  1.HDFS(Hadoop Distributed File System):hadoop分布式文件系统,由管理文件系统元数据(metadata)的NameNode和存储实际数据的DataNode组成。
  通过分布式的存储机制支持线性增长的海量存储能力
  数据自动冗余,无须通过RAID进行备份
  一次写入,多次读,不能修改,简单一致,1.xx版不支持append功能
  按照“数据就近”原则分配节点执行
  2.NameNode:管理hdfs的命名空间
  保存metadata信息:
  文件owership与permissions
  文件包含那些Block
  Block保存在哪个DataNode
  NameNode的metadata信息存储到磁盘中的fsimage,在hdfs启动后加载到内存;
  内存中NameNode操作信息会保存到磁盘中的edits日志中。
  NameNode启动时的安全模式阶段:
  1)不产生数据写
  2)收集DataNode的报告,当数据块达到最小副本数以上,则视为安全;当安全块达到一定比例后,过若干时间退出安全模式
  3)针对副本数不足的数据块,自动复制使其达到最小副本数
  3.DataNode:真正存储数据的地方
  以Block形式存储,每个块Block预设128M,比目前大多数文件系统的block块大,但是物理存储上不会占用这么多的空间
  每个区块至少分到三台(默认)DataNode上,其副本数可以调整。其副本机制提高可靠度和读取吞吐量
  启动DataNode线程时,遍历本地文件系统,产生一份hdfs数据块和本地文件的对应关系列表,并汇报给NameNode。
  4.Secondary NameNode:
  当NameNode启动时,需要合并硬盘上的fsimage(HDFS的最新状态)和edits(fsimage创建后的),需要消耗大量的启动时间。这里的Secondary NameNode定时去下载namenode的fsimage文件和edits文件进行合并,同时namenode上启用新的edits,然后再将合并后的fsimage上传覆盖namenode,并开启一个新的edits日志,减少了hdfs启动启动时间。
  5.Checkpoint node:可能是为了避免名字上的混淆,1.0.4 版本后建议使用CheckPoint Node去代替Secondary NameNode,作用及配置基本一样。
  使用bin/hdfs namenode -checkpoint去启动
  启动NameNode时-importCheckpoint,可以从checkpioint中导入namenode
  常用配置文件:
  dfs.namenode.checkpoint.period   #edits触发一次合并的时间
  fs.checkpoint.size   #edits触发一次合并的大小临界值
  dfs.namenode.checkpoint.dir  #指定secondary namenode的保存路劲
  dfs.namenode.checkpoint.edits.dir  #指定secondary namenode的edits保存路径
  6.Backup Node:namenode的完全备份。除了提供Checkpoint功能,还复制master内存中的Namespace到自己的内存中。Backup Node不仅接收NameNode上的edits保存到磁盘,还应用edits到自己的Namespace内存复本,建立了Namespace的完全备份。
  目前hdfs只支持一个backup node,使用了backup之后就不能使用checkpoing了
  dfs.backup.address  #backup node的位置
  dfs.backup.http.address  #backup node web界面地址
  dfs.backup.address配置的节点上,运行bin/hdfs namenode -checkpoint
  7. Block三副本放置策略:
  副本1:client的节点上
  副本2:不同机架的节点上
  副本3:与副本2同一机架的另一个节点上
  8.DataNode损坏处理机制:
  1.从DataNode中读取Block的时候,它会计算checksum
  2.计算后的checksum与创建时值不一样,说明该block已经损坏
  3.client会读取其他DataNode上的block,NameNode标记该块已经损坏,然后复制block达到预设的副本数(通常在文件创建后三周(默认)验证其checksum)
  9.HDFS的访问方式:
  HDFS SHELL 命令
  HDFS JAVA API
  HDFS REST API
  HDFS FUSE
  HDFS lib hdfs:C/C++访问接口
  thrift
  。。。
  10.Hadoop与HDFS的交互类shell:hadoop fs –help命令
  hadoop fs –ls PATH:查看指定目录下内容
  hadoop fs –cat PATH/FILE:查看FILE
  hadoop fs –put LOCAL_PATH/FILE HADOOP_PATH:将本地文件存储至hadoop
  hadoop fs –put LOCAL_PATH HADOOP_PATH:将本地文件夹存储至hadoop
  hadoop fs –rm PATH/FILE:删除FILE
  hadoop fs –rmr PATH:删除PATH下所有文件
  hadoop fs –mkdir PATH: 新建目录
  hadoop fs  -touchz  PATH/FILE:创建一个文件
  hadoop  fs  –mv  PATH/OLD_FILE  PATH/NEW_FILE:  文件重命名
  ......
  11.hdfs管理
  hadoop-deamon.sh start namenode #启动namenode
  hadoop-deamon.sh start datanode #启动datanode
  hdfs dfsadmin -help:获取一些hdfs管理的操作
  -report:报告HDFS的基本统计数据
  -safemode:安全模式
  -finalizeUpgrade:移除集群最后一次升级前的备份
  -refreshNodes:重新读取hosts和exclude文件(dfs.hosts.exclude选项中指定),NameNode重新识别节点的改动
  -printTopology:显示集群的拓扑
  -upgradeProgress status/details/force:显示升级状态/升级状态的细节/强制升级操作
  hadoop  fsck: 文件管理
                检查这个目录中的文件是否完整
  -move               破损的文件移至/lost+found目录
  -delete             删除破损的文件
  -openforwrite  打印正在打开写操作的文件
  -files                打印正在check的文件名
  -blocks             打印block报告 (需要和-files参数一起使用)
  -locations         打印每个block的位置信息(需要和-files参数一起使用)
  -racks               打印位置信息的网络拓扑图 (需要和-files参数一起使用)
  start-balancer.sh -threshold:数据块重新分布
  可以通过Web服务查看集群中NameNode和DataNode的状态。
  http://master:50070/ :显示集群当前基本状态


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-627997-1-1.html 上篇帖子: CentOS7.2下Hadoop2.7.2的集群搭建 v1.3 下篇帖子: 【问题】spark运行python写的mapreduce任务,hadoop平台报错,java.net.ConnectException: 连接超时
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表