Feb 7
      
  1. 他们在产品品质或者用户体验上面几乎到了痴迷的程度——他们在细节上花了大量的时间,而有些细节乍一看似乎没有那么重要。如果产品的某个部分有一点小问题,或者用户有一个不好的体验,这些公司的创始人就感觉是自己的身体在隐隐作痛。虽然他们坚信产品重在尽早推出和迭代,但他们一般不会推出一个蹩脚的东西。(当然,这不是慢悠悠发布产品的借口,不过,有可能的是,你为了发布产品,花的时间是不是太长了?)此外,他们不会在创始人和用户之间安插任何人。这些公司的创始人通常亲自做销售和客户支持的工作。
  2.   
  3. 他们对人才非常痴迷。创始人对自己团队的质量引以为傲,并不惜一切代价吸引人才加盟。就像人们说的一样,他们只希望雇用最好的人,而最出色的创业者在这一点上丝毫不能妥协。如果他们在聘用人才上犯了错误,他们会马上更正。
  4.   
  5. 他们招聘过程非常缓慢。为招人而招人的话, 他们压根兴奋不起来。当然了,这也侧面说明了他们对公司文化的重视程度。
  6.   
  7. 他们可以用几个清晰的字眼来说明公司的愿景。这与有些公司需要数个复杂的句子来说明形成鲜明的对比,而复杂的说明似乎从来没有起到很好的效果。同时,他们可以有条不紊的解释为什么他们将会成功,即使其他人在遇到某些问题后惨遭失败;他们对市场有着敏锐的洞察力,并相信他们会有一个相当不错的市场。更泛点说,他们的沟通能力也相当不错。
  8.   
  9. 他们往往很早就有赚钱的能力。通常只要他们获得了第一个用户,就能产生收益。
  10.   
  11. 他们性格坚韧、冷静。那些成功公司的创始人都有种坚韧不拔,处事冷静的品格。每一次运作遭遇困难濒临倒闭,有时甚至一天之内发生数次这种情形,他们应对这种情况就像是掏出一杆枪射击坏人一样,从来不会失去他们的理智。坚韧的品格是可以挖掘和养成的,我见过一些一开始并不那么坚强的创始人,后来很快就练就了这种品质。
  12.   
  13. 他们会控制开支。除了在招聘上很慢,他们在起步的时候都非常节俭。有趣的是,那些不这么做的公司(通常都失败了)总是理直气壮地说:“我们在构想一个伟大的蓝图”。在一切都运行妥当之后,他们有时也会增加投入,但是只花在真正重要的事情上面。
  14.   
  15. 他们会做一些核心用户真正喜爱的东西。Paul Buchheit 是我所知道的第一个提出这个观点的人,确实有道理。成功的初创公司几乎总是先从用户喜爱的产品作为最初的创业核心,然后使用户对他们的产品产生依赖,再逐渐发展壮大。通常经验性地以大多数人的喜好为出发点制定产品战略都不会起到很好的作用。
  16.   
  17. 他们有组织地成长。他们对于大的合作伙伴关系一般都持怀疑态度,并尽可能在较小程度上依靠公关。他们当然不会有大型新闻发布会来推出其创业项目。平庸的创业者才会依赖于大型公关来帮他们解答自己的成长历程。
  18.   
  19. 他们专注于成长。创始人们对用户和收益的数字了然于胸,当你问他们的时候,他们可以脱口而出。同时,他们会设定下一星期,下一个月和下一年的目标。
  20.   
  21. 他们会在企业发展及未来的战略之间做好平衡。他们有明确的计划,并且很清楚自己要做的是什么。但在那一刻,他们更注重的是计划的执行,而不是制定好几年的战略计划。这一特点还可以从第一个创业项目的规模来体现。你不可能从零基础就直接到一个大规模项目,你必须先从一个不会太大,但也不会太小的项目开始。他们似乎就有一种与生俱来的天赋,做出规模合适的项目。
  22.   
  23. 他们做的事情,最初都不起眼。 Paul Graham 已经讨论过这一点。最出色的创业者通常能把小事情做得很大。
  24.   
  25. 他们有一种什么事都愿意干的态度。在创业过程中会有一些枯燥乏味的事情,平庸的创业者通过雇人来做自己不想做的事情,而出色的创业者则会做任何他们认为是对公司有利的事情,即使他们不喜欢做。
  26.   
  27. 他们善于针对事情的轻重缓急安排优先次序。随便哪一天可能有 100 件事情要处理。那些真正成功的创业者在这方面称的上坚决,他们要确保每天优先完成的两到三个重点工作(优先级的判断也当然也是必须的),并忽略其他项目。
  28.   
  29. 创始人都很友好。当然并非个个如此,但我认识的最成功的创始人都比普通人还更友好些。作为创始人的他们,坚韧、有竞争力,有时也称的上残忍,但总的来说,他们都很友好。
  30.   
  31. 他们对假装创建一家公司没有兴趣。他们关心的是成功,而不是“看起来成功”。他们不会因为有一个公司的实体而感到兴奋,他们不会花很多时间与律师或会计师会面,或进行社交活动或其他类似的事情。他们想赢,但不在意他们看起来怎么样。一个极为重要的原因是,他们愿意上手去做那些看似微不足道的事情,比如创办一个网站,让你能在别人家的气垫床上过夜——Airbnb 就是这么来的。最好的点子在刚起步的时候,大都备受质疑。而如果你注重表象甚于本质,你就会在意别人是否会嘲笑你。两个选择:一是做一家会遭人嘲笑,但增强迅猛的公司;二是呆在像模像样的漂亮办公室里,但公司的增长曲线是那么的平缓。你要怎么选?
  32.   
  33. 他们对细小的事情也一丝不苟。在平庸的创业者在夸夸其谈其宏伟计划的时候,优秀的创业者可能正在做一些看起来很小的事情,而且他们可以快速的完成这些事情。你每次跟他们谈话的时候,他们可能已经完成了一些新的东西。即使他们正在做一个大项目,他们也是一个一个小模块地逐个攻破,并最后取得大的突破。他们永远不会消失了一年,什么也没干,然后突然间就完成了一个大项目。所以他们是值得信赖的,如果他们告诉你,他们想做点什么,就一定会去做。
  34.   
  35. 他们会迅速采取行动。对于一切事情,他们会迅速做出决定,对电子邮件也都迅速回复。这是优秀的创业者与平庸的创业者之间最显着的区别之一。优秀的创业者都是行动机器。
Jan 16

一.配置163的yum源

1.导入CentOS-6的GPG证书

#rpm --import http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

2.让yum使用网易的源:

#cd /etc/yum.repos.d/

#wget http://mirrors.163.com/.help/CentOS-Base-163.repo

3.修改repo文件

在所有mirrorlist前面加上#,把所有$releasever替换成6,保存

#sed -i '/mirrorlist/d' CentOS-Base-163.repo

#sed -i '/\[addons\]/,/^$/d' CentOS-Base-163.repo

#sed -i 's/\$releasever/6/' CentOS-Base-163.repo

#sed -i 's/RPM-GPG-KEY-CentOS-5/RPM-GPG-KEY-CentOS-6/' CentOS-Base-163.repo

4.清理并重新生成yum缓存

#yum clean metadata

#yum makecache

二.安装gnome图形化桌面

#yum groupinstall -y "X Window System"

#yum groupinstall -y "Desktop"

#yum groupinstall -y "Chinese Support"

三.安装vncserver并配置

1.安装vncserver

#yum install -y tigervnc-server

2.配置vncserver

1).配置为开机自启动

#chkconfig --level 345 vncserver on

2).配置vnc密码

#vncserver

You will require a password to access your desktop.

Password:

Verify:

3).配置为使用gnome桌面

修改 /root/.vnc/xstartup文件,把最后的 twm & 删掉 加上 gnome-session &。

4).配置vncserver启动后监听端口和环境参数

修改/etc/sysconfig/vncservers 文件添加以下内容

VNCSERVERS="1:root"

# 桌面号:用户    监听 590* 端口

VNCSERVERARGS[1]="-geometry 1200x800"

5).重启vncserver服务

#service vncserver restart

四.允许root访问图形界面和生成新的machine-id

#sed -i 's/.*!= root.*/#&/' /etc/pam.d/gdm 
#dbus-uuidgen >/var/lib/dbus/machine-id

五.关闭selinux和NetworkManager服务

1.检查selinux服务并关闭

#vi /etc/selinux/config

确认里面的SELINUX字段的值是disabled,如果不是则改为disabled。

2.关闭NetworkManager服务

#chkconfig --del NetworkManager

六.测试登录:

Tags: ,
Jan 16

请注意:

如果在安装中部分软件无法安装成功,说明软件源中缺包,先尝试使用命令#apt-get update更新软件源后尝试安装。如果还是不行,需要更换软件源。更换步骤:

a)输入命令#cp /etc/apt/sources.list /etc/apt/sources.list_backup

b)输入命令#vi /etc/apt/sources.list

c)添加其他软件源(推荐使用163、中科大、上海交大等速度较快的国内源)

d)保存并关闭窗口

e)输入命令:#apt-get update

 

 

下面我们开始安装了哦!

用root账户名密码登陆后

1.在ubuntu上安装vncserver,使用命令:# apt-get install vnc4server

2.开启vnc服务,输入命令:#vncserver

首次启动会要求设置密码,后面可以使用vncpasswd修改;

看到 New ‘****:1 (****)’ desktop is ****:1 (****代表主机名)即表示启动vnc成功,在主目录下产生一个.vnc目录;

3.在客户端下载“vnc客户端”软件,进行链接

在服务器栏输入:ip:1

输入用户名密码信息后,可以看到vnc连接页面

但是,这个页面好像不是我们想要的图形化界面。vncserver默认使用的窗口管理器是twm,这是一个很简陋的窗口管理器,下面我们把桌面改成GNOME或KDE。

4. 备份原有xstartup文件: #cp ~/.vnc/xstartup  ~/.vnc/xstartup.bak

下面我们需要修改vnc启动文件,使用命令:#vi ~/.vnc/xstartup

打开后如下图所示

我们需要把上图中“x-window-manager &”这一行注释掉,然后在下面加入一行“gnome-session &”,或者是“startkde &”,分别启动GNOME桌面和KDE桌面。这里我们安装的是GNOME桌面。修改后如下图所示:(具体修改步骤:打开文件后,点击“insert”按钮,这时就可以输入了,在“x-window-manager &”前加“#”,然后回车输入“gnome-session &”,然后点击“Esc ”退出编辑模式,输入“:wq!”保存修改即可)

5.这时我们需要杀掉原桌面进程,输入命令:# vncserver -kill :1//这里的:1是桌面号

再次输入: #vncserver :1生成新的会话

6.下面我们开始安装gnome桌面环境

这里的安装有些慢,需要您耐心等待下。

(1)安装x-windows的基础 ï¼š#sudo apt-get install x-window-system-core

(2)安装登录管理器:#sudo apt-get install gdm ï¼ˆè¿˜å¯ä»¥ä¸ºkdm/xdm)

(3)安装Ubuntu的桌面:#sudo apt-get install ubuntu-desktop(还可以为Kubunut-desktop/ Xubuntu-desktop ï¼‰

另外:

安装命令:apt-get install gnome-core可以安装GNOME的一些基础。apt-get install firefox/gaim/xmms可以安装 Firefox 浏览器、Gaim 聊天程序、XMMS 音乐播放器。您可以按照自己的喜好来安装。

 

7.下面我们重复步骤5,, 输入命令:# vncserver -kill :1杀掉原桌面进程,

再次输入:#vncserver :1生成新的会话。然后使用vnc客户端连接,就可以看到图形化界面,如图:

 

注意:ubuntu10.10操作系统,安装后测试快捷键D无法正常使用,输入d时会使终端桌面显示、消失。这是因为快捷点冲突造成的(ubuntu 12.04无此问题)。

解决此问题,请按照以下步骤:

1)System->Preferences->Keyboard Shortcuts

找到系统快捷键设置菜单

 

2)打开快捷键设置对话框,并找到如下所示的条目,准备设置新的快捷键。\

 

3)  è¾“å…¥“Backspace”键,将这个快捷键Disable。

 

4) 输入命令:# vncserver -kill :1杀掉原桌面进程, 再次输入:#vncserver :1生成新的会话。


5)编辑/etc/rc.local在文件最后一行加入:
su root -c '/usr/bin/vncserver -name my-vnc-server -depth 16 -geometry 1280x800 :1'即可实现开机自启动

Tags: ,
Jan 15
 【IT168 技术】今天听同事分享了一篇很有意思的讲座,叫做"Why Map-Reduce Is Not The Solution To Your Big-Data Problem"(为什么Map-Reduce不是你的“大数据”问题的解决方案)。同事很牛,也分享了很多非常有价值的观点,不过他预言Map-Reduce将会在5年之内消失(而且还呼吁有做存储方面的牛人来预言一下,Hdfs将在5年之内消失),这个话题如果成立的话,让我这个目前在Hadoop工程师,感到无比的压力。这里不为了争个你死我活,只是谈谈自己的一些想法。另外由于这位同事的分享是内部进行的,这里就不透露分享中具体的内容了,只谈谈自己的观点。
  (本文需要对Hadoop有一定的基础方可理解)
  Hadoop为何物?
  虽说Hadoop的名声很大,但是总还是有同学不太了解的,这里一笔带过一下。
  Google分布式计算三驾马车:
  Hadoop的创始源头在于当年Google发布的3篇文章,被称为Google的分布式计算三驾马车(Google还有很多很牛的文章,但是在分布式计算方面,应该这三篇的影响力最大了):http://blog.sina.com.cn/s/blog_4ed630e801000bi3.html,链接的文章比我介绍得更清晰,当然最好还是看看原文了,这是做分布式系统、分布式计算的工程师必修课。
  Google File System用来解决数据存储的问题,采用N多台廉价的电脑,使用冗余(也就是一份文件保存多份在不同的电脑之上)的方式,来取得读写速度与数据安全并存的结果。
  Map-Reduce说穿了就是函数式编程,把所有的操作都分成两类,map与reduce,map用来将数据分成多份,分开处理,reduce将处理后的结果进行归并,得到最终的结果。但是在其中解决了容错性的问题。
  BigTable是在分布式系统上存储结构化数据的一个解决方案,解决了巨大的Table的管理、负载均衡的问题。
  Google就靠着这几样技术,在搜索引擎和广告方面取得了举世瞩目的成就。不过Google不是傻的,这三篇文章虽然都是干货,但是不是直接就可以用的。话说Google发表了这三篇文章后,在学术界引起了轩然大波,大家对这三样东西提起了浓厚的兴趣,都想着是不是可以实现一下,以为己用。
  Doug Cutting:
  Doug Cutting之前是一个非常有名的开源社区的人,创造了nutch与lucene(现在都是在Apache基金会下面的),nutch之前就实现了一个分布式的爬虫抓取系统。等Google的三驾马车发布后,Doug Cutting一看,挖靠这么厉害的技术,于是就实现了一个DFS(distributed file system)与Map-Reduce(大牛风范啊),集成进了Nutch,作为Nutch的一个子项目存在。那时,是2004年左右。
  在互联网这个领域一直有这样的说法:
  “如果老二无法战胜老大,那么就把老大赖以生存的东西开源吧”
  当年与Google还是处在强烈竞争关系的Yahoo!于是招了Doug兄进来,把老大赖以生存的DFS与Map-Reduce开源了。开始了Hadoop的童年时期。差不多在2008年的时候,Hadoop才算逐渐成熟。
  现在的Hadoop:
  现在的Hadoop不仅是当年的老二Yahoo的专用产品了,从Hadoop长长的用户名单中,可以看到Facebook,可以看到Linkedin,可以看到Amazon,可以看到EMC, eBay,Tweeter,IBM, Microsoft, Apple, HP...(后面的一些未必是完全使用)。国内的公司有淘宝、百度等等。
  我来定义一下Hadoop:
  Hadoop是一套开源的、基础是Java的、目前能够让数千台普通、廉价的服务器组成一个稳定的、强大的集群,使其能够对pb级别的大数据进行存储、计算。已经具有了强大稳定的生态系统,也具有很多使用的延伸产品。比如做查询的Pig, 做分布式命名服务的ZooKeeper, 做数据库的Hive等等。

  为什么世界上只有一个Hadoop?
  我的前公司是国内某一个著名互联网公司的子公司,专注做云计算,我也在这个公司最兴盛的时候进入,当时宣传的口号是“做最好的云计算”,就是希望自己开发一套存储计算系统(就是类似于前面提到过的dfs与map-reduce),并且克服一些Hadoop的缺点(比如说用c++去实现,克服Java的一些性能问题)。后来结局可能大家也猜到了,投入了很多钱,招了不少牛人,确实也做出了还算不错的云计算(至少在国内是数一数二的)。但是最终不管从稳定性还是效率上还是scalable来说,都远远被Hadoop甩在了后面。虽然我前公司这个云计算项目是否会成功,这里没办法预测,但是前途终究还是比较黯淡的。
  最近一年还听说国内不少的互联网巨头都成立了云计算部门,做“自己的”云计算,有些小得像创业时期一样的公司,都宁愿自己写一套map-reduce框架,不愿意直接使用Hadoop。可能这个跟国人的想法,武功秘笈一定要自己藏着,不让别人学,传男不传女。对别人白给你的东西,非常不放心,觉得大家都能学到的东西,肯定竞争力是不够的。
  除开心态问题不谈,但从技术实力上来说,一般国内公司的核心开发团队的能力和当年的Yahoo!比,还是有非常大的差距的,至少像是Doug兄这样的大牛是很罕见的,从开发者的实力来说,就差了不止一个档次。
  其次从积累来说,Hadoop从初创到现在也经过了至少7年的积累的,碰到过很多刁钻客户的问题都慢慢克服了(比如Facebook的超大数据存储),带给用户的经验教训是很充足的,比如说性能调优这一块,就有非常多的文章去介绍。而自己开发一个,什么都需要从头再来。
  最后也是最重要的是,Hadoop形成了一个强大稳定的生态系统,里面有生产者(共享改进的代码、fix bug),也有消费者(使用项目并且反馈经验),Hadoop的用户也可以获得较大的经济利益(不花钱买软件,还可以增加效率)。对于一个开源社区来说,构建出一个完整的生态系统是非常非常的困难,一旦构造出来了,项目就会很稳定的往前去进步。

  Hadoop的优势
  之前分析了一些“虚”的东西,比如生态系统什么的,这里说说一些实际的东西。
  Benchmark:
  Hadoop现在保持了很多漂亮的记录:
  存储:现在世界上最大的Hadoop集群目前在Facebook,可以存储30PB的数据
  计算:Hadoop是目前Terasort记录的保持者(参见:http://sortbenchmark.org/),Terasort是给出1TB的随机数据,看谁能够在最短的时间内完成排序,Hadoop使用了1400多个节点,在2分钟内完成1T的数据排序。
  这里顺便说一下,之前给出网站里面有很多的benchmark,可以看到Hadoop的集群是最大的,使用的机器最多的,像是TritonSort这样的集群,使用了区区50多个节点,最终的结果并不比Hadoop差太多,但是这里得注意一下。TritonSort是专门用来做排序的,里面加入了相当多的优化,但是Hadoop是一个通用的集群,并没有为了一种任务进行如此多的优化。从用户的角度上来说,愿意花钱去买一个只会排序的电脑是意义不那么大的。
Hadoop的优势分析
  注:左右两边属于两种不同的terasort,hadoop是其中一种的记录保持者
  能做什么?
  前面说的基本的存储和计算Hadoop是一定能胜任的,下面谈谈一些“高级”的功能。
  常见的数据库操作,比如orderby、select这样的操作都可以的,Hive就是支持这样的Sql模型,能够将Sql语句最终转化到Map-Reduce程序中去。其性能和可用性已经得到了证明,Facebook就用它做了不少的数据分析的工作
  常见的机器学习、矩阵分析算法,目前Mahout作为一个发展迅速的项目,在逐渐填补Hadoop在机器学习领域的空白,现在常见的分类、聚类、推荐、主成分分析算法(比如SVD)都已经有相应的Map-Reduce实现了。虽然目前从用户群和效率上来说是不够的,但是从它的发展来说应该会很快的达到工业界的标准。

  Hadoop的劣势
  现在Hadoop依然有很多的问题没有解决,这让有些人非常的怀疑Hadoop的未来,这里谈谈Hadoop的一些重要的劣势
  HA(High Availability)高可用性:
  这一点是Hadoop非常弱的一个缺点,不管是Hdfs还是Map-reduce,都是采用单master的方式,集群中的其他机器都是与一台中心机器进行通信,如果这个中心机器挂了,集群就只有不工作了(不一定数据会丢失,但是至少需要重启等等工作),让可用性变得更低。这个一般叫做单点失败(single point of failure,SPOF)。
  虽然现在有些公司已经给出了解决方案,比如EMC就有用Vmware搭建虚拟集群,对master节点进行镜像备份,如果master挂掉,那么立刻换上镜像备份的机器,使其可用性变高,不过这个终究不是一个内置的解决方案,而且Vmware这一套东西也并不便宜。
  不过之后这个问题将会得到非常好的解决,我在Hadoop的未来这一章将说以说。
  Hadoop目前解决得不那么好的一些算法:
  Join等:
  Map-Reduce还有一个问题是,对于Join这个最常见的数据库操作,支持力度还是不够,特别是针对那种上TB的数据,Join将会很不给力,现在已经有了一些解决方案,比如说SIGMOD'2010的这篇文章:
  A Comparison of Join Algorithms for Log Processing in MapReduce
  不过在现在的情况下,只有尽量的避免大数据库的Join操作
  需要进行很多轮迭代、循环的算法:
  对于循环,Map-Reduce稍好,比如矩阵计算,高斯消元法这样的,循环的次数的确定的算法,实现起来还是不难,只是有点慢。但是迭代就更麻烦了,因为现在的Map-Reduce的mapper和reducer是不太方便去弄这样的终止条件。
  还有就是迭代次数超多的算法(比如说矩阵的SVD分解),在超大矩阵的情况下,迭代次数可能会上亿次。而Map-Reduce在每次迭代的时候都会把数据往文件里面读写一遍,这样的浪费的时间是巨大的。
  其实Map-Reduce不是绝对没有办法去解决这些问题,而只是现在这个还不是最重要的日程,Hadoop还有很多很多的东西可以优化,比如说前面提到的HA,这些东西只有往后放放,我将在之后的Hadoop的未来部分,谈谈未来版的Hadoop怎么去解决这些问题。
  编程复杂,学习曲线陡峭:
  对于一般的map-reduce框架,hello world程序就变成了word count,就是给出一堆的文本文件,最终统计出里面每一个不同的单词出现的次数,这样一个简单的任务(可能在linux shell下一行就写出来了),在Map-reduce中需要几十行,一般新人从理解word count到写出自己的word count,到跑通,一个星期是肯定需要的。这样陡峭的学习曲线让许多人难以深入。
  另外还有一点Hadoop被人所诟病的是,代码丑陋,虽然Hadoop是用高级语言Java写成的,但是里面对每一个步骤都要分成mapper和reducer,这个被戏称为新时代的汇编语言。
  一般来说,做数据分析的人程序都写得不咋地(强哥这样的达人除外),能写写matlab,R,或者spss就差不多了,如果要让他们去写map-reduce,那就等于叫他们别干活了。而大数据的重要的作用就是用来做数据分析,Hadoop的未来发展必须得抓住这群数据分析师的心。
  其实现在已经有一些实验中的产品,让用户可以用高级语言编程,不会再看到丑丑的map-reduce了。我在前公司的时候就与团队一起做了还不错的尝试,至少,数据分析师可以用Python来编程了。map-reduce变成了一个底层的东西,现在不是某些人在分析性能的时候就贴上汇编代码吗,之后可能会变成在前段的程序效率不行的时候,就贴上后端Java的map-reduce程序。
  所以对这个难题之后肯定会解决掉,底层分布式程序开发与用户将被清楚的分开,之后想要写word-count一定会像hello world一样简单。

  Hadoop的未来怎么样?
  http://www.slideshare.net/hortonworks/apache-hadoop-023 (hadoop 0.23)
  给出这样的一个官方文档,谈谈之后的hadoop的发展。目前的hadoop的稳定版是0.20.x,这个0.23是个未来版,估计将在今年的Q4进行beta的发布(目前看起来,至少代码是写了很多了) 。
  HDFS Federation
  首先是一个叫做HDFS Federation的东西,它将hdfs的命名空间进行了扩展,目前的HDFS的所有文件的meta信息都保存在一台机器的内存中,使得HDFS支持的文件数目是有限的,现在进行了这样改动后,将hdfs的命名空间做成了分布式的,对之后方便对不同的用户文件夹进行管理,还有从HDFS的实现上来说,都会更为简单。
Hadoop的未来怎么样?
  下一代的Map-Reduce:
  节点数:从目前的4000增加到6000-10000台
  并发的任务数:从目前的40000增加到100000
  更高级的硬件支持,目前支持的硬件主要是8core, 16G ram, 4T disk, 之后将会支持16+core, 48/96G ram, 24/48T disk
  架构的改变,对现在的JobTracker-TaskTracker的结构做了很大的改进,现在会用ZooKeeper去保存master的状态,避免了之前提到的SPOF
  更多的编程模式的支持(这个很重要)
  比如MPI,迭代程序的处理,并且在Hadoop中运行这些类型的编程模式,并且这些程序将会被Hadoop统一管理。
  总结:
  之前谈了Hadoop的优势、劣势等等,综合来说就是,优势是很明显的(比如这么多牛公司在用,并且也贡献了很多的代码),远远超出了其他的分布式系统,劣势虽然不小,但是改进这些不足的地方是在计划中,已经在实施了。而且Hadoop不仅在学术界或者是工业界,都有很高的地位,综合了这些天时地利人和,那前途还是非常光明的。
Jan 15

 【IT168 专稿】8月29日,2010年系统架构师大会在北京永泰福朋.喜来登大酒店拉开帷幕。本次大会主题是:“企业IT应用最佳实践”,是由IT168联合旗下三大技术社区ChinaUnix、ITPUB、IXPUB主办的继2009年第一届系统架构师大会之后偏重技术经验分享和案例剖析的又一次技术盛宴。据悉,本次技术大会邀请了37位各行各业、国内最顶级的技术专家分享来自企业技术一线的系统架构最佳实践经验。

从商用系统到自主研发
淘宝网技术委员会主席,淘宝网核心工程师章文嵩淘宝网技术委员会主席,淘宝网核心工程师章文嵩

  在8月27日下午,存储与架构分论坛上,淘宝网技术委员会主席,淘宝网核心工程师章文嵩向我们详细介绍了淘宝网图片处理与存储系统的架构。章文嵩博士的演讲日程包括了淘宝的整个系统架构、淘宝图片存储系统架构,淘宝网独立开发的TFS集群文件系统,前端CDN系统以及淘宝网在节能服务器方面的应用和探索。

  本文侧重介绍淘宝网图片处理与访问系统前端的CDN系统架构,有关淘宝网图片存储与处理系统架构的介绍请参考:揭秘淘宝286亿海量图片存储与处理架构

  从商用系统到自主研发

  实际上,淘宝网对CDN系统的要求还是十分严格的,CDN服务的图片规模包括大约250T容量的原图和大约250T容量的缩略图总和;约286亿左右的图片数,平均图片大小是17.45K;8K以下图片占图片数总量的61%,占存储容量的11%

  CDN的部署规模达到22个节点,部署在网民相当密集的中心城市(7月初),每个节点目前处理能力在10G或以上,CDN部署的总处理能力已到220G以上,目前承载淘宝流量高峰时119G,含一些集团子公司的流量。

  淘宝网现有的CDN系统也完全是淘宝自己开发的,最早淘宝也应用过一段商用的CDN产品,选择Netscaler的CDN系统来解决海量小图片访问和读取的问题。使用一段时间后,认为市场普遍的商用产品存在一些性能瓶颈、功能欠缺,并且性能不稳定。面对淘宝网背后如此巨大的图片存储规模,商用系统在整个系统的规模、性能、可用性和可管理性都无法达到要求。

  目前淘宝网自主开发的CDN系统,采用了全新的优化架构,包括CDN监控平台、全局流量调度系统支持基于节点负载状态调度和基于链路状态调度、CDN实时图片删除、CDN访问日志过滤系统、配置管理平台。


  新旧CDN架构平台对比

 

新旧CDN架构平台对比
淘宝网老架构的CDN平台应用Netscaler产品

  图为淘宝网应用Netscaler产品的老架构的CDN平台,背后管理500TB容量,前端缓存空间约1TB左右,命中率较低,因此需要强大的调度策略。

新旧CDN架构平台对比
淘宝网最新的CDN系统架构

  上图为最新的CDN系统架构,全部由淘宝网自己开发,前面介绍过CDN系统的服务规模,包括约250T容量的原图+ 250T容量的缩略图,总计500TB图片存储容量;约286亿左右的图片数,平均图片大小是17.45K;8K以下图片占图片数总量的61%,占存储容量的11%,实际上带给CDN系统极大的挑战。

  CDN部署规模达到22个节点,部署在网民相当密集(具体访问量)的中心城市(7月初),每个节点目前处理能力在10G或以上,部署的总处理能力已到220G以上,目前承载淘宝流量高峰时119G(含一些集团子公司的)。

新旧CDN架构平台对比
新旧两代CDN架构的对比

  上图是淘宝网对新旧2代CDN架构进行对比,新的CDN系统在流量分布均匀性上有了较大改进,所有的频道统一调度到128台squid,而不是将squid按频道分组,可提高命中率2%以上;扩展能力也有了较大提升,在一个VIP上新架构可以扩展到近100G的流量(当然要用万兆网卡);灵活性也有了较大提高,一致性Hash调度方法使得增加和删除服务器非常方便,只有1/(n+1)的对象需要迁移新的CDN架构。除了在可维护性商稍微弱一点,其余的指标全面超出商用的产品。


  Squid节点的改进和优化

  新的CDN在squid节点上也进行了一些改进和优化,包括:

  在COSS存储系统基础上实现了TCOSS,FIFO加上按一定比例保留热点对象,支持1T大小的文件

  Squid内存优化,一台Squid服务器若有一千万对象, 大约节省1250M内存,更多的内存可以用作memory cache。

  用sendfile来发送缓存在硬盘上的对象,加上page cache,充分利用操作系统的特性

  针对SSD硬盘,可以采用DIRECT_IO方式访问,将内存省给SAS/SATA硬盘做page cache

  在Squid服务器上使用SSD+SAS+SATA混合存储,实现了类似GDSF算法,图片随着热点变化而迁移。

  根据淘宝网的资料数据,SSD的存储成本大约是20¥每GB左右,SAS硬盘的存储成本约在 5-6¥每GB,SATA盘的每GB成本不到1¥。随着对应用性能的要求提升,应用SSD是未来的趋势,针对不同硬盘的存取特性进行优化是十分必要的。

  目前在squid节点中的热点迁移采用了两种策略,一种是根据文件大小来定义迁移到哪种磁盘上去。例如较大的文件存放在SATA磁盘,中等大小的文件放在SAS磁盘上,较小的文件存放在SSD磁盘。下图是淘宝网进行自动分层迁移后的性能测试结果,测试环境包括1块SSD硬盘+4块SAS硬盘+SATA硬盘。访问负载状况如下:

Squid节点的改进和优化
第一种迁移策略按文件大小决定存储的磁盘类型,上图中:黑色为SATA,绿色为SSD,红色为SAS,4块SAS硬盘上的访问量总和超过SSD硬盘上的访问量

  另外一种策略则是根据访问热度来决定,最热的文件存放在SSD盘,较热的存放在SAS盘,最冷的文件存放在SATA盘。下图是淘宝网同样在1块SSD硬盘+4块SAS硬盘+SATA硬盘下的测试结果,访问负载状况如下:

Squid节点的改进和优化
第二种迁移策略按访问的热度来进行迁移,其中:黑色为SATA,绿色为SSD,红色为SAS;SSD硬盘上的访问量是4块SAS硬盘上访问量之和的5倍以上,SAS和SATA的硬盘利用率低了很多。


  节点的运行状况

  淘宝网列出了两个代表性节点的运行性能状况。

  节点一由32台DELL R710服务器构成,逻辑结构包括2LVS+32Haproxy+64Squid构成,于12月21日上线运行。

  以下是该节点的运营状况:

  节点二由30台DELL PowerEdge 2950服务器构成,逻辑结构包括:2LVS + 30Haproxy + 60 Squid,于2010年5月上线运行。以下是该节点的理论运行状况:


  淘宝CDN的发展方向

  淘宝网未来的CDN发展方向针对研发、运维和CDN建设有不同的要求。

  从CDN的研发和运维上,未来淘宝CDN将:

  –针对教育网的CDN解决方案,广大校园用户将能体会到更高的访问速度和性能

  –动态页面加速,节点间应用级路由

  –持续提高节点性能(应用软件、操作系统等)

  –优化GTM全局调度系统

  –持续提高CDN系统可运维性,完善CDN内容管理系统

  此外,淘宝CDN建设的思路也有一些调整和改变,建设思路正在转向“部署更多的小节点,尽可能离用户近一些”的方向,同时会更加强调定制化和快速部署 。

Tags:
Pages: 2/60 First page Previous page 1 2 3 4 5 6 7 8 9 10 Next page Final page [ View by Articles | List ]