HDFS

Hadoop HDFS 设计随想

試著忘記壹切 提交于 2019-12-30 02:15:51
目录 引言 HDFS 数据块的设计 数据块应该设置成多大? 抽象成数据块有哪些好处? 操作块信息的命令 HDFS 中节点的设计 有几种节点类型? 用户如何访问 HDFS? 如何对 namenode 容错? 如何更快的访问 datanode 中访问频繁的块? 如何扩展 namenode 以存储更多的文件? HDFS 中的高可用性设计 如何处理 namenode 单点失效问题? namenode 间如何共享编辑日志? namenode 如何能快速故障切换? 如何规避非平稳故障转移? 小结 参考文档 珍惜时间,时间要花在做有用的事情上,力戒无意义的举动 ——富兰克林 引言 当数据的大小大于一台独立的电脑的存储能力时,就有必要对它进行分区并且存储在多台单独的电脑上。要将非常大的数据集合存储在多台电脑上,就会涉及到多台电脑共享的文件系统,也就是分布式文件系统。 分布式文件系统(distributed file system) 是指管理网络中跨多台计算机存储的文件系统。 分布式文件系统既然跨多台电脑,通过网络将它们互联起来,就可能会出现其中的一个电脑节点连接中断或者宕机的情况,也就是节点故障。在这种情况下也不能出现丢失整个文件系统任何数据的情况,怎么来做到呢?先让我们用发散思维的方式来思考一下。 将文件系统的每份数据备份,并且备份不能在同一台物理计算器上,这样能保证即使其中一台计算机宕机

HADOOP之HDFS

一世执手 提交于 2019-12-30 02:14:28
HADOOP学习之HDFS HDFS介绍 HDFS是hadoop自带的分布式文件系统,英文名为:Hadoop Distributed Filesystem,HDFS以流式数据访问模式来存储超大文件。根据设计,HDFS具有如下特点 HDFS特点 支持超大文件 一般来说,HDFS存储的文件可以支持TB和PB级别的数据 检测和快速应对硬件故障 在集群环境中,硬件故障是常见性问题。因为有上千台服务器连在一起,故障率很高,因此故障检测和自动恢复hdfs文件系统的一个设计目标。假设某一个datanode挂掉之后,因为数据是有备份的,还可以从其他节点里找到。namenode通过心跳机制来检测datanode是否还存活 流式数据访问 HDFS的访问模式是一次写入,多次读取,数据集通常都是由数据源生成或者从数据源复制而来,接着长时间在此数据集上进行各种分析,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要 高容错性 数据自动保存多个副本,副本丢失后自动恢复。 可构建在廉价的机器上,实现线性扩展。当集群增加新节点之后,namenode也可以感知,将数据分发和备份到相应的节点上 商用硬件 Hadoop并不需要运行在昂贵且高可靠的硬件上。它是设计运行在商用硬件(在各种零售店都能买到的普通硬件)的集群上的,因此至少对于庞大的集群来说,节点故障的几率还是非常搞得。HDFS遇到上述故障时

Hadoop分布式文件系统HDFS详解

筅森魡賤 提交于 2019-12-30 02:13:18
Hadoop分布式文件系统即Hadoop Distributed FileSystem。 当数据集的大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分区(Partition)并存储到若干台单独的计算机上,管理网络中跨越多台计算机存储的文件系统成为分布式文件系统(Distributed FileSystem)。 该系统架构与网络之上,势必引入网络编程的复杂性,因此分布式文件系统比普通磁盘文件系统更为复杂。例如:使文件系统能够容忍节点故障且不丢数据便是一个极大的挑战。 Hadoop有一个成为HDFS的分布式文件系统,即Hadoop Distributed FileSystem。在非正式的文档或旧的文档中也叫着做DFS。HDFS是Hadoop的旗舰级文件系统,它实际上是一个综合性的文件系统的抽象。例如还可以集成其他文 件系统如Amazon S3或本地文件系统。 HDFS以流式数据访问模式来存储超大文件,运行在商用硬件集群上,特点如下: 1、超大文件存储 “超大文件”在这里指具有即便MB、几百GB、几百TB大小的文件,目前已经有了存储PB级别数据的Hadoop集群。(全球最大的Hadoop集群在雅虎,有大约25,000个节点,主要用于支持广告系统与网页搜索。) 2、流式数据访问 HDFS的构建思路是一次写入,多次读取是最高效的访问模式。数据集通常由数据源生成或从数据源复制而来

Is there ln in hadoop HDFS

此生再无相见时 提交于 2019-12-30 02:08:14
问题 Is there ln -s in hadoop HDFS? For instance: I have 10 files in HDFS /user/hadoop/input , which is 1.txt, 2.txt ... 10.txt Another dir in HDFS is /user/hadoop/test I just wanna copy 1 file from /user/hadoop/input/1.txt to /user/hadoop/test/1.txt . The simplest way is use hadoop dfs -cp /user/hadoop/1.txt /user/hadoop/test . But it cost more time and disk space. Is there a way like shell such as hadoop dfs -ln /user/hadoop/1.txt /user/hadoop/test/1.txt ? 回答1: HDFS supports Symbolic links.

Hadoop体系架构简介

让人想犯罪 __ 提交于 2019-12-30 01:41:37
  今天跟一个朋友在讨论hadoop体系架构,从当下流行的Hadoop+HDFS+MapReduce+Hbase+Pig+Hive+Spark+Storm开始一直讲到HDFS的底层实现,MapReduce的模型计算,到一个云盘如何实现,再到Google分布式史上那最伟大的三篇文章。   这几个名词刚问到初学者的时候肯定会一脸懵逼包括我自己,整个Hadoop家族成员很多,“势力”很庞大,下面画个图,简单概括下。 到这里本文内容已结束,下文是摘自网络上一些比较经典或者浅显易懂的相关文字,有兴趣的继续往下看。对初学者来说,如果上图能大概看懂,那下面的内容能更有利于你理解。 Google的分布式计算三驾马车: Hadoop的创始源头在于当年Google发布的3篇文章,被称为Google的分布式计算三驾马车。 Google File System( 中文 , 英文 )用来解决数据存储的问题,采用N多台廉价的电脑,使用冗余(也就是一份文件保存多份在不同的电脑之上)的方式,来取得读写速度与数据安全并存的结果。 Map-Reduce说穿了就是函数式编程,把所有的操作都分成两类,map与reduce,map用来将数据分成多份,分开处理,reduce将处理后的结果进行归并,得到最终的结果。但是在其中解决了容错性的问题。 BigTable是在分布式系统上存储结构化数据的一个解决方案

3、hadoop伪分布式

蹲街弑〆低调 提交于 2019-12-29 18:52:40
目录(hadoop伪分布式) 关闭防火墙 hadoop包安装并配置环变:hadoop-2.6.5.tar.gz Hadoop的第二次JAVA_HOME 环境变量配置 HADOOP_HOME 配置Hadoop 配置文件 为了能寻找jdk的配置: 将下面三个文件中JAVA_HOME修改 配置core-site.xml 配置hdfs-site.xml 配置slaves文件 配置从节点配置信息 datanode 格式化hdfs 启动集群 查看web UI: IP:50070 关闭防火墙 systemctl disable firewalld.service hadoop包安装并配置环变:hadoop-2.6.5.tar.gz tar xf hadoop-2.6.5.tar.gz -C /opt/ 解压安装 Hadoop的第二次JAVA_HOME 环境变量配置 HADOOP_HOME export HADOOP_HOME=/opt/hadoop-2.6.5 配置path . /etc/profile 加载配置文件 配置Hadoop 配置文件 为了能寻找jdk的配置: 将下面三个文件中JAVA_HOME修改 vi hadoop-env.sh vi mapred-env.sh vi yarn-env.sh 配置core-site.xml vi core-site.xml #主节点配置信息

sparkCore-RDD详解

自作多情 提交于 2019-12-29 17:44:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.1 什么是RDD 1.1.1 产生背景 当初设计RDD主要是为了解决三个问题: Fast :Spark之前的Hadoop用的是MapReduce的编程模型,没有很好的利用分布式内存系统,中间结果都需要保存到external disk,运行效率很低。RDD模型是in-memory computing的,中间结果不需要被物化(materialized),它的 persistence 机制,可以保存中间结果重复使用,对需要迭代运算的机器学习应用和交互式数据挖掘应用,加速显著。Spark快还有一个原因是开头提到过的 Delay Scheduling 机制,它得益于RDD的Dependency设计。 General: MapReduce 编程模型只能提供有限的运算种类(Map和Reduce),RDD希望支持更广泛更多样的operators(map,flatMap,filter等等),然后用户可以任意地组合他们。 The ability of RDDs to accommodate computing needs that were previously met only by introducing new frameworks is, we believe, the most credible evidence

面试题_HBase

混江龙づ霸主 提交于 2019-12-29 16:35:54
1.HBase 和 HDFS 关系 HDFS是Hadoop分布式文件系统。 HBase的数据通常存储在HDFS上。HDFS为HBase提供了高可靠性的底层存储支持。 Hbase是Hadoop database即Hadoop数据库。它是一个适合于非结构化数据存储的数据库,HBase基于列的而不是基于行的模式。 HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据。 HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS(关系型数据库)数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。 2.hbase的ha,zookeeper在其中的作用 3.Hbase主键设计、hbase为啥比mysql快、为什么项目选用hbase 4

大数据教程(7.6)shell脚本定时采集日志数据到hdfs

丶灬走出姿态 提交于 2019-12-29 10:45:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 上一篇博客博主分享了hadoop内置rpc的使用案例,本节博主将为小伙伴们分享一个在实际生产中使用的日志搜集案例。前面的文章我们有讲到过用户点击流日志分析的流程,本节就是要完成这个分析流程中的日志搜集。 日志收集有三种方式: (1)、shell脚本搜集(利用hadoop命令行客户端hadoop fs -put ..) (2)、java程序收集(利用hadoop hdfs API的copyFromLocal方法) 通过java程序我们可以写出上传的逻辑后用linux的定时任务cron或java自带的定时器定时任务来进行实时收集。 (3)、Flume开源实时日志搜集系统 日志收集图: shell脚本如下: #!/bin/bash #set java env export JAVA_HOME=/home/hadoop/app/jdk1.7.0_51 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH #set hadoop env export HADOOP_HOME=/home/hadoop/app/hadoop-2.9.1

what difference between execute a map-reduce job using hadoop and java command

百般思念 提交于 2019-12-29 07:34:09
问题 Find many option for run a map-reduce program. Can any one explain difference between theses below commands. And what impact on Map-reduce job if any. java -jar MyMapReduce.jar [args] hadoop jar MyMapReduce.jar [args] yarn jar MyMapReduce.jar [args] In these command which one best or other in any? Can make configuration like display all information about job using Yarn and Job History (like as display Hadoop and yarn command) on Web service normal using port for web service 8088(YARN) on