首页 > 代码库 > spark热点互动问答
spark热点互动问答
[Spark亚太研究院 决战云计算大数据时代 100期公益大讲堂 互动问答]
Q1:我想问,hdfs的namenode挂了,怎么处理?
使用ZooKeeper;
使用Mesos;
使用Yarn;
Q2:用python和scala区别大吗?
就代码的风格而言是不大的;
世界上也有很多人使用python开发Spark程序;
但是最为推荐的是Scala,因为Spark框架是用Scala编写的,在API方面对Scala的支持也是最好的;
Q3:对几百T的数据,现在SPARK支持得如何?
Spark能够非常好的处理几十T或者几百T的数据;
正如Spark能够轻松处理PB级别的数据;
Q4:可以结果直接输出到关系型数据库吗?
目前不可以;
一般都是把结果直接输出到HDFS上;
让后在采用Sqoop等工具把数据导入到Oracle、MySQL等数据库中;
Q5:SPARK环境需要哪些? 除了HDFS基础,有SPARK集成包么?
Spark的安装需要Hadoop的HDFS;
Spark有自己的集成包,但是依旧需要HDFS的配合;
同时Spark也可以部署到亚马逊云上;
Q6:spark的缺点是什么?不适合做什么?
目前主要的缺点是对数据细粒度的支持不够好;
Q7:spark sql可以代替hive和hbase吗?
Spark SQL可以取代Hive;
Spark SQL可以完成HBase的大部分功能;
Spark Streaming配合Spark SQL可以取代HBase;
Q8:没有java基础可否直接看scala语言?
可以直接看Scala语言
Q9:目前那些行业在用spark处理大数据?
Spark技术在国内外的应用开始越来越广泛,它正在逐渐走向成熟,并在这个领域扮演更加重要的角色。国外一些大型互联网公司已经部署了Spark。例如:一直支持Hadoop的四大商业机构(Cloudera、MapR、Hortonworks、EMC)已纷纷宣布支持Spark;Mahout前一阶段也表示,将不再接受任何形式以MapReduce实现的算法,同时还宣布了接受基于Spark新的算法;而Cloudera的机器学习框架Oryx的执行引擎也将由Hadoop的MapReduce替换成Spark;另外,Google也已经开始将负载从MapReduce转移到Pregel和Dremel上;FaceBook也宣布将负载转移到Presto上……
Yahoo!、淘宝、优酷土豆、网易、百度、腾讯等国内大型知名企业已经在商业生产环境下开始使用Spark技术;Intel、IBM、Linkin、Twwitter等国外大型知名企业也都在大力支持Spark。随着这些国内外大企业的使用,Spark技术的发展必然势不可挡,行业普及很快就会到来。
Q10: groupbykey是排好序的吗?分组排序 怎么实现?
groupByKey在一个由(K,V)对组成的数据集上调用,返回一个(K,Seq[V])对的数据集,所以是没有排序的;
要想分组排序,首先要使用groupByKey完成分组功能,然后使用sortWith这个函数对指完成排序实现;
完整代码如下所示:
Q11:spark 会替代Hadoop 吗?
Hadoop在云计算大数据发展的早期做出了卓越的贡献,其MapReduce模型极大的简化了海量数据的分析。随着大数据多重处理例如迭代计算、机器学习、图计算等和低延迟交互式查询的需求爆发式的增长,Hadoop在架构的先天缓慢性导致了其无法满足人们在处理大数据时候的复杂计算和快速响应,Spark应运而生。
Hadoop的HDFS已经成为大数据存储的实施标准,例如淘宝内部有多带大数据处理系统,但是存储系统统一采用HDFS,其HDFS集群规模超过5000台,现在的Spark一般情况下都是从HDFS上获取数据并把计算后的数据交给HDFS。
Yarn这个资源管理框架也正在成为事实的群集资源管理标准,极大的简化了多套系统下资源的管理和数据的共享。
Spark会取代Hadoop的计算框架MapReduce,现在Hadoop的世界上最知名的四大发行商都正在由MapReduce转向Spark。
Spark会成为大数据时代通用的计算平台。
Q12:spark做大规模高性能数值计算可以吗?
Spark是高性能计算目前最佳的选择大数据计算平台;
Spark的内存计算、快速迭代、DAG等都为大规模高性能数值计算提供了天然优势;
尤其值得一提的Spark框架的编写使用Scala,应用程序开发也主要是Scala,而Scala是分布式多核编程的核心语言,其Function编程模型、Actor和并发的能力让大规模高性能数值计算如虎添翼;
Spark配合Tachyon可以极大的提升大规模高性能数值计算的效率;
Q13:一个worker上会有多个executor?executor个数是一个app一个吗?还是只有一个?
一个Worker会有多个executor,一个executor会运行多个task;
一个executor只能为一个app实例服务,一个app可以有多个executor;
Executor的配置要根据硬件和app处理的数据进行适当调优;
Q14:只有一台机器能学习吗?
只有一台机器学习Spark是没有问题的;
在一台机器上,可以使用local模式运行spark程序;
在一台机器上也可以通过VMware等虚拟机机制虚拟出多台Linux机器,从而在多台机器上搭建集群;