HDFS入门介绍


概述

HDFS全称为Hadoop Distribute File System,也就是Hadoop分布式文件系统,是Hadoop的核心组件之一。

分布式文件系统是横跨在多台计算机上的存储系统,主要解决的就是大数据存储的问题


特性

  • master/slave架构

    HDFS集群一般是由一个 NameNode 和一定数目的 DataNode 组成。NameNode 是 HDFS 集群主节点,DataNode 是 HDFS 集群从节点。
  • 分块存储

    分块存储存在的原因:

    假如有100台机器,每台机器只有1T。现在有一个2T的文件,单独存放在一台机器上是无法实现的。那么分块存储就能派上用场,它可以将2T的文件分成很多大小为128M的block块儿,将这些block块分别存储在不同的机器上。
  • 名字空间(NameSpace)

    Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改(用户可以创建、删除、移动或重命名文件)都将被 Namenode 记录下来。

    统一的命名空间:对外提供统一的文件访问地址
  • Namenode元数据管理

    就是将所有的元数据信息保存起来方便查找
  • DataNode数据存储

    就是出磁盘,用来存储文件数据
  • 副本机制

    用来应对block块丢失的情况(副本数量也可以通过参数设置 --> dfs.replication ,默认是3)
  • 一次写入,多次读出

    hdfs文件系统适合频繁读取,不适合频繁写入,因为改变文件涉及到元数据的改变。因此适合用来做大数据分析的底层存储服务,并不适合用来做网盘等应用。

基本命令使用(使用格式:hdfs dfs -command [option] )

  • ls

    hdfs dfs -ls /dirName 查看目录内容

    hdfs dfs -ls -R /dirName 递归查看目录内容(将目录中的所有的内容都呈现出来)
  • lsr

    过期的hdfs dfs -ls -R /dirName
  • mkdir

    hdfs dfs -mkdir /dirName 创建目录

    hdfs dfs -mkdir -p /dirName1/dirName2 创建多级目录
  • moveFromLocal

    hdfs dfs -moveFromLocal LocalSrc dst 从本地向HDFS移动内容
  • moveToLocal

    从HDFS向本地移动内容(但是还不能用)
  • mv

    hdfs dfs -mv /FileName1 /FileName2 重命名(目录也适用)

    hdfs dfs -mv /FilePath dst 移动文件或目录
  • put

    hdfs dfs -put localSrc dst 将本地内容复制到HDFS上
  • appendToFile

    hdfs dfs -appendToFile localsrc … dst 将本地一个或多个文件追加到HDFS指定文件中
  • cat

    hdfs dfs -cat URI 查看HDFS文件内容
  • cp

    hdfs dfs -cp URI dst 将HDFS上的某个文件复制到HDFS指定文件
  • rm

    hdfs dfs -rm URI 删除HDFS上的指定文件

    hdfs dfs -rm -rf URI 强制删除HDFS上的指定文件
  • rmr

    过期的 hdfs dfs -rm -r URI
  • chmod

    hdfs dfs -chmod mode URI 修改HDFS上指定文件的权限

    hdfs dfs -chmod -R mode URI 递归地修改HDFS上指定文件的权限
  • chown

    hdfs dfs -chown owner:grouper URI 修改HDFS上指定文件的所属用户和所属组

    hdfs dfs -chown owner:grouper URI 递归地修改HDFS上指定文件的所属用户和所属组
  • expunge

    hdfs dfs -expunge 清空回收站

高级命令使用

  • HDFS文件限额配置

    数量限额:

    hdfs dfs -mkdir -p /user/root/lisi 创建hdfs文件夹

    hdfs dfsadmin -setQuota 2 lisi 给该文件夹下面设置最多上传两个文件(文件限额数包括用户文件夹本身,也就是限额两个只能上传一个文件)

    hdfs dfsadmin -clrQuota /user/root/lisi 清除文件数量限制

    空间限额:

    hdfs dfsadmin -setSpaceQuota 4k /user/root/lisi 限制空间大小4KB

    hdfs dfsadmin -clrSpaceQuota /user/root/lis 清除空间限额
  • HDFS安全模式

    集群刚启动就是安全模式,对外不提供任何服务,只自检,自检没问题的话,30s后自动脱离安全模式。

    hdfs dfsadmin -safemode   手动启动安全模式
	enter	|	leave	|	get	  |		wait
进入安全模式 退出安全模式 获取当前安全
模式是否启动

基准测试

  • 概述

    hadoop的环境搭建完成之后,第一件事就是进行压力测试,测试我们的集群的读取和写入速度,测试我们的网络带宽是否足够等一些基准测试
  • 测试写入速度

    向HDFS文件系统中写入数据,10个文件,每个文件10MB,文件存放到 /benchmarks/TestDFSIO 中
hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0-cdh5.14.0.jar TestDFSIO  -write -nrFiles 10 -fileSize 10MB

查看写入速度结果
hdfs dfs -text /benchmarks/TestDFSIO/io_write/part-00000
  • 测试读取速度

    在HDFS文件系统中读入10个文件,每个文件10M
hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0-cdh5.14.0.jar TestDFSIO -read -nrFiles 10 -fileSize 10MB

查看读取速度结果
hdfs dfs -text /benchmarks/TestDFSIO/io_read/part-00000
清除测试数据
hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0-cdh5.14.0.jar TestDFSIO -clean

【Hadoop离线基础总结】HDFS入门介绍的更多相关文章

  1. 【Hadoop离线基础总结】Hue的简单介绍和安装部署

    目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...

  2. 【Hadoop离线基础总结】impala简单介绍及安装部署

    目录 impala的简单介绍 概述 优点 缺点 impala和Hive的关系 impala如何和CDH一起工作 impala的架构及查询计划 impala/hive/spark 对比 impala的安 ...

  3. 【Hadoop离线基础总结】oozie的安装部署与使用

    目录 简单介绍 概述 架构 安装部署 1.修改core-site.xml 2.上传oozie的安装包并解压 3.解压hadooplibs到与oozie平行的目录 4.创建libext目录,并拷贝依赖包 ...

  4. 【Hadoop离线基础总结】Hive调优手段

    Hive调优手段 最常用的调优手段 Fetch抓取 MapJoin 分区裁剪 列裁剪 控制map个数以及reduce个数 JVM重用 数据压缩 Fetch的抓取 出现原因 Hive中对某些情况的查询不 ...

  5. 【Hadoop离线基础总结】流量日志分析网站整体架构模块开发

    目录 数据仓库设计 维度建模概述 维度建模的三种模式 本项目中数据仓库的设计 ETL开发 创建ODS层数据表 导入ODS层数据 生成ODS层明细宽表 统计分析开发 流量分析 受访分析 访客visit分 ...

  6. 【Hadoop离线基础总结】Sqoop常用命令及参数

    目录 常用命令 常用公用参数 公用参数:数据库连接 公用参数:import 公用参数:export 公用参数:hive 常用命令&参数 从关系表导入--import 导出到关系表--expor ...

  7. 【Hadoop离线基础总结】HDFS详细介绍

    HDFS详细介绍 分布式文件系统设计思路 概述 只有一台机器时的文件查找:hello.txt /export/servers/hello.txt 如果有多台机器时的文件查找:hello.txt nod ...

  8. 【Hadoop离线基础总结】Apache Hadoop的三种运行环境介绍及standAlone环境搭建

    Apache Hadoop的三种运行环境介绍及standAlone环境搭建 三种运行环境 standAlone环境 单机版的hadoop运行环境 伪分布式环境 主节点都在一台机器上,从节点分开到其他机 ...

  9. Hadoop学习(1)-- 入门介绍

    Hadoop是Apache基金会开发的一个分布式系统基础架构,是时下最流行的分布式系统架构之一.用户可以在不了解分布式底层的情况下,在Hadoop上快速进行分布式应用的开发,并利用集群的计算和存储能力 ...

随机推荐

  1. vue中 使用SVG实现鼠标点击绘图 提示鼠标移动位置 显示绘制坐标位置

    <div class="div1"> <svg id="svg1" xmlns="http://www.w3.org/2000/sv ...

  2. 爬取腾讯网的热点新闻文章 并进行词频统计(Python爬虫+词频统计)

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:一棵程序树 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  3. Sprint 2 : ios图形界面设计与代码整合

    这周我们主要focus在personal photo experience 项目的ios图形界面设计与代码整合工作上. 工作进度: 1. 图形界面设计方面:兆阳和敏龙基本已经将ios手机客户端的雏形界 ...

  4. F - Make It Equal CodeForces - 1065C

    题目大意:有n座塔,塔高h[i],每次给定高度H对他们进行削切,要求每次削掉的所有格子数不能超过k个,输出最少削几次才能使所有塔的高度相同. 思路一:差分+贪心 对于每一个高度h,用一个数组让1~h的 ...

  5. B - Red and Black 直接BFS+队列

    There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A ...

  6. 再接再厉,JSONViewer现已支持Firefox、Microsoft Edge、360浏览器,可能是最好用的JSON格式化工具

    之前写的JSONViewer,截至目前在谷歌商店里已经有1000+的自然下载量了 为什么开发JSONViewer? 日常开发中,拿到接口输出的JSON一般会去在线的JSON格式化网站查看,但是在线格式 ...

  7. Gatling脚本编写技巧篇(一)

    一.公共类抽取 熟悉Gatling的同学都知道Gatling脚本的同学都知道,Gatling的脚本包含三大部分: http head配置 Scenario 执行细节 setUp 组装 那么针对三部分我 ...

  8. Python的6种方式实现单例模式

    单例模式是一个软件的设计模式,为了保证一个类,无论调用多少次产生的实例对象,都是指向同一个内存地址,仅仅只有一个实例(只有一个对象). 实现单例模式的手段有很多种,但总的原则是保证一个类只要实例化一个 ...

  9. 记使用STL与unique_ptr造成的事故-段子类比

    最近由于业务需要在写内存池子时遇到了一个doule-free的问题.折腾半个晚上以为自己的眼睛花了.开始以为是编译器有问题(我也是够自信的),但是在windows下使用qtcreator vs2017 ...

  10. ApiPost如何在预执行脚本里添加请求参数?

    ApiPost V3引入了预执行脚本和后执行脚本的概念,详细可以通过链接:<ApiPost的预执行脚本和后执行脚本>了解学习更多.本文主要介绍如何在预执行脚本里增加请求参数. 使用场景 我 ...