hadoop学习笔记1

hadoop能解决哪些问题?
1、海量数据需要及时分析和处理
2、海量数据需要深入分析和挖掘
3、数据需要长期保存
问题:
1、磁盘IO成为一种瓶颈,而非CPU资源。
2、网络带宽是一种稀缺资源
3、硬件故障成为影响稳定的一大因素。
Hadoop生态系统介绍
Hbase
  1、Nosql数据库,Key-Value存储
  2、最大化利用内存

HDFS
  1、hadoop distribute file system分布式文件系统
  2、最大化利用磁盘
MapReduce
  1、编程模型,主要用来日志分析
---------------------------------
HDFS设计原则
1、文件以块(block)方式存储
2、每个块带下去远比多数文件系统来的大(预设64M)
3、通过副本机制提高可高度和读取吞吐量
4、每个区块至少分到三台DateNode上
5、单一master(NameNode)来协调存储单一数据(metadate)
6、客户端对文件没有缓冲机制(No data caching)
-----------------------------------------
NameNode(NN)
1、NameNode主要功能提供名称查询服务,它是一个jetty服务器
2、NameNode保存metadate信息,包括文件owership和permissions、文件包含哪些快、Block保存在哪个DateNode(由DateNode启动时上报)
3、NameNode的metadate信息在启动后会加载到内存
4、metadate存储到磁盘文件名为"fsimage"
---------------------------------------------
DateNode(DN)
1、保存Block
2、启动DN线程的时候会向NN汇报block信息。
3、通过向NN发送心跳保持与其联系(3秒钟一次),如果NN10分钟没有收到DN的心跳,则认为其已经Lost,并copy其上的block到其他DN。

----------------------------------------------
Block的副本放置策略
1、第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
2、第二个副本:放置在于第一个副本不同的机架的节点上。
3、第三个副本:放置在与第二个副本相同集群的几点。
4、更多副本:随机节点。
-----------------------------------------------
再说Block
1、设置一个Block64MB,如果上传文件小于该值,仍然会占用一个Block的命名空间(NameNode metadate),但是物理存储上不会占用64MB的空间。
2、Block大小和副本数由Client端上传文件到HDFS时设置,其中副本数可以变更,Block是不可以再上传后变更的。
-----------------------------------------------
数据损坏(corruption)处理
1、当DN读取block的时候,它会计算checksum
2、如果计算后的checksum,与block创建时值不一样,说明该block已经损坏。
3、client读取其他DN上的block;NN标记该块已经损坏,然后复制block达到预期设置的文件备份数。
4、DN在其文件创建后三周验证其checksum
-----------------------------------------------------
SecondaryNameNode(SNN)
1、它不是NN的热备份
2、它可以作为冷备份,将本地保存的fsimage导入,修改cluster所有DN的NameNode地址,修改所有client端NameNode地址或者修改SNN IP为原NNIP
3、它的工作是帮主NN合并edits log,减少NN启动时间。
-----------------------------------------------
HDFS文件权限
1、与Linux文件权限相识
2、r:read;w:write;x:execute,权限x对于文件忽略,对于文件表示是否允许访问其内容
3、如果Linux系统用户zhangshan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsan
-----------------------------
安全模式
1、namenode启动时候,首先将影像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。
2、一旦在内存中成功建立文件系统元数据映射,则创建一个新的fsimage文件(这个操作不需要secondaryNameNode)和一个空的编辑日志。
3、NameNode开始监听RPC和HTTP请求。
4、此刻namenode运行在安全模式,即namenode的文件系统对于客服务端来说是只读的(显示目录,显示文件内容等,写、删除、重命名会失效)。
5、系统中数据块的位置并不是由namenode维护的,而是以块列表形式存储在datanode中。
6、在系统的正常操作期间,namenode会在内存中保留所有块位置的映射信息。
7、在安全模式下,各个datanode会向namenode发送块列表的最新情况。
8、进入和离开安全模式
    查看namenode处于哪个状态
   hadoop dfsadmin -safemode get
  进入安全模式(hadoop启动的时候在安全模式)
   hadoop dfsadmin -safemode enter
   离开安全模式
   hadoop dfsadmin -safemode leave

raplication表示默认拷贝几份文件。
------------------------------------
HDFS开发常用的命令
创建一个文件夹?hadoop fs -mkdir /user/hadoop/20120722
上传一个文件? hadoop fs -put(copyFormLocal)  word.txt /user/hadoop/user2.txt
删除一个文件夹和文件? hadoop fs -rmr /user/hadoop/user2.txt
查看一个文件夹里面有哪些文件? hadoop fs -ls /user/hadoop
查看某个文件的内容? hadoop fs -text(cat、tail) /user/hadoop/user2.txt

猜你喜欢

转载自501565246-qq-com.iteye.com/blog/1927738