分类 云计算 下的文章

Linux操作系统目录的作用

了解linux下操作系统目录的作用对学习linux操作系统会有很大帮助。
Linux各个目录其实就是文件,
以下是根目录低下的个个目录的作用总结:
1. 根文件系统(/ )
根文件系统中包含了几乎所有的文件目录。相当于中央系统。进入的最简单方法是:cd /
2. /usr文件系统
/usr文件系统中包含了命令库文件和在通常操作中不会修改的文件。安装程序默认就是安装在此文件内部某个子文件夹内。输入命令后系统默认执行/usr/bin下的程序。
3. /var文件系统
/var文件系统中包含一些经常改变的文件。例如假脱机(spool)目录文件日志目录?锁文件?临时文件和格式化后的手册文件。
4. /home文件系统
/home文件系统中保存了用户文件(用户自己的配置文件,定制文件,文档,数据等),root用户除外。
5. /proc文件系统
/proc文件系统中包含了全部虚拟文件。它们并不保存在磁盘中,也不占据磁盘空间(尽管命令ls -c会显示它们的大小)。当您查看它们时,您实际上看到的是内存里的信息,这些文件有助于我们了解系统内部信息。
根文件系统中主要包括以下目录:
/bin:普通用户可以使用的命令文件。
/sbin:一般为非普通用户使用的命令。有时普通用户也可能会用到。
/etc:系统的配置文件。
/root:系统管理员(root或超级用户)的主目录。
/dev:设备文件。在Linux中设备以文件形式出现,从而可以按照写文件的方式简便地对设备进行写操作。
/mnt:文件系统安装点。一般用于安装移动介质?其它文件系统(如DOS)的分区、网络共享文件系统或任何可安装文件系统。
/lib:根目录下的所有程序的共享库。
/boot:LILO使用的文件。Linux内核一般放在该目录下。当然您也可以设置LILO的配置文件,向LILO指明加载内核的其它路径。
/opt:可选择安装的大型应用程序。
/tmp:临时文件,该目录中的文件被系统自动清空。
/lost+found:在系统修复过程中恢复的文件,一般为空。
/usr文件系统中主要包括以下目录:
/usr/x11R6:X Window系统。
/usr/X11:等同于/usr/X11R6 (是到/usr/X11R6的符号链接)。
/usr/X11R6/bin:保存有大量的X Window小程序,或者是指向一些大应用程序的符号链接。
/usr/bin和/usr/sbin:相当于根文件系统下的对应目录,但在基本的系统自举过程中是不需要的(例如在紧急维护中)。
/usr/local:安装本地用户应用程序,例如,Netscape(每一个用户在一个单独的目录中)。
/usr/local/bin:可能是一些小的用户应用程序,也可能是一些指向/usr/local子目录中大应用程序的符号链接。

hadoop职位要求

Hadoop的职位一般有:
1、hadoop运维工程师(负责维护hadoop平台,确保平台平稳运行,作业正常提交)
2、基于hadoop平台,在此基础上进行开发新功能。(多数是写些MapReduce程序)
3、Hadoop解决方案架构(Hadoop相关产品技术架构设计、实现、应用)
大家可以参考现有的hadoop职位要求,选择自己的技术路线。hadoop其实离我们并不远!
下面是几个典型的职位要求:
1、hadoop高级运维工程师(暴风影音)
岗位职责
负责Hadoop平台运维和优化工作;
保证Hadoop平台各核心服务运行的稳定、高效;
对Hadoop平台运维不断优化,提升数据产品的质量和响应速度;
开发各种Hadoop大数据自动化运维与监控工具。/
岗位要求
本科3年以上Linux系统管理工作经验;
1年以上Hadoop平台管理经验;
熟悉Apache Hadoop部署、性能调优,熟悉jetty,thrift;
精通Shell/Python/Java/Php语言的一种或多种;
熟悉nagios,cacti,ganglia,zabbix,zenoss优先;
对大数据和自动化运维开发有浓厚兴趣,熟悉hadoop、hbase、hive、scribe、flume、storm等分布式相关技术优先。
2、hadoop研发工程师(优酷土豆)
职责:
1.基于hadoop的海量数据分析系统研发
2.基于hadoop集群的MapReduce程序的开发、测试及优化
要求:
1.对Linux操作系统熟练掌握,熟悉shell等脚本编程
2.扎实的java基础,两年以上java实际开发经验
3.熟悉hadoop集群的搭建、管理及优化
4.熟悉hadoop及hive,有MapReduce分布式编程经验
5.熟练掌握MySQL数据库,熟练使用SQL
6.对海量数据的分析、挖掘有浓厚兴趣,有海量数据处理经验
7.对技术有激情,喜欢钻研,能快速接受和掌握新技术,有较强的独立、主动的学习能力
8.理解能力强,有较强的逻辑思维分析能力
9.有强烈的责任心及良好的团队合作精神
其他:
1.两年以上工作经验,本科以上学历
2.有过移动数据统计系统开发经验者优先
3、Hadoop解决方案架构师(北京云基地企业管理有限公司)
工作职责:
1.产品技术架构设计、实现、应用
2.Hadoop及大数据相关技术研究
3.客户需求分析及沟通
4.向客户提供Hadoop咨询和培训
职位要求:
1.计算机相关专业毕业,3年以上工作经验,至少1年MapReduce开发经验
2.熟悉Linux操作系统,熟悉Java语言和开发环境
3.熟悉Hadoop生态系统相关项目的功能、架构、实现
4.对计算机体系结构和分布式系统有深入了解
5.优秀的表达和沟通能力

童小军_HD录制的Hadoop视频下载

EasyHadoop创始人@童小军_HD 辛苦录制的Hadoop实战视频被无良卖家放到淘宝网上牟取私利,经和作者沟通,小军愿意无偿将全部视频资料分享给各位爱好者学习使用,因文件太大,需要服务器和带宽,求接受方慷慨相助,也算为行业贡献一己之力 @张栋_机器学习 @邓侃 @梁斌penny @vinWHadoop
视频已经上传到百度网盘,同时视频下载地址已经更新到 EasyHadoop技术大学 页面。希望大家怀着感恩、分享的心去学习,正如作者说的:去帮助别人就如同帮助过去的你
PS:好像原作者已经删除了部分视频,百度网盘已经无法分享这些视频了,我发现在“钱”面前,说的总比做的好听!如果需要可以在这个页面给我留下邮箱,我发给你们下载地址,仅供学习参考。
欢迎订阅博客:http://feed.feedsky.com/Hadoop_java  以后还会分享些有用的内容!
也可以加入Hadoop云计算群:300165122
PPS:大家不要把邮箱留在评论内容里,这样会被收集邮箱地址的发垃圾邮件软件抓取的,在填写内容的时候,会让你填邮件,我能看到的。我正在把这部分资源放到Dropbox上,没收到链接到同学请耐心等待。
下面是地址:http://university.easyhadoop.com/university.html

hadoop视频下载链接

hadoop视频下载链接


百度网盘下载地址:http://pan.baidu.com/share/link?shareid=492484&uk=1124363056#dir/path=%2FEasyHadoop%E6%8A%80%E6%9C%AF%E5%A4%A7%E5%AD%A6%20%E5%9F%B9%E8%AE%AD%E8%A7%86%E9%A2%91
童小军_HD微博:http://weibo.com/tongxiaojun
童小军_HD微博

童小军_HD微博

阿里云搜索

阿里云在去年就推出了搜索服务,但是由于一直没有推广,很多人到现在才知道,这其中就包括这个项目最早的负责人、现唱吧创始人陈华 。
陈华告诉腾讯科技,阿里云搜索是一个通用搜索,其功能和百度、搜狗、360搜索一样。他自己2009年4月加入阿里巴巴就是去做搜索,并且从零开始组建了阿里巴巴云搜索的团队,2011年离开阿里后创立了现在的唱吧。“但阿里云搜索是一个比较艰难的产物。”陈华说。
做搜索为防御 附带额外责任
陈华表示,当时阿里做搜索的想法更多是从防御的角度,觉得必须要有一个这样的产品。另外,由于阿里要做云计算,而搜索是云计算最典型的应用,要用到海量数据,所以“顺便”做一个搜索,可以用来测试云计算的可靠性。
一开始阿里云搜索和阿里云计算都属于阿里集团研究院,这两个项目几乎同时启动,可能阿里云云计算项目稍微早一两个月。由于阿里想做的是基于云计算的搜索,搜索需要建立在云计算的基础上,因此阿里云搜索进展比较缓慢。
另外,陈华表示阿里云搜索有额外的责任。因为阿里云搜索的基础引擎会同时被阿里的其他搜索产品使用,比如淘宝搜索和一淘搜索。这就给阿里云搜索增加了很多负担。不过陈华表示,自己不清楚现在这一点是否有变化。
由于阿里集团业务已经非常多,一些部门也有涉及到搜索相关的业务,这就导致阿里做搜索的部门划分很混乱,比如做分词的团队根本不在搜索部门。这些相关团队到后期才逐渐合并到阿里云搜索部门。“直到我离开阿里,搜索部门才基本成型。”陈华说。
云搜索成就云计算
虽然阿里云搜索一直做的很艰难,但是阿里云计算却取得了不错的成绩。陈华现在的唱吧就使用了部分阿里云计算的服务。“我们当时也是一起做的,虽然知道阿里云计算有很多问题,但还是相信它基本的可靠性。”
对于云计算而言,可靠性是最基本也是最重要的指标。但是如果没有用户,云计算的可靠性也无从测算。所以很多时候是阿里云搜索承担了测试阿里云计算可靠性的工作。
在阿里云成立初期,由于可靠性低,即便是阿里集团的一些部门也不愿意使用阿里云的服务。但是阿里云搜索需要基于云计算,所以云计算可靠性问题对阿里云搜索有直接的影响。很多时候陈华所带的搜索团队会去帮云计算的团队修改 bug。
这种云计算和搜索“绑定”的方式,让阿里云计算有了一个最可靠的“合作伙伴”。阿里云搜索的测试也让阿里云计算在可靠性方面不断加强,帮助其在今后获得更多客户。
阿里云搜索可与搜狗匹敌 挑战百度难
阿里云搜索是一个通用搜索,但是很国内主流搜索引擎相比,阿里云搜索目前并没有什么优势。陈华认为,凭借阿里集团的资源,阿里云搜索可以做到和搜狗的市场份额相当,但是要挑战百度就会很困难。
不过,要做好阿里云搜索的前提是,阿里集团要有决心,要对阿里云搜索做出创新,并且还要有一个适合的负责人。
最初做阿里云搜索的时候,阿里集团投入的更多是人力和硬件资源,在市场推广方面并没有给于太多支持。但是现在做搜索引擎,渠道和市场推广已经是重中之重。因此如果要进入搜索市场分一杯羹,阿里云搜索就必须要有投入资源的决心。
在创新方面,阿里云搜索只是有了搜索引擎的基本框架,目前还没有看到什么特殊的优势。搜索质量上两年前接近搜狗,现在搜索质量上仍然有很多改进空间。而搜索功能的创新上有更大的机会,还需要不断尝试。
陈华认为,这里面最重要的是“要找到一个合适的人,比如像搜狗的王小川这样,能为自己去争取资源,并且把这种资源都整合起来,可以直面进攻百度、360、搜狗的人”
目前阿里其实已经有了很多和搜索相关的业务,比如浏览器、输入法和地图。阿里手里也有万网和phpwind,可以快速把搜索框推广出去。如果能将这些资源和产品整合利用,并且投入资源进行推广,阿里在搜索市场完全还可以有所作为的。

北京“祥云工程”行动计划

新华网北京1月29日电(记者张雪花) 不少人说,云计算产业的发展给城市插上了智慧的翅膀。2010年9月北京市经信委发布《北京“祥云工程”行动计划(2010-2015年)》,提出了北京市云计算产业发展的总体目标,如今两年多过去了,“北京云”发展得怎么样,给“智慧城市”建设及百姓生活带来哪些变化?本网记者就此专访了北京市经济和信息化委员会副主任姜贵平,副总工程师、软件与信息服务处处长姜广智。
谈到北京“祥云工程”的进展,姜贵平说,从2010年到2012年北京云计算产业三年迈了三大步,2010年是布局年,重点开展云基地建设;2011年是应用年,年底推出了祥云十大示范应用平台;2012年是创新年,在云计算产业链上推出了近100款新产品。目前北京云计算产业已形成南部亦庄北部中关村两大聚集区,参与云计算产业的企业已达150多家,很多应用已经落地,百姓可以实实在在感受到云计算带来的变化。2013年将是北京云产业的深耕年。
北京把云计算作为战略新兴产业的一个重要支撑,给予大力扶持。姜贵平说,这几年北京特别注重一些小企业的扶持发展,推动了50多个项目,投资了5个多亿,仅政府引导资金就有6亿多。据姜广智介绍,祥云工程实施以来,社会上的各类风险投资对北京云企业的投资已达86亿元左右。
谈到云应用,姜贵平说,云计算的发展和城市的智慧运行是相辅相成的,在政务应用上,北京率先建成了移动政务,只要有一部手机有网络,不管在当地还是出差都可以办公,此外还建立北京政府信息数据网,聚集了166类政务数据12万条,供相关方面挖掘利用。此外,北京政务云、交通云、安全云、教育云,社区云等模块的发展,也使得城市的运行、百姓的生活变得更加智慧。
“北京作为拥有2000多万人的大城市,有很多错综复杂的问题,这需要一些高端技术和大数据的挖掘,如果在北京用云计算解决这样的问题,它的示范引领作用是非常好的。”谈到北京云计算发展的特点,姜贵平如是说。
2012年3月北京市政府发布《智慧北京行动纲要》,提出到2015年,北京要实现从“数字北京”向“智慧北京”全面跃升。
针对公众关注的云数据中心的建设规模问题,姜广智作了回应,他认为,北京是国家数据中心比较密集的区域,其作为政治中心、经济中心、文化中心,本身就需要大量的数据中心。姜广智同时强调建设数据中心需要根据云计算发展的实际需要,也需要企业对市场的准确判断,反对片面追求数据中心的规模和数量。
《北京“祥云工程”行动计划》提出,2010到2015年通过“千人计划”及“海聚工程”引进30名云计算领军人才。对此,姜广智说,北京近两年通过国家“千人计划”和北京“海聚工程”已引进了22名领军人才,对突破一些发展瓶颈问题起到了非常重要的作用,但依然缺少对新的商业模式和最前沿的技术有研究的高端人才。
http://news.hexun.com/2013-01-29/150722949.html
附:
北京“祥云工程”行动计划
(2010—2015年)
一、前言
云计算是基于互联网、通过虚拟化方式共享资源的计算模式,使计算、存储、网络、软件等资源,按照用户的动态需要,以服务的方式提供。云计算是继个人电脑、互联网之后,信息技术的重大革新,为我市打造世界城市、落实《科技北京行动计划》、加快建设中关村国家自主创新示范区,促进软件和信息服务业的新发展,提供了重大的发展机遇。
为了加快推进北京云计算相关产业的发展,力争在新一轮信息技术的国际竞争中抢占先机,占领高端,形成新优势,市发展改革委、市经济信息化委和中关村科技园区管委会,组织北京云计算领域的骨干企业,制定本行动计划。
二、指导思想和总体目标
(一)指导思想
以科学发展观为指导,以培育新业态、发展新商业模式、构造新产业链为核心,形成应用带动,创新驱动、面向全球的发展模式,建立政府引导、企业主体、产学研联合的发展机制,积极参与国际间竞争合作,有效整合高端人才、风险投资、产业基地、创新性企业等产业发展要素,推动我市云计算产业早起步、快发展、上规模,成为北京战略性新兴产业的突破口。
(二)实施原则
服务引领。面向建设世界城市的信息化要求,以全面提升城市信息化基础设施能力为契机,在政务信息化、社会信息化和经济信息化领域,加快建设一批云应用示范工程,培育云服务市场,引导下游产业发展。
产业链联动。围绕芯片、硬件、网络、运营商、终端及各种云应用,构造完整的云计算产业链条,带动我市信息技术产业的整体提升。
国际同步。积极利用好国际开源社区资源,充分发挥海外华人云计算人才和企业家作用,加大引入和并购国外云计算企业力度,以国际化水准,高起点规划和实施祥云工程。
走自主道路。以技术创新和商业模式创新为动力,掌握关键核心技术,鼓励发展新型业态,支持研制自主的标准和规范,支持探索符合中国客户要求和习惯的服务模式和业务模式。
(三)总体目标
形成技术、产品和服务一体化发展的产业格局,发展一批高效能、高安全、低成本的云服务,聚集一批世界领先、全国领军的云计算企业,形成一批创新性的新技术、新产品、新标准。到2015年云计算的三类典型服务(IaaS、PaaS、SaaS)形成500亿元产业规模,带动产业链形成2000亿元产值,云应用水平居世界各主要城市前列,成为世界级的云计算产业基地。
三、主要任务
(一)重点发展领域
1.云计算适用芯片和软件平台
加快低功耗芯片、新型嵌入式软件系统、云计算软件平台的开发和产业化,为云计算的发展提供产业基础支撑,形成十余家掌握云计算的核心技术的骨干企业群体。
2.云服务产品
以云计算的基础设施服务(IaaS)、平台服务(PaaS)、软件服务(SaaS)等3个服务线为核心,整合我市信息服务业资源,促进现有的电信运营商、软件提供商、信息服务提供商、内容提供商等的转型。形成十余家规模级IaaS企业,发展百家有独特技术价值、良好商业模式的PaaS和SaaS企业。
3.云计算解决方案
充分利用本市系统集成企业在传统软件领域行业解决方案优势,根据云计算技术、产品和服务特点,研发适合各行业的云计算解决方案,继续保持北京在云计算服务时代企业后台软件系统主力供应商的地位。
4.云计算网络产品
以新架构服务器、新一代网络存储系统、下一代网络设备、新型计算单元为重点,积极扩大同国际企业的合作,特别利用好华人企业家的资源,构建我市云计算网络产品体系,创建十余个新的优势品牌。
5.云计算终端产品
积极发展下一代移动通信终端、移动互联网智能设备、平板电脑、电子书、感知终端等多种云计算终端产品,支持形成以新型终端为龙头的、集硬件、软件、服务、内容与一体的云计算产业生态圈,培育百亿元级别的产业链。
(二)重点发展技术方向
1.集中力量攻关云计算核心技术。配合国家科技重大专项的实施,在虚拟化技术、高性能存储技术、新一代搜索引擎、云计算安全技术、网络操作系统、云计算服务测试验证技术上争取有所突破。
2.积极发展云计算同其他新兴技术的融合。支持把云计算技术同物联网应用、下一代互联网应用、三网融合应用相结合,配合新兴技术的发展规划,发展支持智能电网、节能减排、移动互联、位置与导航服务、电子商务服务、大规模视频采集和播发等新兴业务所需要的云计算能力和软件云处理能力。
3.大力发展绿色IT技术。采用新一代低功耗技术,加大与服务器、存储设备及交换机等高耗能设备相关的绿色技术开发和运用;充分利用云计算的集中计算机制,大幅降低信息化应用和软件信息服务业的能耗,达到在云—-端两方面的节能减排目的。
(三)重点工程
1.云应用重大示范工程
以“祥云工程”的实施为抓手和推进平台,在电子政务、重点行业应用、互联网服务、电子商务等主要应用方向上实施一批不同层次和功能的云计算重大工程。推动电子政务全面向云时代转型,统一规划和抓紧建设“政务云”,带动全市云应用的起步。支持社会机构和企业,利用云计算创新的服务模式,建设和运营面向经济和社会发展的公有云,包括行业云和区域云,迅速形成面向市场的社会化应用。
2.云计算产业基地建设工程
在中关村核心区规划建设北京云计算产业基地,加强政府战略引导,聚集一批云计算科研机构和产业链各环节的核心企业;依托产业基地,建设云计算公共测试和验证平台,云计算产品和服务演示体验中心等重大公共服务平台,引导基地建设成为云服务产品创新中心、技术交流中心、应用示范中心和服务运营中心,成为全球有影响力的云计算产业基地。
3.云服务标准规范创制工程
积极参与国际云计算标准工作,组织参与“祥云工程”的骨干企业研究利用好国际上已有的成熟标准和规范,开放性地做好云计算标准体系的构建工作。积极开展自主标准和规范的创制工作。力争在云安全、服务能力与质量、开放接口、体系架构评估认证等环节形成具有自主知识产权的标准。
4.面向云计算的技术改造工程
充分利用存量资源,支持传统的IT企业围绕云计算技术开展新产品开发、新服务体系构建、新技术架构升级等技术改造工作。引导软件和信息系统集成企业通过技术改造,大力发展云平台的咨询设计能力、集成建设能力和云服务能力;运营商、互联网信息服务和内容服务企业,要通过技术创新和模式创新,加快向云服务方向转型。
四、保障措施
(一)成立“祥云工程”联合工作组,加强统筹协调。
市经济信息化委、市发展改革委、中关村管委会联合牵头,组织云计算产业链中的代表性企业成立联合工作组,制定北京云计算产业发展路线图,在政策制定、标准研究、产业联合、科研攻关等方面加强统筹推进力度。
组建“祥云工程”专家委员会,为祥云工程的实施提供决策支持。
举办北京云计算产业发展国际高层论坛,打造政府与国内外企业家互动的高端平台,成为引进国外智力和项目的重要渠道。
(二)建立“祥云工程”重点项目库,加大资金投入力度。
对“祥云工程”的重点项目实行政府全程跟踪服务,定期进行调度协调,择优给予重点支持。将支持祥云工程的资金列入政府统筹重大科技资金和产业资金的支持范围,采取资本金注入、贷款贴息、投资补助等方式,支持云计算的技术改造项目、成果产业化项目、产业基地建设项目等。积极争取祥云工程的重点项目得到国家各种专项资金的支持。充分发挥政府投入对社会投资的引导带动作用,引导风险投资支持北京云计算相关产业。
(三)完善政策体系,创造良好云计算产业发展环境。
将云计算作为我市新时期电子政务的重要模式加以推广,在市区县各级政府部门积极开展云计算应用。
将云服务模式纳入政府采购。在政府部门和公用事业的信息化应用中采购云服务,以政府采购引导云计算的发展。
政府支持建设一批服务中小企业两化融合、产业结构调整的云平台。对于提供北京工业企业、中小企业和高新技术急需的云计算应用服务,如小型企业的信息化平台、工程计算平台、信息情报平台、音视频开发制作平台等,可以根据北京企业使用云服务数量和品质,给以相应的支持。
(四)对接国家资源,积极争取相关项目在北京率先试点应用。
积极争取国家发展改革委、科技部、工信部等国家部委的支持,组织协调本市企业承接云计算相关的国家重大科技攻关和产业化工程,推动国家重大专项在北京落地,对承接国家项目的企事业单位优先给予地方政府的配套支持。整合资源,创造条件争取国家重大工程在北京率先应用试点。
(五)加强高端人才培养和引进力度。
协助企业引进云计算领域国际优秀人才,充分利用好中央“千人计划”和本市“海聚工程”的平台,引进一批掌握前沿技术的创新创业人才,2010年到2015年通过“千人计划”和“海聚工程”引进30名云计算领军人才。
加强对国内云计算人才的引进和奖励政策,将云计算领域纳入人才引进目录,并将重点云计算企业纳入高级人才奖励范围。
(六)发挥中介组织作用,鼓励发展机制创新。
支持云计算企业发起组建云计算产业联盟等中介组织。鼓励中介组织制定行业公约规范,加强行业自律。引导产业链内部各种形式的资源整合和横向联合,创新产业发展机制,形成集团化、组织化的推进模式,培育产业高端创新集群。
五、结语
云计算是新一代信息技术变革的核心,是战略性新兴产业的发展引擎。云计算的发展将改变CPU、存储、服务器、终端、操作系统及应用软件的整条信息产业链,并深远地影响从生产到生活的信息化应用。“祥云工程”作为北京市发展战略性新兴产业的重要工程,将以云计算技术的兴起为新契机,抢占新的战略制高点,全面优化和提升北京信息技术产业,使北京成为中国乃至全球的云计算中心。

Hadoop在百度的应用

百度作为全球最大的中文搜索引擎公司,提供基于搜索引擎的各种产品,几乎覆盖了中文网络世界中所有的搜索需求,因此,百度对海量数据处理的要求是比较高的,要在线下对数据进行分析,还要在规定的时间内处理完并反馈到平台上。百度在互联网领域的平台需求要通过性能较好的云平台进行处理了,Hadoop就是很好的选择。在百度,Hadoop主要应用于以下几个方面:
日志的存储和统计;
网页数据的分析和挖掘;
商业分析,如用户的行为和广告关注度等;
在线数据的反馈,及时得到在线广告的点击情况;
用户网页的聚类,分析用户的推荐度及用户之间的关联度。
MapReduce主要是一种思想,不能解决所有领域内与计算有关的问题,百度的研究人员认为比较好的模型应该如图3-4所示,HDFS实现共享存储,一些计算使用MapReduce解决,一些计算使用MPI解决,而还有一些计算需要通过两者来共同处理。因为MapReduce适合处理数据很大且适合划分的数据,所以在处理这类数据时就可以用MapReduce做一些过滤,得到基本的向量矩阵,然后通过MPI进一步处理后返回结果,只有整合技术才能更好地解决问题。
百度现在拥有3个Hadoop集群,总规模在700台机器左右,其中有100多台新机器和600多台要淘汰的机器(它们的计算能力相当于200多台新机器),不过其规模还在不断的增加中。现在每天运行的MapReduce任务在3000个左右,处理数据约120TB/天。
百度为了更好地用Hadoop进行数据处理,在以下几个方面做了改进和调整:
(1)调整MapReduce策略
限制作业处于运行状态的任务数;
调整预测执行策略,控制预测执行量,一些任务不需要预测执行;
根据节点内存状况进行调度;
平衡中间结果输出,通过压缩处理减少I/O负担。
(2)改进HDFS的效率和功能
权限控制,在PB级数据量的集群上数据应该是共享的,这样分析起来比较容易,但是需要对权限进行限制;
让分区与节点独立,这样,一个分区坏掉后节点上的其他分区还可以正常使用;
修改DFSClient选取块副本位置的策略,增加功能使DFSClient选取块时跳过出错的DataNode;
解决VFS(Virtual File System)的POSIX(Portable Operating System Interface of Unix)兼容性问题。
(3)修改Speculative的执行策略
采用速率倒数替代速率,防止数据分布不均时经常不能启动预测执行情况的发生;
增加任务时必须达到某个百分比后才能启动预测执行的限制,解决reduce运行等待map数据的时间问题;
只有一个map或reduce时,可以直接启动预测执行。
(4)对资源使用进行控制
对应用物理内存进行控制。如果内存使用过多会导致操作系统跳过一些任务,百度通过修改Linux内核对进程使用的物理内存进行独立的限制,超过阈值可以终止进程。
分组调度计算资源,实现存储共享、计算独立,在Hadoop中运行的进程是不可抢占的。
在大块文件系统中,X86平台下一个页的大小是4KB。如果页较小,管理的数据就会很多,会增加数据操作的代价并影响计算效率,因此需要增加页的大小。
百度在使用Hadoop时也遇到了一些问题,主要有:
MapReduce的效率问题:比如,如何在shuffle效率方面减少I/O次数以提高并行效率;如何在排序效率方面设置排序为可配置的,因为排序过程会浪费很多的计算资源,而一些情况下是不需要排序的。
HDFS的效率和可靠性问题:如何提高随机访问效率,以及数据写入的实时性问题,如果Hadoop每写一条日志就在HDFS上存储一次,效率会很低。
内存使用的问题:reducer端的shuffle会频繁地使用内存,这里采用类似Linux的buddy system来解决,保证Hadoop用最小的开销达到最高的利用率;当Java 进程内容使用内存较多时,可以调整垃圾回收(GC)策略;有时存在大量的内存复制现象,这会消耗大量CPU资源,同时还会导致内存使用峰值极高,这时需要减少内存的复制。
作业调度的问题:如何限制任务的map和reduce计算单元的数量,以确保重要计算可以有足够的计算单元;如何对TaskTracker进行分组控制,以限制作业执行的机器,同时还可以在用户提交任务时确定执行的分组并对分组进行认证。
性能提升的问题:UserLogs cleanup在每次task结束的时候都要查看一下日志,以决定是否清除,这会占用一定的任务资源,可以通过将清理线程从子Java进程移到TaskTracker来解决;子Java进程会对文本行进行切割而map和reduce进程则会重新切割,这将造成重复处理,这时需要关掉Java进程的切割功能;在排序的时候也可以实现并行排序来提升性能;实现对数据的异步读写也可以提升性能。
健壮性的问题:需要对mapper和reducer程序的内存消耗进行限制,这就要修改Linux内核,增加其限制进程的物理内存的功能;也可以通过多个map程序共享一块内存,以一定的代价减少对物理内存的使用;还可以将DataNode和TaskTracker的UGI配置为普通用户并设置账号密码;或者让DataNode和TaskTracker分账号启动,确保HDFS数据的安全性,防止Tracker操作DataNode中的内容;在不能保证用户的每个程序都很健壮的情况下,有时需要将进程终止掉,但要保证父进程终止后子进程也被终止。
Streaming局限性的问题:比如,只能处理文本数据,mapper和reducer按照文本行的协议通信,无法对二进制的数据进行简单处理。为了解决这个问题,百度人员新写了一个类Bistreaming(Binary Streaming),这里的子Java进程mapper和reducer按照(KeyLen,Key,ValLen,Value)的方式通信,用户可以按照这个协议编写程序。
用户认证的问题:这个问题的解决办法是让用户名、密码、所属组都在NameNode和Job Tracker上集中维护,用户连接时需要提供用户名和密码,从而保证数据的安全性。
百度下一步的工作重点可能主要会涉及以下内容:
内存方面,降低NameNode的内存使用并研究JVM的内存管理;
调度方面,改进任务可以被抢占的情况,同时开发出自己的基于Capacity的作业调度器,让等待作业队列具有优先级且队列中的作业可以设置Capacity,并可以支持TaskTracker分组;
压缩算法,选择较好的方法提高压缩比、减少存储容量,同时选取高效率的算法以进行shuffle数据的压缩和解压;
对mapper程序和reducer程序使用的资源进行控制,防止过度消耗资源导致机器死机。以前是通过修改Linux内核来进行控制的,现在考虑通过在Linux中引入cgroup来对mapper和reducer使用的资源进行控制;
将DataNode的并发数据读写方式由多线程改为select方式,以支持大规模并发读写和Hypertable的应用。
百度同时也在使用Hypertable,它是以Google发布的BigTable为基础的开源分布式数据存储系统,百度将它作为分析用户行为的平台,同时在元数据集中化、内存占用优化、集群安全停机、故障自动恢复等方面做了一些改进。
下面这几篇文章也是介绍百度hadoop应用的情况:
http://blog.csdn.net/zbf8441372/article/details/8169969
http://www.csdn.net/article/2011-04-28/296869
http://www.cnblogs.com/chinacloud/archive/2010/11/08/1871592.html

Google的三大核心技术MapReduce、GFS和BigTable论文

Google的三大核心技术MapReduce、GFS和BigTable论文(中文翻译版)
MapReduce:
http://blog.csdn.net/active1001/archive/2007/07/02/1675920.aspx
GFS:
http://blog.csdn.net/xuleicsu/archive/2005/11/10/526386.aspx
BigTale:
http://blog.csdn.net/accesine960/archive/2006/02/09/595628.aspx

Xen

Xen和kvm一样,都是虚拟化开源软件,拥有同样出色的架构设计和性能。Xen和kvm都用于构建IaaS层。
Xen 是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。
Xen通过一种叫做准虚拟化的技术获得高性能,甚至在某些与传统虚拟技术极度不友好的架构上(x86),Xen也有上佳的表现。与那些传统通过软件模拟实现硬件的虚拟机不同,在Intel VT-X支持下3.0版本之前的Xen需要系统的来宾权限,用来和Xen API进行连接。到目前为止,这种技术已经可以运用在NetBSD, GNU/Linux, FreeBSD和Plan 9系统上。在Brainshare 2005会议上,Novell展示了NetWare与 Xen的连通。与Windows XP连通的技术曾在Xen开发初期进行,但微软的协议未能允许它发布。Sun微系统公司也正在积极地将Solaris移植到Xen平台之上。
Xen虚拟机可以在不停止的情况下在多个物理主机之间实时迁移。在操作过程中,虚拟机在没有停止工作的情况下内存被反复的复制到目标机器。虚拟机在最终目的地开始执行之前,会有一次60-300秒的非常短暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后可以恢复。
Xen目前可以运行在x86系统上,并正在向x86_64、IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现。
Xen 是一个基于X86架构、发展最快、性能最稳定、占用资源最少的开源虚拟化技术。Xen可以在一套物理硬件上安全的执行多个虚拟机,与 Linux 是一个完美的开源组合,Novell SUSE Linux Enterprise Server 最先采用了XEN虚拟技术。它特别适用于服务器应用整合,可有效节省运营成本,提高设备利用率,最大化利用数据中心的IT基础架构。

OpenStack-CloudStack与Hadoop的关系

OpenStack,CloudStack与Hadoop的关系:
OpenStack,CloudStack处于云计算中的同一层——IaaS层,他们只是使用不同的语言,不同的设计架构分别实现了IaaS层的功能。CloudStack、OpenStack主要用于构建IaaS层,类似于Amazon EC2 和 S3 的云基础架构服务的架构。Hadoop实现了包括分布式文件系统HDFS和MapReduce框架在内的云计算软件平台的基础架构,并且在其上整合了包括数据库、云计算管理、数据仓储等一系列平台。Hadoop实现的功能实际上是PaaS层提供的服务。
OpenStack、CloudStack和Hadoop分别属于云计算中的一部分,而不是全部。

CloudStack是什么

CloudStack同OpenStack一样,也是主要用于构建IaaS层,OpenStack和CloudStack处于云计算中同一地位,只是他俩的实现方式不同,如实现语言,OpenStack是python实现的,而CloudStack则是由Java实现的;他们的技术架构设计也不相同。
CloudStack是一个开源的具有高可用性及扩展性的云计算平台。目前Cloudstack支持管理大部分主流的hypervisors,如KVM,XenServer,VMware,Oracle VM,Xen等。
同时CloudStack是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用CloudStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。
CloudStack形成的基础设施云和数据中心运营商可以快速,轻松地建立在其现有的基础设施提供云服务的需求,弹性云计算服务。 CloudStack用户可以充分利用云计算提供更高的效率,无限的规模和更快地部署新服务和系统的最终用户。
CloudStack 是一个开源的云操作系统,它可以帮助用户利用自己的硬件提供类似于Amazon EC2那样的公共云服务。CloudStack可以通过组织和协调用户的虚拟化资源,构建一个和谐的环境。CloudStack具有许多强大的功能,可以让用户构建一个安全的多租户云计算环境。CloudStack 兼容Amazon API 接口。CloudStack可以让用户快速和方便地在现有的架构上建立自己的云服务。CloudStack可以帮助用户更好地协调服务器、存储、网络资源,从而构建一个IaaS平台。
CloudStack的前身是Cloud.com,后被思杰收购。英特尔、阿尔卡特-朗迅、瞻博网络、博科等都已宣布支持CloudStack。2011年7月,Citrix收购Cloud.com,并将CloudStack 100%开源。2012年4月5日,Citrix又宣布将其拥有的CloudStack开源软件交给Apache软件基金会管理。CloudStack已经有了许多商用客户,包括GoDaddy、英国电信、日本电报电话公司、塔塔集团、韩国电信等。