2.grid方法

Python043

2.grid方法,第1张

这时一种以格状或者类似Excel电子表格方式包装和定位窗口组件的方法。grid方法的语法格式如下。

grid(options,···)

options参数可以是row、column、padx/pady、rowspan、columnspan、sticky。

样例:

可以设定控件在column方向的合并数量,在正式讲解cloumnspan参数功能前,下面先介绍建立一个含8各标签的应用。

如果发生了标签2和标签3的区间是被一个标签占用的情况,此时就是使用columnspan参数的场合。

可以设定控件在row方向的合并数量

样例:

window.mainloop()

样例:增加标签的间距

这个参数的功能类似anchor,但是只可以设定N/S/W/E。原则上相同column的Widget控件,如果宽度不同时,gird方法

会保留最宽的控件当作基准,这时比较短的控件会居中对齐,可参考下列实例:

执行后可以看到"明志工专"标签是居中对齐。

设置"明志工专"标签靠左对齐。

lab1.grid(row=0,column=0,padx=5,pady=5,sticky=W)

sticky参数的可能值N/S/W/E也可以组合使用。

sticky=N+S:可以拉长高度让控件在顶端和底端对齐。

sticky=W+E:可以拉长宽度让控件在左边和右边对齐。

sticky=N+S+E:可以拉长高度让控件在顶端和底端对齐,同时切齐右边。

sticky=N+S+W:可以拉长高度让控件在顶端和底端对齐,同时切齐左边。

sticky=N+S+W+E:可以拉长高度让控件在顶端和底端对齐,同时切齐左右边。

使用grid方法建立色彩标签的应用。

在设计Widget控件的布局时,有时候会碰上窗口缩放大小,此时可以使用这两个方法设定第几个row或column的缩放比例。例如:

rowconfigure(0,weight=1) #row 0的控件当窗口改变大小时缩放比是1

columnconfigure(0,weight=1) #column 0的控件当窗口改变大小时缩放比是1

增加设计lab1的sticky=W,让其可以切齐左边。同时让下方的标签可以对齐上、下、左、右。

通过上述执行结果可以得知下方的标签控件可以随着窗口大小更改,主要是设置"sticky=N+S+W+E"的结果。

至于sticky=W,会让lab1控件向左对齐。

grid组件,gridy坐标系内绘制网格的组件。

GridBagLayout里的各种设置都必须通过GridBagConstraints,因此当我们将GridBagConstraints的参数都设置好了之后,必须new一个GridBagConstraints的对象出来,以便GridBagLayout使用。 参数说明: gridx,gridy设置组件的位置。

CSS Grid现在已经被W3C纳入到CSS3的一个布局模块当中,被称为CSS Grid Layout Module。而我们较为熟悉的还是将其想像成网格或者栅格,也就是早期的960gs。不管是网格还是栅格或者现在的CSS Grid Layout Module。

设计器:

grid控件的设计器的操作风格与Excel类似,便捷易用。软件人员无需编码,就可以在设计器中实现数据分组、公式计算、条件格式、图表效果等复杂功能的表格应用开发,从而缩短开发时间。可以将其免费部署到最终用户端,帮助用户编辑和定制模板,分析处理数据。

有些强大的grid控件会有更高级的功能比如单元格类型(Button,CheckBox,TextBox等等),数据绑定,搜索、缩放、撤销/重复、数据绑定或解绑模式、拆分条等功能。

文 | 翟周伟

本文节选自《Hadoop核心技术》一书。

Hadoop是一个开源的高效云计算基础架构平台,其不仅仅在云计算领域用途广泛,还可以支撑搜索引擎服务,作为搜索引擎底层的基础架构系统,同时在海量数据处理、数据挖掘、机器学习、科学计算等领域都越来越受到青睐。本文将讲述国内外的hadoop应用现状。

国外Hadoop的应用现状

1.Yahoo

Yahoo是Hadoop的最大支持者,截至2012年,Yahoo的Hadoop机器总节点数目超过42?000个,有超过10万的核心CPU在运行Hadoop。最大的一个单Master节点集群有4500个节点(每个节点双路4核心CPUboxesw,4×1TB磁盘,16GBRAM)。总的集群存储容量大于350PB,每月提交的作业数目超过1000万个,在Pig中超过60%的Hadoop作业是使用Pig编写提交的。

Yahoo的Hadoop应用主要包括以下几个方面:

支持广告系统

用户行为分析

支持Web搜索

反垃圾邮件系统

会员反滥用

内容敏捷

个性化推荐

同时Pig研究并测试支持超大规模节点集群的Hadoop系统。

2.Facebook

Facebook使用Hadoop存储内部日志与多维数据,并以此作为报告、分析和机器学习的数据源。目前Hadoop集群的机器节点超过1400台,共计11?200个核心CPU,超过15PB原始存储容量,每个商用机器节点配置了8核CPU,12TB数据存储,主要使用StreamingAPI和JavaAPI编程接口。Facebook同时在Hadoop基础上建立了一个名为Hive的高级数据仓库框架,Hive已经正式成为基于Hadoop的Apache一级项目。此外,还开发了HDFS上的FUSE实现。

3.A9.com

A9.com为Amazon使用Hadoop构建了商品搜索索引,主要使用StreamingAPI以及C++、Perl和Python工具,同时使用Java和StreamingAPI分析处理每日数以百万计的会话。A9.com为Amazon构建的索引服务运行在100节点左右的Hadoop集群上。

4.Adobe

Adobe主要使用Hadoop及HBase,同于支撑社会服务计算,以及结构化的数据存储和处理。大约有超过30个节点的Hadoop-HBase生产集群。Adobe将数据直接持续地存储在HBase中,并以HBase作为数据源运行MapReduce作业处理,然后将其运行结果直接存到HBase或外部系统。Adobe在2008年10月就已经将Hadoop和HBase应用于生产集群。

5.CbIR

自2008年4月以来,日本的CbIR(Content-basedInformationRetrieval)公司在AmazonEC2上使用Hadoop来构建图像处理环境,用于图像产品推荐系统。使用Hadoop环境生成源数据库,便于Web应用对其快速访问,同时使用Hadoop分析用户行为的相似性。

6.Datagraph

Datagraph主要使用Hadoop批量处理大量的RDF数据集,尤其是利用Hadoop对RDF数据建立索引。Datagraph也使用Hadoop为客户执行长时间运行的离线SPARQL查询。Datagraph是使用AmazonS3和Cassandra存储RDF数据输入和输出文件的,并已经开发了一个基于MapReduce处理RDF数据的Ruby框架——RDFgrid。

Datagraph主要使用Ruby、RDF.rb以及自己开发的RDFgrid框架来处理RDF数据,主要使用HadoopStreaming接口。

7.EBay

单集群超过532节点集群,单节点8核心CPU,容量超过5.3PB存储。大量使用的MapReduce的Java接口、Pig、Hive来处理大规模的数据,还使用HBase进行搜索优化和研究。

8.IBM

IBM蓝云也利用Hadoop来构建云基础设施。IBM蓝云使用的技术包括:Xen和PowerVM虚拟化的Linux操作系统映像及Hadoop并行工作量调度,并发布了自己的Hadoop发行版及大数据解决方案。

9.Last.Fm

Last.Fm主要用于图表计算、专利申报、日志分析、A/B测试、数据集合并等,也使用Hadoop对超过百万的曲目进行大规模的音频特征分析。

节点超过100台机器,集群节点配置双四核[email protected]@2.13GHz,24GB内存,8TB(4×2TB)存储。

10.LinkedIn

LinkedIn有多种硬件配置的Hadoop集群,主要集群配置如下:

800节点集群,基于Westmere的惠普SL170X与2×4的核心,24GB内存,6×2TBSATA。

1900节点集群,基于Westmere的超微-HX8DTT,与2×6的核心,24GB内存,6×2TBSATA。

1400节点集群,基于SandyBridge超微与2×6的核心,32GB内存,6×2TBSATA。

使用的软件如下:

操作系统使用RHEL6.3。

JDK使用SUNJDK1.6.0_32。

Apache的Hadoop0.20.2的补丁和ApacheHadoop的1.0.4补丁。

Azkaban和Azkaban用于作业调度。

Hive、Avro、Kafka等。

11.MobileAnalytic.TV

主要使用Hadoop应用在并行化算法领域,涉及的MapReduce应用算法如下。

信息检索和分析。

机器生成的内容——文档、文本、音频、视频。

自然语言处理。

项目组合包括:

移动社交网络。

网络爬虫。

文本到语音转化。

音频和视频自动生成。

12.Openstat

主要利用Hadoop定制一个网络日志分析并生成报告,其生产环境下超过50个节点集群(双路四核Xeon处理器,16GB的RAM,4~6硬盘驱动器),还有两个相对小的集群用于个性化分析,每天处理约500万的事件,每月15亿美元的交易数据,集群每天产生大约25GB的报告。

使用的技术主要包括:CDH、Cascading、Janino。

13.Quantcast

3000个CPU核心,3500TB存储,每日处理1PB以上的数据,使用完全自定义的数据路径和排序器的Hadoop调度器,对KFS文件系统有突出贡献。

14.Rapleaf

超过80个节点的集群(每个节点有2个双核CPU,2TB×8存储,16GBRAM内存)主要使用Hadoop、Hive处理Web上关联到个人的数据,并引入Cascading简化数据流穿过各种处理阶段。

15.WorldLingo

硬件上超过44台服务器(每台有2个双核CPU,2TB存储,8GB内存),每台服务器均运行Xen,启动一个虚拟机实例运行Hadoop/HBase,再启动一个虚拟机实例运行Web或应用程序服务器,即有88台可用的虚拟机运行两套独立的Hadoop/HBase机群,它们各自拥有22个节点。Hadoop主要用于运行HBase和MapReduce作业,扫描HBase的数据表,执行特定的任务。HBase作为一种可扩展的、快速的存储后端,用于保存数以百万的文档。目前存储了1200万篇文档,近期的目标是存储4.5亿篇文档。

16.格拉斯哥大学的TerrierTeam

超过30个节点的实验集群(每节点配置XeonQuadCore2.4GHz,4GB内存,1TB存储)。使用Hadoop促进信息检索研究和试验,特别是用于TREC,用于TerrierIR平台。Terrier的开源发行版中包含了基于HadoopMapReduce的大规模分布式索引。

17.内布拉斯加大学的HollandComputingCenter

运行一个中等规模的Hadoop机群(共计1.6PB存储)用于存储和提供物理数据,以支持紧凑型μ子螺旋型磁谱仪(CompactMuonSolenoid,CMS)实验的计算。这需要一类能够以几Gbps的速度下载数据,并以更高的速度处理数据的文件系统的支持。

18.VisibleMeasures

将Hadoop作为可扩展数据流水线的一个组件,最终用于VisibleSuite等产品。使用Hadoop汇总、存储和分析与网络视频观众收看行为相关的数据流。目前的网格包括超过128个CPU核心,超过100TB的存储,并计划大幅扩容。

国内Hadoop的应用现状

Hadoop在国内的应用主要以互联网公司为主,下面主要介绍大规模使用Hadoop或研究Hadoop的公司。

1.百度

百度在2006年就开始关注Hadoop并开始调研和使用,在2012年其总的集群规模达到近十个,单集群超过2800台机器节点,Hadoop机器总数有上万台机器,总的存储容量超过100PB,已经使用的超过74PB,每天提交的作业数目有数千个之多,每天的输入数据量已经超过7500TB,输出超过1700TB。

百度的Hadoop集群为整个公司的数据团队、大搜索团队、社区产品团队、广告团队,以及LBS团体提供统一的计算和存储服务,主要应用包括:

数据挖掘与分析。

日志分析平台。

数据仓库系统。

推荐引擎系统。

用户行为分析系统。

同时百度在Hadoop的基础上还开发了自己的日志分析平台、数据仓库系统,以及统一的C++编程接口,并对Hadoop进行深度改造,开发了HadoopC++扩展HCE系统。

2.阿里巴巴

阿里巴巴的Hadoop集群截至2012年大约有3200台服务器,大约30?000物理CPU核心,总内存100TB,总的存储容量超过60PB,每天的作业数目超过150?000个,每天hivequery查询大于6000个,每天扫描数据量约为7.5PB,每天扫描文件数约为4亿,存储利用率大约为80%,CPU利用率平均为65%,峰值可以达到80%。阿里巴巴的Hadoop集群拥有150个用户组、4500个集群用户,为淘宝、天猫、一淘、聚划算、CBU、支付宝提供底层的基础计算和存储服务,主要应用包括:

数据平台系统。

搜索支撑。

广告系统。

数据魔方。

量子统计。

淘数据。

推荐引擎系统。

搜索排行榜。

为了便于开发,其还开发了WebIDE继承开发环境,使用的相关系统包括:Hive、Pig、Mahout、Hbase等。

3.腾讯

腾讯也是使用Hadoop最早的中国互联网公司之一,截至2012年年底,腾讯的Hadoop集群机器总量超过5000台,最大单集群约为2000个节点,并利用Hadoop-Hive构建了自己的数据仓库系统TDW,同时还开发了自己的TDW-IDE基础开发环境。腾讯的Hadoop为腾讯各个产品线提供基础云计算和云存储服务,其支持以下产品:

腾讯社交广告平台。

搜搜(SOSO)。

拍拍网。

腾讯微博。

腾讯罗盘。

QQ会员。

腾讯游戏支撑。

QQ空间。

朋友网。

腾讯开放平台。

财付通。

手机QQ。

QQ音乐。

4.奇虎360

奇虎360主要使用Hadoop-HBase作为其搜索引擎so.com的底层网页存储架构系统,360搜索的网页可到千亿记录,数据量在PB级别。截至2012年年底,其HBase集群规模超过300节点,region个数大于10万个,使用的平台版本如下。

HBase版本:facebook0.89-fb。

HDFS版本:facebookHadoop-20。

奇虎360在Hadoop-HBase方面的工作主要为了优化减少HBase集群的启停时间,并优化减少RS异常退出后的恢复时间。

5.华为

华为公司也是Hadoop主要做出贡献的公司之一,排在Google和Cisco的前面,华为对Hadoop的HA方案,以及HBase领域有深入研究,并已经向业界推出了自己的基于Hadoop的大数据解决方案。

6.中国移动

中国移动于2010年5月正式推出大云BigCloud1.0,集群节点达到了1024。中国移动的大云基于Hadoop的MapReduce实现了分布式计算,并利用了HDFS来实现分布式存储,并开发了基于Hadoop的数据仓库系统HugeTable,并行数据挖掘工具集BC-PDM,以及并行数据抽取转化BC-ETL,对象存储系统BC-ONestd等系统,并开源了自己的BC-Hadoop版本。

中国移动主要在电信领域应用Hadoop,其规划的应用领域包括:

经分KPI集中运算。

经分系统ETL/DM。

结算系统。

信令系统。

云计算资源池系统。

物联网应用系统。

E-mail。

IDC服务等。

7.盘古搜索

盘古搜索(目前已和即刻搜索合并为中国搜索)主要使用Hadoop集群作为搜索引擎的基础架构支撑系统,截至2013年年初,集群中机器数量总计超过380台,存储总量总计3.66PB,主要包括的应用如下。

网页存储。

网页解析。

建索引。

Pagerank计算。

日志统计分析。

推荐引擎等。

即刻搜索(人民搜索)

即刻搜索(目前已与盘古搜索合并为中国搜索)也使用Hadoop作为其搜索引擎的支撑系统,截至2013年,其Hadoop集群规模总计超过500台节点,配置为双路6核心CPU,48G内存,11×2T存储,集群总容量超过10PB,使用率在78%左右,每天处理读取的数据量约为500TB,峰值大于1P,平均约为300TB。

即刻搜索在搜索引擎中使用sstable格式存储网页并直接将sstable文件存储在HDFS上面,主要使用HadoopPipes编程接口进行后续处理,也使用Streaming接口处理数据,主要的应用包括:

网页存储。

解析。

建索引。

推荐引擎。

end