云存储及云计算使用(运维).docx
《云存储及云计算使用(运维).docx》由会员分享,可在线阅读,更多相关《云存储及云计算使用(运维).docx(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date云存储及云计算使用(运维)Windows 用户关于云存储使用情况的探讨和分析版本历史版本号修改日期修改人审批日期审批人版本说明/变更理由/变更内容V1.0.2013-4-1赵强首发变更说明:C:Create,初始创建;A:Add,增加内容;M:Mod,修改;D:Del,删除 一、Hadoop的介绍及优缺点分析:31、读写性能和数据安全32、易于扩展的集群架构33、有效
2、分散集群压力44、高效的大数据分析4二、目前使用情况及反馈51、目前线上Hadoop使用情况52、针对目前线上环境的分析53、关于Hadoop集群服务器的选用74、关于nineCloud85、HBase86、监控10三、HBase和Oracle10四、HDFS作为分布式存储的使用可能性分析13五、成功案例分析14六、发展方向151、SaaS方向152、数据挖掘方向17一、Hadoop的介绍及优缺点分析:Hadoop一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统 Fi
3、le System),简称HDFS。Hadoop拥有功能丰富的子项目,其中包括HBase、Hive、ZooKeeper等功能各异的子项目,灵活的使用这些项目可以轻松的做到云计算平台的构建。1、读写性能和数据安全Hadoop都是基于HDFS文件系统,HDFS可以有效的提高系统的吞吐量,减少系统等待时间。HDFS是以磁盘为存储单位的,比如有三台服务器,每个服务器有三块硬盘,对于HDFS等于有九个写入单元,而传统的基于服务器的分布式存储等于只有三个写入单元。而且HDFS通过数据块进行备份的数据冗余机制,磁盘底层不需要而且不建议组建RAID,所以在可使用的磁盘空间上得到了更进一步的提升,而读写性能跟组
4、建注重读写的RAID 0后的效果相同。HDFS对于磁盘读写速度的提升和对数据安全性的提升如下: 磁盘读写速度(RAID0=HDFSRAID1+0RAID5RAID1)磁盘数据安全(RAID1=HDFSRAID1+0RAID5RAID0)由此可见,HDFS可以达到RAID1的数据冗余和RAID0的高速读写。在最新版本(测试版本或者第三方的商业版本)的Hadoop中,Hadoop提出了一个新的Name NodeHA功能,利用该功能可以有效地规避老版本的Name Node节点单点问题。2、易于扩展的集群架构而且Hadoop中的Data Node方便扩展,可以在不停止服务的状态下动态的添加新的Data
5、 Node节点进入集群,而且加入后也不需要重启整个集群,只需要正常配置Data Node节点并启动该节点,Name Node可以自动将该节点加入集群。为了方便集群启动时可以正常启动新加入的Data Node需要对Name Node服务器上的hosts文件及slaves文件进行修改。3、有效分散集群压力Hadoop采用动态存储资源分配,可以将数据更平衡的分布于不同的Data Node节点,防止出现数据不平衡而造成部分Data Node节点请求过多,而其它Data Node节点没有请求的情况。就算有新的Data Node节点加入集群,Hadoop也可以通过一条命令简单的做到数据的重新平衡。当然这个
6、操作最好在使用量低的夜间进行。Hadoop的数据的交换是不经过Name Node节点的,Name Node上保存的文件是直接从Data Node上收集而来,所以当用户使用Hadoop集群上的数据时,是直接从Data Node获取数据,这样做使得Name Node的压力得到缓解。而且最新版的Hadoop还支持在一个Hadoop集群中分别创建多个Name Node节点,每个Name Node节点分别管理整个HDFS空间的一部分。使HDFS中的数据做到有效的隔离,并且当一个Name Node节点出现问题,不至于影响到整个集群中数据的访问。4、高效的大数据分析HBase作为Hadoop的一个子项目,主
7、要用于数据的存储。HBase适合于非结构化数据存储的数据库。与常用的数据库不同的是HBase基于列的而不是基于行的模式。由于HDFS的特点,所以HBase非常适合大数据量的数据分析。系统架构上和Hadoop相类似同样在进行架构的扩展上十分的方便,当出现存储空间不足的情况时,只需要添加进去新的Data Node节点就可以了。由于HBase是基于列的数据库,所以配合Hive可以发挥BI数据库的功能以达到数据分析的作用。加上HDFS分布式存储的底层支持,使得其在进行数据分析、数据挖掘上有一定的优势。但是Hive虽然提供了高级SQL的支持,但是对于专业的BI数据库上还略有不足针对BI/BO工程师不是十
8、分友善。HBase于ZooKeeper等项目的组合应用,可以保证HBase的HMaster节点没有单点的问题出现。而HBase和Pig及Hive等项目一同使用时还能得到对高层SQL语言的支持。二、目前使用情况及反馈1、目前线上Hadoop使用情况HDFS总空间:10.74TB已经使用空间:251.07GBName Node负载:平均小于0.1Data Node负载:平均在0.1左右通过iostat命令查看三台Data Node数据节点信息,内容如下:CPU的使用情况:avg-cpu: %user %nice %sys %iowait %idle 0.55 0.00 0.43 1.03 97.9
9、9硬盘的使用情况:Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnsdb 5.85 120.85 90.12 779560090 581333808CPU的使用情况:avg-cpu: %user %nice %sys %iowait %idle 0.34 0.00 0.30 0.36 99.00硬盘的使用情况:Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnsdb 5.53 41.10 84.69 265108546 546324728CPU的使用情况:avg-cpu: %user %n
10、ice %sys %iowait %idle 0.62 0.00 0.60 0.74 98.04硬盘的使用情况:Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnsdb 6.55 224.87 115.69 1450531354 7462859842、针对目前线上环境的分析通过上面这些数值可以看出,目前Hadoop云平台的整体压力较小,Data Node数据节点的写操作相对比较平衡,读操作则slave3的读取数据远远大于其它两台设备。目前线上系统架构存在着一定的不合理性:Hadoop集群的服务器上尽可能的不部署其它应用,因为无论Name No
11、de,还是Data Node其中Name Node负责镜像元数据的保存,随着业务量的增加这个文件的大小会越来越大,而且这个文件是全部加载进内存中的;而Data Node本身就是以进行计算和硬盘IO操作为主,而当有其它程序运行是势必会造成磁盘IO和CPU资源的抢占,降低效率,这样的结果会进一步的降低Hadoop集群的响应时间。Hadoop集群的逻辑架构为:而物理架构上,Data Node1和Data Node2兼做LD和LD(B)服务器的作用,Name Node服务器同时还是CAS统一认证的服务端,Data Node3为CAS统一认证的服务端的备份。用户访问云平台的流程图:用户 SISS平台(支
12、持中心) LVS NineCloud Hadoop云计算平台|-| Name Node Data Node | |-| |-| |-| |-| |-| |-|综上所述,由于目前集群的压力并不大,所以这些共用服务器的缺点还没有暴露出来。随着业务量的增加,服务器节点的访问量提高,每提升一倍的访问量,Name Node服务器和Data Node服务器的访问量将提高三倍甚至四倍。并且通过用户访问云平台的流程可以看出一个用户的一次请求在现在的架构上,由于Name Node和SISS平台登录使用的是同一台服务器,所以该服务器会建立4个连接,其中两个是链接到NineCloud,另外两个连接是连接到用户的,而
13、正常的情况下只会建立2个连接。由于目前访问量的压力不大,所以这种架构下还没有出现问题,但是随着业务的专业和访问量的进一步增大,这个节点的问题将逐渐的凸显出来。解决这个问题的方法相对比较简单,这里最好能够做到“专机专用”。由于这两个应用都会逐渐变成访问量较大,压力较重的服务器,所以和其它应用共享一台服务器可能会出现问题,所以建议这两个应用分别在两台不同的应用上运行。而LVS和Data Node应用也同样存在着上面说到的问题。而且现在线上的云平台没有做安全方面的配置,加上Hadoop自身的安全控制非常简单,只包含简单的权限,即只根据客户端用户名,决定使用权限。它的设计原则是:“避免好人做错事,但不
14、阻止坏人做坏事”。如果你知道某台Name Node的IP和端口,则可以很轻松获取HDFS目录结构,并通过修改本机机器用户名伪装成HDFS文件所属owner,对该文件进行删除操作。这一点尤其是在以后进一步进行异地机房备份时要注意,入侵者可以利用上面的安全问题伪装IP地址入侵到系统,对系统的安全性将产生很大的影响。这里在以后的工作中可以通过配置kerberos,可以实现身份验证。但很多管理员使用更简单有效的办法通过防火墙对访问IP进行控制或者异地机房通过路由器组建通讯隧道(路由间VPN)。3、关于Hadoop集群服务器的选用Hadoop集群主要分成两部分,既Name Node节点和Data Nod
15、e节点。其中Name Node节点主要管理元数据的保存,而Data Node节点则是保存用户上传的数据。Hadoop不同的节点对于内存的需求量有着很大的差别,(修改内存占用可以通过文件bin/hadoop-evn.sh)主流节点内存配置为32GB,典型场景内存设置如下:Name Node15-25 GBJob Tracker2-4GBData Node1-4 GBTask Tracker1-2 GBChild VM1-2 GB 集群的使用场景不同相关设置也有不同,如果集群有大量小文件,则要求NN内存至少要20GB,DN内存至少2GB。根据以上可以看出,我们可以在服务器的选用上分成两部分:第一部
16、分对内存的大小要求比较高,主要用来计算和分配的Name Node。第二部分对硬盘的IO和空间要求比较高,主要用来读写存储数据的Data Node节点。这部分甚至可以配一台配置较好的服务器之后利用虚拟化技术虚拟成多台服务器之后分别挂载硬盘的方式来节约成本。而大部分计算工作都是交给Data Node来完成的,所以Data Node服务器对于CPU配置要相对略高一些。4、关于nineCloudnineCloud是自行开发的java程序连接HBase的接口程序,java程序通过调用HBase提供的API将数据保存到HBase中,目前是有两台服务器互为负载均衡。这两台服务器的压力相对较低,在考虑到该程序
17、的访问量压力的前提下可以进行在该服务器上部署其它应用。由于HBase是线性工作模式,即完成一个任务才会进行下一个任务,只是在计算时使用的是并发计算。所以同时交付给HBase过多的任务并不会缩短任务的完成时间。这里可以考虑HBase和nineCloud应用之间采用通道连接(即nineCloud和HBase建立永久性连接,用户的请求直接从该链接内发送给HBase,不在单独建立连接。可采用先到先出的内存管理模式。)的模式进行,用来降低创建连接的时间间隔,又可以有效地保证HBase和nineCloud的连接。同时还方便维护人员进行监控,即只要保证连接存在即可保证两个应用之间的是保持通讯的,如断开则表明
18、一侧的应用出现了问题。5、HBase HBase是Apache基金会Hadoop开源项目中的基于Google提出的BigTable所产生的列数据库,HBase拥有Hadoop的方便部署,架构扩展容易,可以利用低配置的机器组建大规模的集群等优势,同时由于Regionserver的机制使得HBase在大数据量的操作上会更有优势。HBase在读写上效率并不是很高一定意义上由于延时会造成系统运行相对较慢。虽然HBase属于noSQL的列数据库,但是HBase并不是针对数据的高速读取的内存数据库,而是偏向海量存储下的运算效率而非Key-Value存储的效率。从以上的描述可以看出,HBase作为线上库对于
19、系统的要求相对苛刻:1、 由于HBase是noSQL数据库,所以不支持事务;2、 存储效率上与一般的noSQL对比没有优势;3、 系统对于响应时间没有过分的要求。而从目前线上应用来看,是存在着直接从HBase读取数据的情况存在,当访问量放大后,这种直接从HBase进行搜索的操作势必会对整个系统造成一定的拖累。所以对于线上系统要进行一定的改进用来创造要符合HBase的应用场景(与Oracle对比),比如数据量大、对线性拓展有需求、对自动化运维(负载均衡)有要求而且应用模式简单。这里前面几个应用场景是使用HBase的适合环境,但是应用模式简单是使用HBase的必须要求,如上所述,HBase是不支持
20、事务,且存储速度一般。在复杂的应用模式下使用HBase将会非常的麻烦,甚至HBase根本就无法满足要求。如果需要完成负载的操作那么就需要增加Pig和Hive功能,Hive和Pig都是基于Hadoop的大规模数据分析平台:Pig简单说是一种编程语言,它简化了Hadoop常见的工作任务。开发人员可以通过Pig直接加载数据,表达转换数据以及存储最总结果。Pig内置的操作使得半结构化数据变得有意义(如日志文件)。同时Pig课扩展使用Java中添加的自定义数据类型并支持数据转换。Hive在Hadoop中扮演数据仓库的角色。Hive添加数据的结构在HDFS(hive superimposes struct
21、ure on data inHDFS),并允许使用类似于SQL语法进行数据查询。与Pig一样,Hive的核心功能是可以扩展的。通过上面的介绍可以看出,Hive更适合数据仓库的任务,可以用于静态的结构以及需要经常分析的工作。而且Hive对于SQL的支持是其可以直接与其他BI工具相结合。而Pig则给开发人员提供了相当大的自由度,比直接只用Hadoop Java APIs相比大幅度的削减了代码量。结合Hive和Pig可以是线上的Hadoop云平台在功能上得到进一步的完善,但是对于HBase在存储和读取数据的实时性上仍需要进行一些改善,可以考虑的改善方案:1、 在HBase前加传统的Key-Value
22、内存数据库,增加数据的读取速度:在这种方案中,应用程序直接与内存数据库进行数据的交互,之后再通过程序将已经写入内存数据库的数据保存到HBase中,这里HBase的作用更多的是数据收集和固化存储。完成以上操作后可以再利用Hive、Pig的Hadoop项目中的子项目对固话的数据进行分析和加工。再将处理后的数据以缓存的方式通过固定模式加载到内存数据库中,并释放内存数据库中重复的数据;2、 HBase和Oracle、MySQL或者MSSQL协同使用:基本原理和方案一类似,不过Oracle、MySQL或者MSSQL等数据库都是关系型数据库是是支持事务的,将处理完成的数据加载到这些数据库中,可以让应用进行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 计算 使用 运维
限制150内