hdfs命令

Hadoop使用(二)

时光怂恿深爱的人放手 提交于 2019-12-23 10:52:29
前提和设计目标 硬件错误 硬件错误是常态而不是异常。HDFS可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据。我们面对的现实是构成系统的组件数目是巨大的,而且任一组件都有可能失效,这意味着总是有一部分HDFS的组件是不工作的。因此错误检测和快速、自动的恢复是HDFS最核心的架构目标。 流式数据访问 运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。POSIX标准设置的很多硬性约束对HDFS应用系统不是必需的。为了提高数据的吞吐量,在一些关键方面对POSIX的语义做了一些修改。 大规模数据集 运行在HDFS上的应用具有很大的数据集。HDFS上的一个典型文件大小一般都在G字节至T字节。因此,HDFS被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的HDFS实例应该能支撑数以千万计的文件。 简单的一致性模型 HDFS应用需要一个“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。Map/Reduce应用或者网络爬虫应用都非常适合这个模型。目前还有计划在将来扩充这个模型,使之支持文件的附加写操作

关于HDFS应知应会的几个问题

这一生的挚爱 提交于 2019-12-23 09:09:07
1.Namenode的安全模式 ? 安全模式是Namenode的一种状态(Namenode主要有active/standby/safemode三种模式)。 2.哪些情况下,Namenode会进入安全模式 ? a. Namenode发现集群中的block丢失率达到一定比例时(默认0.01%),Namenode就会进入安全模式,在安全模式下,客户端不能对任何数据进行操作,只能查看元数据信息 b. 在hdfs集群正常冷启动时,Namenode也会在safemode状态下维持相当长的一段时间,此时你不需要去理会,等待它自动退出安全模式即可 3.为什么,在HDFS集群冷启动时,Namenode会在安全模式下维持相当长的一段时间 ? Namenode的内存元数据中,包含文件路径、副本数、blockid,及每一个block所在Datanode的信息,而fsimage中,不包含block所在的Datanode信息。那么,当Namenode冷启动时,此时内存中的元数据只能从fsimage中加载而来,从而就没有block所在的Datanode信息 ——> 就会导致Namenode认为所有的block都已经丢失 ——> 进入安全模式 ——> 所在的Datanode信息启动后,会定期向Namenode汇报自身所持有的block信息 ——> 随着Datanode陆续启动,从而陆续汇报block信息

(四)数据存储——HDFS

烂漫一生 提交于 2019-12-23 00:24:34
文章目录 Hadoop概述 引言 Hadoop生态圈 HDFS概述 引言 HDFS架构 架构图 HDFS写数据流程 HDFS读数据流程 NameNode工作机制 关于Block块 机架感知 SecondaryNameNode和NameNode的关系 检查节点机制 安全模式 为什么说HDFS不擅长存储小文件? HDFS安装 1. 安装环境 2. 安装+配置Hadoop&HDFS 3. 启动HDFS HDFS的使用 基础命令 回收站机制 Windows上权限不足解决方案 Hadoop概述 引言 Hadoop: 适合大数据的分布式存储和计算平台 Hadoop不是指具体一个框架或者组件,它是Apache软件基金会下用Java语言开发的一个开源分布式计算平台。实现在大量计算机组成的集群中对海量数据进行分布式计算。适合大数据的分布式存储和计算平台。 Hadoop1.x中包括两个核心组件:MapReduce和Hadoop Distributed File System(HDFS) 其中HDFS负责将海量数据进行分布式存储,而MapReduce负责提供对数据的计算结果的汇总。 Hadoop生态圈 HDFS概述 引言 Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)

02HDFS架构

房东的猫 提交于 2019-12-21 15:45:47
https://www.cnblogs.com/zhoujingyu/p/5040957.html https://blog.csdn.net/firstchange/article/details/78567456 HDFS数据存储元(block)   - 文件被切分成固定大小的数据块 默认数据块大小为64MB(Hadoop1.x),128MB(Hadoop2.x)可以配置 若文件大小不到64MB,则单独存成一个block,大小是多少,占磁盘多少。   - 一个文件存储方式 按大小被切分成若干个block,存储到不同节点上 默认情况下每个block都有三个副本   - Block大小和副本数通过Clien端上传文件时设置,文件上传成功后副本数可以变更,Block Size不可变更 HDFS设计思想: NameNode(NN):   - NameNode主要功能:接受客户端的读写服务   - NameNode保存metadata信息,包括: 整个文件系统的目录信息 文件owership(所有者)和permissions(权限) 文件包含哪些block 文件包含的Block保存在哪个DataNode(由DataNode启动时上报)   - NameNode的metadata信息在启动后会加载到内存: metadata存储到磁盘文件名为“fsimage” (持久化,文件的权限信息

hadoop-hdfs

北城以北 提交于 2019-12-21 02:31:00
1、hdfs的组成架构: namenode:就是master,它是一个主管,管理者。 datanode:就是slave.namenode下达命令,datanode执行实际的操作 client:就是客户端 sencondary namenode:并非namenode的后备。当namenode挂掉的时候,他并不能马上替换namenode并提供服务 2.hdfs:是分布式文件管理系统的一个。 3.hdfs的优点: <1>.高容错性:数据自动保存多个副本。某个副本丢失以后,他可以自动恢复。 <2>.适合做大数据:数据规模:能够达到规模gb,tb甚至pb级别。文件规模:能够处理百万规模以上的文件数量,数量相当之强大 <3>.可构建在廉价机器上,通过多副本机制,提高可用性 缺点: 1)不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。 2)无法高效的对大量小文件进行存储。 (1)存储大量小文件的话,它会占用NameNode大量的内存来存储文件 目录和块信息。这样是不可取的,因为NameNode的内存总是有限的; (2)小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。 HDFS 3)不支持并发写入、文件随机修改。 (1)同一时间一个文件只能有一个用户执行写操作,不允许多个线程同 上传 (2)仅支持数据append (追加),不支持文件的随机修改。 上传文件ss. txt 4

Centos7.0配置Hadoop2.6.3单机/伪分布式环境

徘徊边缘 提交于 2019-12-20 23:06:07
一:添加hadoop用户 添加hadoop用户组 groupadd hadoop 添加hadoop用户 useradd -g hadoop hadoop 设置hadoop用户密码 passwd hadoop 设置hadoop用户的权限 visudo 找到 root ALL=(ALL) ALL 在这一行下方添加 (中间空白处为tab键,添加此行权限是为了使hadoop用户有sudo的权限)。 hadoop ALL=(ALL) ALL 切换用户 su hadoop 二:安装SSH、配置SSH无密码登陆 集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下, CentOS 默认已安装了 SSH client 、 SSH server ,打开终端执行如下命令进行检验: rpm -qa | grep ssh 如果返回的结果如下图所示,包含了 SSH client 跟 SSH server,则不需要再安装。 若需要安装,则可以通过 yum 进行安装(安装过程中会让你输入 [y/N],输入 y 即可): sudo yum install openssh-clients sudo yum install openssh-server 测试一下 SSH 是否可用: ssh localhost 但这样登陆是需要每次输入密码的

Hadoop集群的搭建

◇◆丶佛笑我妖孽 提交于 2019-12-20 22:38:47
1、Hadoop集群搭建 1.1 虚拟机环境 VMware Workstation Pro 15.0 Centos 6.5 64bit 内存4G,硬盘50G,采用NAT方式联网。 安装好linux /boot 200M /swap 2g / 剩余 1.2 安装JDK(以root为例) 1.2.1卸载已有JDK (1)查询系统是否安装JDK: 命令:rpm -qa | grep java (2)如果安装的版本低于1.7,卸载该JDK: root用户命令:rpm -e 软件包路径 (3)查看JDK安装路径: 命令:which java 1.2.2安装JDK (1)上传jdk安装包 : jdk-8u171-linux-x64.tar.gz (2)解压安装包到指定目录: tar -zxvf jdk-8u171-linux-x64.tar.gz -C /root/apps (3)配置系统环境变量: 到系统配置文件中添加JAVA_HOME vi /etc/profile 在profile文件中添加 export JAVA_HOME=/usr/local/soft/jdk1.8.0_171 export PATH=$PATH:$JAVA_HOME/bin (4)刷新配置 source /etc/profile (5) 检查安装是否成功 java -version 1.3 关闭防火墙,同步时间 1

hadoop集中式缓存管理

≡放荡痞女 提交于 2019-12-20 04:46:51
简介 hdfs中的集中式缓存管理是一种显式缓存机制,允许用户指定hdfs要缓存的路径。namenode将与磁盘上具有所需块的数据节点通信,并指示它们将块缓存在堆外缓存中。 hdfs中的集中式缓存管理具有许多显著的优点。 显式固定可防止经常使用的数据从内存中逐出。当工作集的大小超过主内存的大小时,这一点尤其重要,这在许多hdfs工作负载中是常见的。 由于datanode缓存由namenode管理,因此应用程序可以在做出任务放置决策时查询缓存块位置集。将任务与缓存块副本一起定位可以提高读取性能。 当数据节点缓存了块时,客户机可以使用新的、更高效的、零拷贝读取api。由于缓存数据的校验和验证由datanode完成一次,因此在使用这个新api时,客户机实际上可以产生零开销。 集中缓存可以提高集群内存的总体利用率。当依赖于每个数据节点上的操作系统缓冲缓存时,重复读取一个块将导致该块的所有n个副本被拉入缓冲缓存。通过集中的缓存管理,用户只能显式地固定n个副本中的m个副本,从而节省n-m内存。 适用场景 集中式缓存管理对于重复访问的文件很有用。例如,hive中经常用于连接的小事实表是缓存的一个很好的候选者。另一方面,缓存一年报表查询的输入可能不太有用,因为历史数据可能只读取一次。 集中式缓存管理对于具有性能sla的混合工作负载也很有用

大数据面试题

房东的猫 提交于 2019-12-20 03:38:01
第一部分选择题 1. 下面哪个程序负责 HDFS 数据存储。 答案C DataNode a)NameNode b)Jobtracker c)DataNode d)secondaryNameNode e)tasktracker NameNode:负责调度,比如你需要存一个640m的文件 如果按照64m分块 那么namenode就会把这10个块(这里不考虑副本)分配到集群中的datanode上 并记录对于关系 。当你要下载这个文件的时候namenode就知道在哪些节点上给你取这些数据了。。。它主要维护两个map 一个是文件到块的对应关系 一个是块到节点的对应关系。(文件分成哪些块,这些块分别在哪些节点) 2. HDfS 中的 block 默认保存几份? 答案A默认3分 a)3 份 b)2 份 c)1 份 d)不确定 3. 下列哪个程序通常与 NameNode 在一个节点启动? 答案D a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 此题分析: hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slave有多个SecondaryNameNode内存需求和NameNode在一个数量级上

Windows平台安装配置Hadoop

天大地大妈咪最大 提交于 2019-12-20 01:07:08
      Windows平台安装配置Hadoop 步骤: 1. JDK安装 2. 下载hadoop2.5.2.tar.gz,自行去百度下载。 3. 下载hadooponwindows-master.zip【**能支持在windows运行hadoop的工具】 https://github.com/steveloughran/winutils 一、 安装hadoop2.5.2 下载 hadoop2.5.2.tar.gz ,并解压到你想要的目录下,我放在 D:\dev\hadoop-2.5.2 二、配置hadoop环境变量 1.windows环境变量配置 右键单击我的电脑 –>属性 –>高级环境变量配置 –>高级选项卡 –>环境变量 –> 单击新建HADOOP_HOME,如下图 2.接着编辑环境变量path,将hadoop的bin目录加入到后面; 三、修改hadoop配置文件 编辑“D:\dev\hadoop-2.5.2\etc\hadoop”下的 core-site.xml 文件,将下列文本粘贴进去,并保存; <configuration> <property> <name>hadoop.tmp.dir</name> <value>/D:/dev/hadoop-2.5.2/workplace/tmp</value> </property> <property> <name>dfs