Menu
Woocommerce Menu

多图片批量上传

0 Comment


$uri = “”;

HBase基本概念与基本使用

图片 1

组成部件说明:

Client:

使用HBase RPC机制与HMaster和HRegionServer进行通信
Client与HMaster进行管理类操作
Client与HRegionServer进行数据读写类操作

Zookeeper:

Zookeeper Quorum存储-ROOT-表地址、HMaster地址
HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况
Zookeeper避免HMaster单点问题

HMaster:

HMaster没有单点问题,HBase可以启动多个HMaster,通过Zookeeper的Master
Election机制保证总有一个Master在运行
主要负责Table和Region的管理工作:

  1. 管理用户对表的增删改查操作
  2. 管理HRegionServer的负载均衡,调整Region分布
  3. Region Split后,负责新Region的分布
  4. 在HRegionServer停机后,负责失效HRegionServer上Region迁移

HRegionServer:

HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写

图片 2

HRegionServer管理一系列HRegion对象;
每个HRegion对应Table中一个Region,HRegion由多个HStore组成;
每个HStore对应Table中一个Column Family的存储;
Column
Family就是一个集中的存储单元,故将具有相同IO特性的Column放在一个Column
Family会更高效。

HStore:

HBase存储的核心。由MemStore和StoreFile组成。MemStore是Stored Memory
Buffer。
HLog:

引入HLog原因:在分布式系统环境中,无法避免系统出错或者宕机,一旦HRegionServer意外退出,MemStore中的内存数据就会丢失,引入HLog就是防止这种情况。

工作机制:
每个HRegionServer中都会有一个HLog对象,HLog是一个实现Write Ahead
Log的类,每次用户操作写入MemStore的同时,也会写一份数据到HLog文件,HLog文件定期会滚动出新,并删除旧的文件(已持久化到StoreFile中的数据)。当HRegionServer意外终止后,HMaster会通过Zookeeper感知,HMaster首先处理遗留的HLog文件,将不同region的log数据拆分,分别放到相应region目录下,然后再将失效的region重新分配,领取到这些region的HRegionServer在Load
Region的过程中,会发现有历史HLog需要处理,因此会Replay
HLog中的数据到MemStore中,然后flush到StoreFiles,完成数据恢复。

第一步 新建一个web项目

图片 3

$ch = curl_init ();
$data=I;
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 检查证书域名
$return = curl_exec ;
dd;
curl_close ;

写流程

图片 4

1)
Client通过Zookeeper的调度,向RegionServer发出写数据请求,在Region中写数据;

2) 数据被写入Region的MemStore,知道MemStore达到预设阀值(即MemStore满);

3) MemStore中的数据被Flush成一个StoreFile;

4)
随着StoreFile文件的不断增多,当其数量增长到一定阀值后,触发Compact合并操作,将多个StoreFile合并成一个StoreFile,同时进行版本合并和数据删除;

5) StoreFiles通过不断的Compact合并操作,逐步形成越来越大的StoreFile;

6) 单个StoreFile大小超过一定阀值后,触发Split操作,把当前Region
Split成2个新的Region。父Region会下线,新Split出的2个子Region会被HMaster分配到相应的RegionServer上,使得原先1个Region的压力得以分流到2个Region上。

可以看出HBase只有增添数据,所有的更新和删除操作都是在后续的Compact历程中举行的,使得用户的写操作只要进入内存就可以立刻返回,实现了HBase
I/O的高性能。

使用工具 vs 2010。

读流程

1) Client访问Zookeeper,查找-ROOT-表,获取.META.表信息;

2)
.META.表查找,获取存放目标数据的Region信息,从而找到对应的RegionServer;

3) 通过RegionServer获取需要查找的数据;

4)
RegionServer的内存分为MemStore和BlockCache两部分,MemStore主要用于写数据,BlockCache主要用于读数据。读请求先到MemStore中查数据,查不到就到BlockCache中查,再查不到就会到StoreFile上读,并把读的结果放入BlockCache。

寻址过程:client—>Zookeeper—>ROOT表—>.META.表—>RegionServer—>Region—>client

1、分布式模式的HBase

HBase将表会切分成小的数据单位叫region,分配到多台服务器。托管region的服务器叫做RegionServer。一般情况下,RgionServer和HDFS
DataNode并列配置在同一物理硬件上,RegionServer本质上是HDFS客户端,在上面存储访问数据,HMaster分配region给RegionServer,每个RegionServer托管多个region。

HBase中的两个特殊的表,-ROOT-和.META.,用来查找各种表的region位置在哪。-ROOT-指向.META.表的region,.META.表指向托管待查找的region的RegionServer。

一次客户端查找过程的3层分布式B+树如下图:

图片 5

一次基本的流程:

a、 客户端通过zookeeper获取含有-ROOT-的region服务器名。

b、 通过含有-ROOT-的region服务器查询含有.META.表中对应的region服务器名。

c、 查询.META.服务器获取客户端查询的行键数据所在的region服务器名。

d、 通过行键数据所在的region服务器获取数据。

图片 6

HBase每次执行写操作都会写入两个地方:预写式日志(write-ahead
log,也称HLog)和MemStore,以保证数据持久化,只有当这两个地方的变化信息都写入并确认后,才认为写动作完成。MemStore是内存里的写入缓冲区,HBase中数据在永久写入硬盘之前在这里累积,当MemStore填满后,其中的数据会刷写到硬盘,生成一个HFile。

总结

swfupload
多文件上传可用于多种类型文件上传,这里只演示了图片,你可以自己扩展。

同理,swfupload是不依赖于某个平台或者语言的,同样可用于PHP,Java,Asp.net等多种语言,只要您弄清楚原理就可以随意扩展,如有什么不明白的可给我留言。

第二步 引入所需swfuplod文件(swfupload.swf,js,css等)

图片 7

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图