hadoop基本知识

标签: hadoop 知识 | 发表时间:2014-04-08 22:18 | 作者:韩悠悠
出处:http://www.iteye.com

Hadoop生态系统
Hbase
 1、Nosql数据库,key-value存储
 2、最大化利用内存
HDFS
 1、hadoop distribute file system分布式文件系统
 2、最大化利用磁盘
MapReduce
 1、编程模型,主要用来做数据分析
 2、最大化利用CPU

HDFS设计原则
文件以快(block)方式存储
每个块带下远比多数文件系统来的大(预设64M)
通过副本机制提高可靠度和读取吞吐量
每个区块至少分到三台DataNode上
单一master(NameNode)来协调存储单元数据(metadata)
客户端对文件没有缓存机制(No data caching)

NameNode(NN)
NameNode主要功能提供名称查询服务,它是一个jetty服务器
NameNode保存metadata信息,包括
 1、文件ownrship和permissions
 2、文件包含哪些块
 3、Block保存在哪些DataNode(由DataNode启动时上报)
NameNode的metadata信息在启动后会加载到内存
matedata存储到磁盘文件名为fsimage,
 block的位置信息不回保存到fsimage

 DataNode(DN)
 保存Block
 启动DN线程的时候会向NN汇报block信息
 通过向NN发送心跳保持与其联系(3秒一次),如果NN10分钟没有收到
 DN的心跳,则认为其已经lost,并copy其上的block到其他DN。

 Block的副本放置策略
 第一个副本:放置在上传文件的DN,如果是集群外提交,则随机挑选
 一台磁盘不太满,CPU不太忙的节点
 第二个副本:放置在于第一个副本不同的机架的节点上
 第三个副本:与第二个副本相同集群的几点
 更多副本:随机节点

设置一个Block64MB,如果上传文件小于改值,仍然会占用一个Block的命名空间
(NameNode metadata),但是物理存储上不会占用64MB的空间。
Block的大小和副本数由Client端上传文件到HDFS时设置,其中副本
数可以变更,Block是不可以再上传后变更的。

数据损坏(corruption)处理
当DN读取block的时候,它会计算checksum
如果计算后的checksum,与block创建时值不一样,说明该block已经损坏。
client读取其他DN上的block,NN标记改块已经损坏,然后复制block
达到预期设置的文件备份数
DN在其文件创建后三周验证其checksum

SecondaryNameNode(SNN)
它不是NN的热备份
它可以作为冷备份
  1、将本地保存的fsimage导入
  2、修改cluster所有DN的NameNode地址
  3、修改所有client端NameNode地址
  4、or 修改SNN IP为原NNIP
它的工作是帮助NN合并edits log,减少NN启动时间。

HDFS文件权限
与liunx文件权限类似
r:read,w:write,x:execute,权限X对于文件忽略,对于文件夹表示是否允许访问其内容
如果linux系统用户zhangshan使用Hadoop命令创建了一个文件
那么这个文件在HDFS中owner就是zhangshan
HDFS的权限目的,阻止好人做错事,而不是阻止坏人做坏事
HDFS详细,你告诉我你是谁,我就认为你是谁。

安全模式
1、namenode启动的时候,首先将映射文件(fsimage)载人内存,并执行编辑日志(edits)中的各项操作
2、一旦在内存中成功建立文件系统元数据的映射,则创建一个新的fsimage文件(这个操作不需要SecondaryNameData)和一个日志编辑器
3、NameNode开始监听RPC和HTTP请求
4、此刻namenode运行安全模式,即namenode的文件系统对于客服端来说是只读的。(显示目录,显示文件内容等,写、删除、重命名等都会失败)
5、系统中数据块的位置并不是由namenode维护的,而是以块列形式存储在datanode中。
6、在系统的正常操作期间,namenode会在内存中保留所有块位置的映射信息。
7、在安全模式下,各个在datanode 会向namenode发送块列表的最新情况
8、进入和离开安全模式
查看namenode处于哪个状态
   hadoop dfsadmin -safemode get
  进入安全模式
   hadoop dfsadmin -safemode enter
  离开安全模式
   hadoop dfsadmin -safemode leave

 
  HDFS开发常用命令
  hadoop -mkdir /usr/xx/xxx
  上传一个文件
  hadoop fs -put/copyFromLocal word.txt /usr/hadoop/xxx
  删除一个文件和文件夹
  hadoop fs -rm /usr/xxxx
  查看一个文件夹里有哪些文件
  hadoop fs -ls /usr/hadoop/xx
  查看某个文件的内容
  hadoop fs -text/cat/tail /usr/xxxx


 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [hadoop 知识] 推荐:

hadoop基本知识

- - 互联网 - ITeye博客
Hadoop生态系统.  1、Nosql数据库,key-value存储.  1、hadoop distribute file system分布式文件系统.  1、编程模型,主要用来做数据分析. 文件以快(block)方式存储. 每个块带下远比多数文件系统来的大(预设64M). 通过副本机制提高可靠度和读取吞吐量.

基于Hadoop的数据仓库Hive 基础知识

- - IT瘾-bigdata
Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理、特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,可通过HQL语句实现简单的MR统计,Hive将HQL语句转换成MR任务进行执行. 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反应历史变化(Time Variant)的数据集合,用于支持管理决策.

Hadoop Streaming 编程

- - 学着站在巨人的肩膀上
Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer,例如:. 采用shell脚本语言中的一些命令作为mapper和reducer(cat作为mapper,wc作为reducer). 本文安排如下,第二节介绍Hadoop Streaming的原理,第三节介绍Hadoop Streaming的使用方法,第四节介绍Hadoop Streaming的程序编写方法,在这一节中,用C++、C、shell脚本 和python实现了WordCount作业,第五节总结了常见的问题.

Hadoop使用(一)

- Pei - 博客园-首页原创精华区
Hadoop使用主/从(Master/Slave)架构,主要角色有NameNode,DataNode,secondary NameNode,JobTracker,TaskTracker组成. 其中NameNode,secondary NameNode,JobTracker运行在Master节点上,DataNode和TaskTracker运行在Slave节点上.

Hadoop MapReduce技巧

- - 简单文本
我在使用Hadoop编写MapReduce程序时,遇到了一些问题,通过在Google上查询资料,并结合自己对Hadoop的理解,逐一解决了这些问题. Hadoop对MapReduce中Key与Value的类型是有要求的,简单说来,这些类型必须支持Hadoop的序列化. 为了提高序列化的性能,Hadoop还为Java中常见的基本类型提供了相应地支持序列化的类型,如IntWritable,LongWritable,并为String类型提供了Text类型.

Hadoop TaskScheduler浅析

- - kouu&#39;s home
TaskScheduler,顾名思义,就是MapReduce中的任务调度器. 在MapReduce中,JobTracker接收JobClient提交的Job,将它们按InputFormat的划分以及其他相关配置,生成若干个Map和Reduce任务. 然后,当一个TaskTracker通过心跳告知JobTracker自己还有空闲的任务Slot时,JobTracker就会向其分派任务.

HADOOP安装

- - OracleDBA Blog---三少个人自留地
最近有时间看看hadoop的一些东西,而且在测试的环境上做了一些搭建的工作. 首先,安装前需要做一些准备工作. 使用一台pcserver作为测试服务器,同时使用Oracle VM VirtualBox来作为虚拟机的服务器. 新建了三个虚拟机以后,安装linux,我安装的linux的版本是redhat linux 5.4 x64版本.

Hadoop Corona介绍

- - 董的博客
Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/hadoop-corona/hadoop-corona/. Hadoop Corona是facebook开源的下一代MapReduce框架. 其基本设计动机和Apache的YARN一致,在此不再重复,读者可参考我的这篇文章 “下一代Apache Hadoop MapReduce框架的架构”.

Hadoop RPC机制

- - 企业架构 - ITeye博客
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. Hadoop底层的交互都是通过 rpc进行的. 例如:datanode和namenode 、tasktracker和jobtracker、secondary namenode和namenode之间的通信都是通过rpc实现的.

Hadoop Rumen介绍

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce/hadoop-rumen-introduction/. 什么是Hadoop Rumen?. Hadoop Rumen是为Hadoop MapReduce设计的日志解析和分析工具,它能够将JobHistory 日志解析成有意义的数据并格式化存储.