hadoop的体系结构 hadoop hdfs 命令

hadoop的体系结构

  NameNode  - 主节点主服务器
  SecondaryNameNode– 是辅助nameNode
  DataNode  -数据保存用的
  TaskTracker – 接收任务
  JobTracker  - 分数据 -100M  Datanode1,DataNode2,DataNode3
Master:主节点,相当于项目经理
Slave:从节点相当于PG
Hadoop只能运行在linux系统上:
在linux系统上装JVM虚拟机,然后,上面运行了三个进程
SecondaryNameNode,Jobtracter,NameNode这三个进程,这三个都是java进程
其中,NameNode是最重要的一个java进程,他决定了主节点,在从节点上没有这个进程
SecondaryNameNode相当于NameNode的秘书,协助NameNode完成工作, Jobtracter任务跟踪进程,用来跟踪任务
并且把任务交给从节点.
可以看到通常应用都会有一个主节点和一个从节点,并且从节点中也有两个java进程,因为在装有从节点的服务器上,也装的是linux系统,
在linux系统上装有jvm,然后跑了两个java进程,一个是: Jobtracter,另一个是:DataNode数据节点,这个进程用来处理和数据有关的任务.
注意在hadoop系统中,只有一个主节点,其他的都属于从节点.
    
l  NameNode:这是hadoop的守护进程(注意是进程JVM)。负责记录文件是如何分割成数据块,以及这些数据块分别存储到哪些数据节点上。
对内存进行集中管理。NameNode在整个hadoop中只有一个。一旦NameNode服务器宕机,整个系统将无法运行。


l  DataNode:集群中的每个从服务器都运行一个DataNode后台程序。这个后台程序负责将HDFS数据块写到本地的文件系统。

l  Secondary NomeNode:用来监控HDFS状态的辅助后台程序。如保存NameNode的快照。

l  JobTracker:用户连接应用程序和hadoop。每一个hadoop集群中只一个 JobTracker,一般它运行在Master节点上。

l  TaskTracker:负责与DataNode进行结合。

hadoop namenode -format [格式化以后生成的目录 ,即hdfs的目录。]


启动hadoop

如果发现有5个java进程,则说明启动成功:
因为这里我们用了一台机器,所以这台机器既充当了主节点,又充当了从节点.
用jps命令,可以查看启动了哪些java进程.
jps
ResourceManager(hadoop2.x封装了JobTracker、TaskTracker)
NameNode
NodeManager
DataNode
SecondaryNameNode[这个进程,不知我的怎么没有启动起来]

hdfs概念与命令
  HDFS是hadoop Distributed file system的缩写,是hadoop的分布式文件系统。
  HDFS由hadoop来管理,它不同于普通的文件系统,不能直观的查找文件,必须要通过hadoop命令操作HDFS。
  
  HDFS是一个主从结构的体系,一个HDFS集群是由一个名字节点,它是一个管理文件的命名空间和调节客户端访问文件的主服务器,
  当然还有的数据节点,一个节点一个,它来管理存储。HDFS暴露文件命名空间和允许用户数据存储成文件。
  内部机制是将一个文件分割成一个或多个的块,这些块存储在一组数据节点中。
  NameNode名字节点操作文件命名空间的文件或目录操作,如打开,关闭,重命名,等等。它同时确定块与数据节点的映射。
  DataNode数据节点来负责来自文件系统客户的读写请求。
  数据节点同时还要执行块的创建,删除,和来自名字节点的块复制指示。
  名字节点和数据节点都是软件运行在普通的机器之上,机器典型的都是linux,HDFS是用java来写的,
  任何支持java的机器都可以运行名字节点或数据节点,利用java语言的超轻便型,很容易将HDFS部署到大范围的机器上。
  典型的部署时将有一个专门的机器来运行名字节点软件,机群中的其他机器运行一个数据节点实例。
  体系结构排斥在一个机器上运行多个数据节点的实例,但是实际的部署不会有这种情况。
  集群中只有一个名字节点极大地简单化了系统的体系。名字节点是仲裁者和所有HDFS的元数据的仓库。系统设计成用户的实际数据不经过名字节点。
  
  1、hadoop下的文件操作命令
1 :列出hdfs文件
~# hadoop dfs –ls /或~# hadoop fs –ls / 或hdfs dfs -ls /
查看user下的内容
hadoop fs –ls  /user
这里查看这个文件还有一个方法就是在网页中查看:进入http://127.0.0.1:50070,也就是hdfs的管理系统
然后点击相应的文件目录就可以了.
这里需要注意:当查看hadoop文件系统的时候需要用命令hadoop fs –ls  这样前面加上hadoop fs 因为假如
直接用ls的话,那么就是指模拟出来的linux文件系统中的东西

2:将文件上传到hdfs
这里演示将windows系统中的一个credream.txt文件上传到hadoop的hdfs分布式系统中,
首先可以通过cd c:进入本地的windows的c盘
然后cd..走到系统的根目录
Ls可以看到当前文件系统的盘符
Cd c
Ls
可以列出c盘中的文件
:
xiaofeng@xiaofeng-PC/cygdrive/c
下面通过命令把本地c盘中的credream.txt文件传到hadoop hdfs文件系统中的user目录下
下面是命令行:
注意:这里hdfs dfs –put credream.txt /user/credream.txt
就是把c盘的文件上传到hadoop的hdfs文件系统的user目录下.
hdfs dfs –put credream.txt,这个指的是本地c盘,因为可以看到cygdrive/c指的就是c盘了,所以没有另外指定本地的文件目录
而且可以对文件进行重命名:
hdfs dfs –put credream.txt /user/hadoop.txt就是把本地c盘的credream.txt文件上传到hadoop的hdfs系统并进行重命名.
echo hello credream > test.txt就是指的是在本地的C盘进行创建一个test.txt文件,但是如果是win7系统的话,那么会有
权限问题
可以看到在c盘不可以,但是在d盘就可以创建test.txt文件了
这是把本地D盘的test.txt文件上传到hdfs文件系统的/user/目录下不改变文件的名字
这里是上传整个目录到hdfs文件系统的/user/目录下
mkdir hadooptest 在本地d盘创建一个hadooptest文件夹
cp test.txt hadooptest就是把test.txt文件拷贝到hadooptest文件夹中
hadoop fs –put hadooptest /user/
把hadooptest文件夹上传到hdfs文件系统的/user/目录下
使用hadoop fs –copyFromLocal test.txt /user/testa.txt
将本地的test.txt文件拷贝一份然后上传到hdfs文件系统中并且重命名为testa.txt文件
然后通过hadoop fs –ls /user 查看hdfs文件系统中user目录下的文件

3:将hdfs中的文件复制到本地系统中
通过get命令,即可以操作文件也可以操作文件夹:
操作一个文件,将hdfs上的文件/wj/a.txt保存到本地,并取名为b.txt
以下下载整个文件到当前目录下来,注意最后的一个点
get命令例子二:
通过hadoop fs –get /user/testa.txt testb.txt 就是把hdfs中的user/下的testa.txt文件下载到本地并重命名
hadoop fs –get /user/testa.txt . 直接把hdfs中的user/下的testa.txt文件下载到本地 .代表直接到本地不进行重命名
hadoop fs –get /user/hadooptest . 直接把hdfs中的user/下的hadooptest文件夹下载到本地 .代表直接到本地不进行重命名


4:删除hdsf下的某个文档
这里是删除本地的文件,和linux下的命令一样
删除文件夹的时候要用递归
这里是删除hdfs文件系统中的文件和文件夹的例子:
hadoop fs –rm /user/testa.txt 删除user文件夹下的testa.txt文件
hadoop fs –rm /user/*.txt 删除user文件夹下所有.txt的文件
hadoop fs –rm /user/hadooptest 这样是不能删除一个文件夹的要用递归
hadoop fs –rmr user/hadooptest 这个命令可以删除文件夹和文件夹中的文件递归删除







































































































































转载于:https://my.oschina.net/u/189445/blog/538615

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值