Hadoop和大数据是这两年最火的词儿们之一,愈来愈多的公司对这个东西感兴趣,可是我接触到的大多数公司里的人,不管是技术人员仍是老板。都不知道怎么能把这些东西用于改善本身公司的业务。在解答的过程当中,提炼出几个要点,记录一下。程序员
大数据和云是否是一回事?算法
这是最容易混淆的概念之一,我我的认为这是两回事,云服务,不管是云主机仍是云存储仍是云的其余应用,都是向用户提供一个接口,但这个接口的后端是虚拟机技术,或者分布式存储技术,或者其余分布式计算技术等等。简而言之,云的概念就是我向你提供服务,而你不须要关心这种服务的架构或者技术实现有多么复杂。打个比方,就好象是,云以前的时代咱们要用电,就须要本身造一个电厂发电,造机组,造变电站,而后再去用它。而云服务就好象是别人搭好了一个电厂,电线直接进你家,你要用,只须要插上插头,不须要关心电是怎么被制造出来的。电力的生产和电力设备的维护都由国家电网承担。联系到网络方面,就是,咱们之前要本身买服务器,本身装系统,本身上架,本身作负载均衡,本身维护软硬件环境。有了云以后,这些都经过云服务商的虚拟机技术完成了。数据安全和网络安全都由云服务商提供,你也不须要专门请人维护一堆设备。数据库
而说到大数据,这个能够是基于云的,也能够是不基于云的。大数据的处理技术与提供云服务的技术是不尽相同的,可是又有所交集。能够说,云服务是基础设施,是市政工程,而大数据是城市里的高楼大厦。大数据能够基于云,也能够不基于云。后端
从技术角度上说,国内的大多数云服务商,主要提供的是虚拟机服务,这是一种分的概念,把一台物理服务器拆成多个虚拟的小服务器,尽量多的使用其物理资源,避免浪费。而大数据是合的思想,是把不少台服务器合并成一个虚拟的巨型服务器,经过分配计算资源使数据能够快速的为生产力服务。用一句中国的老话形容大数据和Hadoop就是:三个臭皮匠顶个诸葛亮。用合并起来的计算资源超越小型机或者中型机的计算能力。这里面固然也有云的概念存在着,就是说,你不须要关心数据的存储和计算究竟是怎么完成的,你只须要用就能够了。安全
大数据技术是否是必定须要数据量大才能够,数据量不大就不须要用?服务器
一般是这样认为的,可是并不绝对,计算维度大,计算过程复杂也均可以认为是大数据。换句话说,就是,若是你所须要的数据,在你所须要的时间内没法正常计算出来,你可能就须要用到大数据的技术了。网络
一方面,你的数据须要的存储量超过数据库或者数据仓库的能力范围,你可能须要大数据技术;另外一方面,你的计算量超过传统的数据处理手段的时效性能力范围以外,你也可能须要大数据技术。而典型的计算能力的挑战就是来自于数据挖掘和多维度分析。可能数据量不大,可是算法和过程很复杂,也可能会须要大数据的技术。好比对用户作推荐,基于用户群的分类作精准的广告投放。或者在传统行业计算气象预报,计算地质数据作石油探测,矿产探测。又或者用在金融行业,经过对历史数据创建数学模型,对证券和期货贷款等作风险预估。之因此阿里巴巴对于中国的经济和进出口的预测比商务部和统计局更精准,除了他们有一群数学和统计专家外,大数据是彻底不可或缺的技术手段。架构
大数据技术是否是就是那个什么憨杜普?负载均衡
显然不是,大数据领域存在不少厂商和应用,有开源的,有收费的。好比一些非Hadoop大数据处理的公司和软件,EMC的Greenplum,Splunk公司的splunk等等。这些都不是基于Hadoop的,可是也有共同的缺陷,就是很贵。因此,大多数公司采用开源软件来完成大数据的业务处理。而开源领域作得最好的,应该就是hadoop了。因此如今hadoop基本成了大数据处理的代名词了。基于Hadoop衍生了不少家商业公司,由于Apache的许可协议并不拒绝商业。像国内比较知名的Cloudera,MapR,他们的商业产品都是基于Hadoop及其周边的生态软件。分布式
大数据应该怎么推动公司业务的发展?
这是个关乎想象力的事情,有了大容量和大计算,至于怎么用,这只能本身想。原来数据怎么作如今还怎么作,不过除了啤酒与尿布,口香糖与避孕套以外,还有一个比较生动的案例大约是这样的:美国有一个公司,在各产粮区每隔一英里插一个传感器,收集空气湿度和土壤含氮量等数据。收集上来之后经过大数据的处理手段和算法,预测出该地区的收成可能会是什么状况,而后把预测报告卖给美国的农业保险公司。
Hadoop有什么优缺点?
Hadoop的优势是数据的容量和计算能力以及数据的备份安全性有了很大程度的提高,1.0最大能够支持到大约4000台服务器的并行存储和运算,而2.0大约能够支持6000台服务器。不过2.0如今还不是很完善,因此生产环境仍是建议用1.0。我认为4000台集群的容量和计算能力足以匹敌IBM的大型机,从去年12月15号的中国银行大型机宕机事件来看。大型机就算安全性再有保障,也毕竟是单点。真出了故障,谁也不敢拍板切换到备份大型机上。Hadoop 1.0已经有了不少方案去解决单点问题,2.0本身就支持单点故障切换。或许将来继续发展,将全面超越大型机。事实上,IBM已经开始出本身的Hadoop发行版了。
至于缺点,就是Hadoop1.0仍是存在单点问题,可是能够经过其余技术手段弥补作到热切换,只是要求维护人员的技术水平较高。另一个缺点是计算的时间会比较长,还没法作到实时查询和快速决策响应。可是有不少其余的方案在弥补Hadoop的这个问题,像Apache出的跟Google Dremel竞争的Drill,Cloudera推出的Impala,和其余一些产品。而实时计算则有Twitter开源的Storm集群,设计理念跟Hadoop是同样的,可是能够对实时数据流进行计算,并即刻生成计算结果。作到随查随出。
在各个开源社区的支持下,在全世界程序员的共同努力下,大数据的处理能力也在高速的发展,程序员们正在用本身的智慧改造这个世界。