问题1:SPARK与HADOOP之间的关系?
spark是一种高效处理hadoop分布式数据的处理引擎。借助hadoop的yarn框架,spark就可以运行在hadoop集群中。同时spark也可以处理存储在hdfs、Hbase、Cassandra、hive和所有存储在hadoop中的数据。spark可以采取类似于hadoop的mapreduce的方式处理一般数据,也可以采取stream的方式处理流式数据。
问题2:SPARK支持的开发语言?
spark支持scala、java和python三种语言。
问题3:SPARK目前可以支持多大的集群?
目前已知的spark最大集群节点数已经超过1000台。
问题4:SPARK中已经缓存的数据不适合存储在内存时,spark如何处理?
spark将数据序列化到磁盘中或者spark重新计算内存中的数据。默认情况下,spark采取重新计算的方式,即每次请求内存中的数据时,spark都是重新从磁盘中读取数据到内存,然后重新计算。可以通过修改storage level级别来修改处理方式(默认为MEMORY_AND_DISK)
问题5:spark如何在集群中执行?
如果集群中每个节点中都存在JAVA执行环境,那么也可以执行纯spark程序。如果你需要在Amazon EC2环境中执行spark程序,那么就需要在每个节点执行EC2 脚本。如果目前没有集群环境,那么可以通过local参数执行单机模式。local[n]中的n代表的是CPU核数,这个n也可以理解成spark并行执行数。
问题6:执行spark时一定需要存在hadoop环境么?
如果你不需要在集群环境中执行,那么就不需要hadoop环境。如果你需要执行集群环境,那么你需要搭建一下共享文件系统(NFS文件系统也可以的)。
问题7:学习spark有好资源么?
可以访问http://www.artima.com/scalazine/articles/steps.html做个入门,同时在apache也有一个 Scala tutorial for Java programmers和 Programming in Scala.如果你有JAVA开发经验和其他脚本开发经验,那么将程序迁移到scala中就很容易了。spark目前提供JAVA、scala和python三种API。