操作系统
inode
block
元数据和数据分开:
oracle: system 文件和DBS
hive: mysql和hdfs
三大组件:
GFS: 一次写,多次读
mapreduce:
BigTable: HBase
HDFS: 不能备份
分布式要求:
1.减少集群和客户端压力
2. tcp链接数量
3.减少元数据传递压力(块小会增大块数,tcp链接多)
fs:数据:数据结构+inode
db:元数据节点-control
bd: block master-slave
方式:
failover 1个口
loadBalance 2个口
HA-namenode 主备切换
大数据没有备份概念,只是多块复制
问题:少交换机/单点故障
解决:放在不同机架,一个机架两块,另一个机架一块:3个节点
3个块间都建立连接: client-5-2-3 管道:FSOutputStream
过程:一个block写完523,然后报告给namenode写完,最后client报告-checksum
*读写流程
fsimage:所有元素据信息到内存里 写日志方式 fsimage+editlog editlog->fsimage(secondary namenode做这个事)
*linux启动脚本
/etc/rc: rc1.d: S启动进程列表 K 关机进程列表
*部署模式
单机
伪分布式
集群:yarn
slave node: 盘位越多性能越高: 8*1.5 TB is better than 6*2 TB
*flume:
source
channel
sink
data unit: even = log + metadata(date-time-userid)
Map-Reduce:
相同key肯定到同一地方
不同key可能到同一地方
(word0,1)->hash(key)->hashvalue->mod 3->0->node1
(word1,1)->hash(key)->hashvalue->mod 3->1->node2
(word2,1)->hash(key)->hashvalue->mod 3->2->node3
(word3,1)->hash(key)->hashvalue->mod 3->0->node1