hadoop_day07

sqoop
Apache Sqoop 介绍:
	Sqoop是Hadoop和关系数据库服务器之间传送数据的一种工具。它能将数据从关系型数据导入到HDFS,Hive;也能将HDFS数据导出到关系型数据库
archives
1.Apache Archives 介绍:
	Archives可以有效的将多个小文件归档为一个文件,archives本质是运行一个MapReduce归档任务;HDFS只使用于存储大文件,如果让HDFS维护大量小文件的元数据目录树,会占用大量内存;
2.archives使用方式:
hadoop archive -archiveName name -p <parent> <src>* <dest>
rg: hadoop archive -archiveName test.har –p /input  /outputdir
# 将input目录下的所有文件归档到outputdir目录下,归档文件夹的名字为test.har(扩展名必须是*.har)
3.archives归档文件查看:
hadoop fs -ls hdfs:///outputdir/test.har   # 查看test.har的元数据信息
hadoop fs -cat har:///outputdir/test.har	# 查看归档前源文件信息
4.archives注意事项:
* 使用MapReduce处理归档文件,MapReduce依然是直接处理归档前的原始小文件,效率低
hign available
1.脑裂现象:
	集群环境下,同时出现多个master,当master发出的指令产生冲突时,slave无法选择该执行谁的指令
2.HDFS 高可用
	HDFS集群下的namenode是单点故障,因此需要Hign Available(HA)解决方案;HA解决方案的逻辑是,对单点故障进行备份,正在执行工作的叫active活跃节点,活跃节点的备份就叫standby备份节点
3.Hign Available高可用实现原理: 由cludera提出的QJM(Qurom Journal Manager)解决方案:
* 共享编辑日志
	在HA模式下,active namenode执行修改操作时的editsLog文件会同步到JournalNode节点,并且在HA模式下,不需要secondayNamenode;JournalNode节点是专门用来存放共享数据的节点,通常会部署2n+1,当有n+1台更新editsLog成功,则认为编辑日志更新成功;standby namenode监控到JournalNode上的editsLog更新后,会将更新数据同步到自己的镜像目录树中;从而实现active namenode和standby namenode数据的同步
* 容错控制
	每个namenode节点下都会部署一个FailoverControl,当namenode启动时,FailoverControl先去zookeeper指定目录下抢占式的获取znode锁,获取成功的FailoverControl将会把namenode的切换为active状态;而其他的FailoverControl获取znode锁失败,就会切换为standby状态,并且监听znode目录的变化;当active namenode宕机时,它的FailoverControl监听到事件,断开与zookeeper的连接,standby namenode的FailoverControl监控到事件,再去抢占znode锁,并将自己切换为active状态;
	HA模式下,要求同一时刻集群下有且只有一个active namenode;因此刚刚从standby切换为active的namenode会对之前的active进行补刀(去之前的active namenode执行kill -9),并且在datanode心跳返回时,更新一个更大的序列号以及自己的健康状态给datanode;datanode接收到这个消息时,便知道active namenode已经发生了变化(此时,即时之前的active再次发出命令,datanode也不会执行)
4.yarn HA
	yarn的单点故障在ResourceManager,从Hadoop 2.4.0版本开始,Yarn实现了ResourceManager HA,在发生故障时自动failover,大大提高了服务的可靠性。
	
federation
1.federation介绍:
	federation联邦用来解决HDFS的内存瓶颈问题,当一个namenode来维护大量的blockpool时,内存可能会不够用,因此需要使用federation模式水平扩展namenode的内存空间;
	federation模式是多个namenode的共同使用一套datanode集群来存储数据,但是这多个namenode间互相独立,从namenode的角度看,它并不知道有别的namenode也在使用它所管理的datanode
2.HDFS元数据目录信息:
* clusterID: 整个HDFS集群公用一个clusterID,用来跟别的HDFS区分开;
* namespace: 在HA模式下,一组active namenode和standby namenode共用一个namespace,用来在federation模式区分多组namenode;
* blockpool: 每个namespace管理一个blockpool,blockpool中包含了这组namespace所管理的分块文件存储位置信息
3.HA跟federation的区别:
HA解决namenode的单点故障问题,federation解决namenode的内存瓶颈问题

CDH
1.CDH介绍:
	hadoop是apache下的一个开源项目,而通常我们使用hadoop时需要使用hadoop生态圈的很多别的工具来扩展社区版hadoop的功能;而cloudera对hadoop生态圈的工具做了一定的封装和扩展,因此安装使用都更简单,称为CDH,也叫CDH生态圈(Cloudera Distribution Hadoop)
2.CM
	Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具(软件),使用CM可以快速搭建CDH集群

你可能感兴趣的:(hadoop,大数据,hadoop)