shell 操作 dfs

上传
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -put /opt/MegaRAID/MegaCli/MegaCli64 hdfs://ns1/MegaCli
或者
[hadoop@namenode ~]$ /data/hadoop/bin/hdfs dfs -put /opt/MegaRAID/MegaCli/MegaCli64 /megacli

查看
[hadoop@namenode ~]$ /data/hadoop/bin/hdfs dfs -ls /
Found 7 items
drwxr-xr-x - hadoop supergroup 0 2016-11-09 14:21 /123456
-rw-r--r-- 3 hadoop supergroup 2247752 2016-11-10 15:49 /MegaCli
drwxr-xr-x - hadoop supergroup 0 2016-11-04 15:20 /data
-rw-r--r-- 3 hadoop supergroup 2247752 2016-11-10 15:50 /megacli
drwx------ - hadoop supergroup 0 2016-11-09 12:11 /tmp
-rw-r--r-- 3 hadoop supergroup 214092195 2016-11-08 18:50 /tools
-rw-r--r-- 3 hadoop supergroup 53 2016-11-09 12:08 /worlds

下载
/data/hadoop/bin/hadoop fs -get hdfs://ns1/MegaCli ./
或者
/data/hadoop/bin/hdfs dfs -get /MegaCli ~/megacli

本地文件拷贝到hdfs中
/data/hadoop/bin/hadoop fs -copyFromLocal /data/auto_pub.sh /

查看 hdfs 文件
/data/hadoop/bin/hadoop fs -cat /auto_pub.sh | more

[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -count /
21 17 218744425 /
文件 文件夹 大小

递归查询,并且显示大小
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -ls -R -h /tmp

创建目录
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -mkdir /abcd

把本地文件move到hdfs上
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -moveFromLocal ~/abc.txt /

把hdfs文件move到本地
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -moveToLocal /abc.txt ~/

把hdfs文件move到hdfs
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -moveFromLocal ~/abc.txt /

把hdfs文件删除
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -rm /abc.txt

把hdfs目录删除
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -rm -r /abcd

查看hdfs 文件最后内容
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -tail -f /megacli

创建hdfs 一个空文件
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -touch /aaaa.txt

添加执行权限
[hadoop@namenode ~]$ /data/hadoop/bin/hadoop fs -chmod a+x /aaaa.txt

HDFS原理
1个client 需要读取数据,首先要和namenode联系,进行Metadata ops操作,获取元数据信息(metadata),
数据块是依次读取,不能同时读取,读一块,然后拼接。
机架感知: 客户端有选择,在那台机器上读取比较近,有数据就近原则。
数据块的复制,是水平复制。

Metadata 元数据
内存与硬盘都保存一份
NameNode(FileName,replicas,block-ids,id2host......)
/test/a.log, 3,{blk_1,blk_2},[{blk_1:[h0,h1,h3]},{blk_2:[h0,h2,h4]}]
副本复制3此, /test/a.log 分成2块, blk_1 在 h0,h1,h3上, blk_2在h0,h2,h4上

NameNode是整个文件系统的管理节点。
他维护着整个文件系统的文件目录树,
文件/目录的元信息和每个文件对应的
数据块列表,接收用户的操作请求

文件包括
1 fsimage 元数据镜像文件,
2. edits 操作日志文件
3. fstime 保存最后一次checkpoint的时间

NameNode的工作特点
1.NameNode始终在内存中保存metedata,用于处理 读请求。
2.到有“写请求”到来时,namenode会首先写edits到磁盘,即向edits文件中写日志,成功返回后,才会
修改内存,并且向客户端返回。
3. hadoop会维护一个fsimage文件,也就是namenode中的metedata镜像,但是fsimage不会随时与namenode
内存中的metedata保持一样,而是每隔一段时间通过合并edits文件来更新内容。
secondarynamenode 就是用来合并 fsimages和edits文件来更新 namenode的 metedata。

mapreduce 概述
mapreduce 是一种分布式计算模型,由google提出, 主要用于搜索领域,解决海量数据的计算问题

MR由两个阶段组成,map和reduce,用户只需要实现map() 和 reduce() 两个函数, 即可实现分布式计算,非常简单
这两个函数的形参是key、value对,表示函数的输入信息。

1. client 写好的worldcournt jar包提交给HDFS

2.nodemanager每隔一段时间就像RM发送心跳,帮自己的状态汇报给resourcemanager,领取任务。

3.resourcemanager的主要任务,是资源分配。

4.nodemanager从hdfs读取数据,reduce完成后 又把数据写会到hdfs中。

5.client通过RPC协议提交任务到resourcemanager,只提交任务的 描述信息。

6. nodemanager领取 resourcemanager任务的描述信息。

7.nodemanager到HDFS 领取jar包

8. 领到jar包,再启动一个进程,执行程序。

hdfs shell 命令以及原理的更多相关文章

  1. HDFS - Shell命令

    HDFS - Shell命令 最近学习比较忙,本来想做一个搭建集群笔记,今天先记录HDFS-shell命令,明天,最迟明天下午我一定会做一个搭建集群的笔记.. 介绍一个我的集群搭建:一主三从 3个虚拟 ...

  2. HDFS shell命令行常见操作

    hadoop学习及实践笔记—— HDFS shell命令行常见操作 附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop ...

  3. hdfs shell命令及java客户端编写

    一. hdfs shell命令 可以通过hadoop fs 查看所有的shell命令及其用法. 传文件到hdfs: hadoop fs -put /home/koushengrui/Downloads ...

  4. Hadoop学习记录(2)|HDFS shell命令|体系结构

    HDFS的shell 调用文件系统(FS)shell命令使用hadoop fs的形式 所有的FS shell命令使用URI路径作为参数. URI格式是scheme://authority/path.H ...

  5. hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作

    附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSy ...

  6. HDFS Shell命令操作与java代码操作

    (一)编程实现以下功能,并利用 Hadoop 提供的 Shell 命令完成相同任务: (1)     向 HDFS 中上传任意文本文件,如果指定的文件在 HDFS 中已经存在,则由用户来指定是追加到原 ...

  7. hadoop 学习(三)之hdfs shell命令

    1.HDFS shell 1.0查看帮助  hadoop fs -help <cmd> 1.1上传  hadoop fs -put <linux上文件> <hdfs上的路 ...

  8. hadoop学习笔记(五):HDFS Shell命令

    一.HDFS文件命令 以下是比较重要的一些命令: [root@master01 hadoop]# hadoop fs -ls / //查看根目录下的所有文件 [root@master01 hadoop ...

  9. 【hadoop】 hdfs shell 命令交互

    1.put 本地文件上传至hdfs中 2. cat 查看内容 3. 删除文件,文件夹 4. ls 5. copyFromLocal 复制本地文件到HDFS , copyToLocal hdfs 复制到 ...

随机推荐

  1. 【leetcode】Remove Element

    题目概述: Given an array and a value, remove all instances of that value in place and return the new len ...

  2. python中read、readline、readlines的区别

    read直接读入整个文件,存成一个字符串变量 readline一行一行读入文件,所以说读取的文件可以大于内存,但是读取的速度很慢 readlines一次读取整个文件,存成一个列表,所以说也必须小于内存 ...

  3. 在这个看脸的世界,该如何优雅的创建JS对象

    Javascript是一门解释型的语言,是基于对象的,严格来说并不怎么符合的面向对象的标准,显著的特点就是函数就是“一等对象”,与传统的面向对象语言不同的时,Javascript有“一千种”方法来创建 ...

  4. jquery 事件冒泡的介绍以及如何阻止事件冒泡

    在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级 ...

  5. YUV RGB播放器 打开, 显示RGB数据

    可以查看RGB像素数据 可以通过菜单栏打开像素数据文件,也可以通过拖拽方式打开文件.如果文件名称中包含了“{w}x{h}”这样的字符串(例如“test_320x420.yuv”),系统会自动解析为该像 ...

  6. 【MongoDB初识】-安装篇

    1.首先MongoDB官网:http://www.mongodb.org,下载mongoDB 2.解压安装 自己安装在E:\mongdb 3.提示otfix KB2731284 or later up ...

  7. Hibernate和IBatis对比

    [转自]http://blog.csdn.net/ya2dan/article/details/7396598 项目也做过几个, 使用IBatis就做一个项目, 基本上都是使用Hibernate, 也 ...

  8. 【原】iOS学习之文件管理器(NSFileManager)和文件对接器(NSFileHandle)

    1.文件管理器(NSFileManager) 1> 主要作用及功能方法 主要作用:此类主要是对文件进行的操作(创建/删除/改名等)以及文件信息的获取. 功能方法: 2> 创建文件夹 创建所 ...

  9. OSG的节点访问

    OSG的节点访问 转自:http://www.cnblogs.com/kanego/archive/2011/09/27/2193484.html SG中节点的访问使用的是一种访问器模式. 一个典型的 ...

  10. html 之input标签height设置问题

    今天针对这个问题纠结了很久 <input type="button" value="xx" style="height:99px;" ...