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

[经验分享] Hadoop(三)之HDFS简单介绍

[复制链接]

尚未签到

发表于 2016-12-11 06:45:46 | 显示全部楼层 |阅读模式
  刚启动了hdfs , 那么你就可以通过在浏览器中输入 localhost : 50070 来查看当前的namenode , datanode 以及 hdfs的状态
   
  在配置文件中 ,配置的9000 , 9001端口是干什么用的?为什么这里通过浏览器访问的时候,用的是
50070端口?
这个9000表示系统请求到达的端口 ,用户是不能访问到的
要获得namenode的信息,那就向这个端口发信息.只不过是系统来发.
 

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

hdfs-default.xml 与 hdfs-site.xml?
hdfs-default.xml 则是当hdfs启动时 默认去加载的xml文件,hdfs-site.xml则是
      对hdfs-default.xml中的一些属性值进行修改,然后,加载hdfs-default.xml会使用这些新的
      属性值!
    
 
  hdfs是什么?在linux文件系统中它存在哪里?hadoop.tmp.dir是干什么用?
   通过在上面的浏览器中,看到hdfs跟linux中的文件系统都是一样 , 一个 "/" 下来....
   分布式文件系统 , 集群中存储文件,通过这个Hdfs来进行管理,机子与机子之间通过
   网络进行通信 , 来分享文件。
   Hdfs是一种master/slave的架构,有一个节点是master,相当于调度器一样,其他 节点都是slave
  他们的文件系统的metedata都存储在master上.
  hdfs主要分namenode 和 datanode , namenode 放在master机子上,只有一个,存储整个集群中,
  多少文件的metedata , datanode则每个slave中都有,负责存储数据。
  所以,hdfs就是在集群(分布式)的环境中,帮你管理数据,使得这些数据对用户或者程序员看来就像在
  一台机器上的文件系统一样 , 注意这句话:"一次写多次读!!!"。
 
  tmp.dir就是存储datanode 和 namenode数据的地方,可是当我打开这个文件夹的时候,里面并没有文件系统
  树一样的表示形式,而是一些文件.这个,其实想想,类似windown的文件系统表示形式,它只是为了方便与用户
 进行交互,而额外写的这些客户端程序,就像linux中,如果你用命令行,那同样你不看不到文件系统!! 
 文件系统,就是一道程序或者一个应用,就像webapp , 部署好应用后,后台就会有应用启动,接收请求,然后后台
 程序就会根据你的请求进行处理。同样的道理,如果你不写前端代码,你启动后台的时候,你通过url传入请求,同样可以
 得到想要的结果。!!这里就解释了hdfs文件系统在那这个问题吧!!!!(还是用久了window , 老觉得文件系统就应该有一个
  想他一样的表示形式才叫文件系统!!!!)
 
NameNode  
(接收用户请求)
 fsimage : 文件系统镜像,每次启动文件系统能跟上次一样,因为所有文件的metedata都存储在这个
  文件里面.
 edits: 操作日志, 事务文件
 
SecondaryNameNode
     从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,
  并将其推送到NameNode,同时重置NameNode的edits.
  可以这样理解吗,当我们上传一个文件时,并没有立马在fsimage中写入该文件的metadata, 而是先写入
  edits日志文件,然后通过secondrayNameNode , 合并edits与fsimage , 也就是将操作后的metadata写入
  fsimage。
  但是 , 为什么要交给secondaryNameNode来处理?
  分工,namenode的快速响应。
  DataNode
  (存储数据)
   Block : 基本的存储单位
  Replication : 副本 , 默认三个 hdfs-site.xml的dfs.replication属性
  DFSClient , DataNode , NameNode之间的通信:
  图片来源 : 智障大师
  
DSC0000.gif
  可以简单的看成HDFS由这三个对象组成,三则之间的通信通过箭头表示了,箭头所指的一方就是
  请求的接收者,也就是处理请求的,另一端则是发起者,所以,由图可知,NameNode就是一个纯粹的
  处理,服务器,它不会主动向其他对象发起请求,试想一下,仅有一个NameNode节点的HDFS如果还得
  向DataNode , Client发起请求的话,负载不就增加了吗?再者,它就像一个仲裁者或者调度器一样,不会他找别人
  只有别人找他!
  DataNode 除了应对Client端的读写请求外,还会周期性的发送心跳到NameNode , 表示他还还活着,同时,心跳的返回
  信息中,还可能包含有NameNode对DataNode的控制数据信息。同时,DataNode节点之间也会有消息传递,比如数据备份。
  所有的这些通信都是基于RPC!
  hdfs 命令的一点总结
一般格式 :
hdfs  [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
    比如 hdfs dfs -ls  -h /
    hdfs 表示这是在hadoop 的 dfs 中,而不是linux的文件系统中
    dfs表示这是对dfs的操作, -ls 则是 dfs操作中的某一种 , -h 则是这种操作
    的一种可选项 , / 则是操作对象 , 或则理解成一个方法必须有的参数
    

-lsr  <目录名> 递归查看
-put  <linux本地文件>  <hdfs目录地址>  上传文件 (如果hdfs目录地址/a不存在,则会创建一个文件a)
-get ......................... 下载hdfs文件到linux中 参数与put相反
-text  <hdfs文件地址>  查看文件
-rm  <地址>  删除文件
- rmr <地址>  删除目录
-help <命令名> 查看命令
   

hdfs dfs -ls hdfs://localhost:9000/
这样 同样可以访问到根目录下的文件 有点像webapp了!
 
   
   参考资源 :Jeoygin  HDFS概述     
                     吴超的HDFS视频
        
     
   
 

运维网声明 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-312420-1-1.html 上篇帖子: 用Hadoop分析专利数据集 下篇帖子: 如何在一个hadoop集群新增一些机器而不重启
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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