Spark是一种快速、通用、可扩展的大数据分析引。基于内存计算。到目前为止,已经发展成为一个完善的生态系统,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等组件。
Spark类似于MapReduce,基于MapReduce实现分布式计算,拥有MapReduce拥有的所有优点,并且Spark中的Job的运行结果可以保存在内存中,不需要读取HDFS,非常的方便快捷。
Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态圈,弥补MapReduce的不足
1. 快,与Hadoop的Map Reduce相比,Spark基于内存运算快了100倍以上,基于硬盘快了10倍以上,实现了搞笑的DAG引擎,可以基于内存高效的处理数据流
2. 易用,Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便的在这些shell中使用Spark集群来验证解决问题的方法
3. 通用,Spark提供了同意的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。
4.兼容性,Spark可以非常方便的与其他的开源产品进行融合,比如,Spark可以使用Hadoop的YARN和Apache Mesos作为他的资源管理和调度器。并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark。此外,Spark还提供了在EC2上部署Standalone的Spark集群的工具。
1. 官网地址
http://spark.apache.org/downloads.html
2. 创建目录 mkdir /opt/bigdata
3. 上传并解压 tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz
4. 重命名目录 mv spark-2.0.2-bin-hadoop2.7 spark-2.0.2
5.修改配置文件 cd /opt/bigdata/ spark-2.0.2/conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
#配置java环境变量(不要怂,直接添加以下内容)
export JAVA_HOME=/opt/bigdata/jdk1.7.0_67
#指定spark老大Master的IP
export SPARK_MASTER_HOST=node02
#指定spark老大Master的端口
export SPARK_MASTER_PORT=7077
保存并退出,
cp slaves.template slaves
vim slaves(添加集群DataNode节点信息)
6. 集群所有的虚拟机都要配置,当然你可以发送
scp -r /opt/bigdata/ spark-2.0.2 node03:/opt/bigdata
7. 主节点配置spark环境变量,并生效
export SPARK_HOME=/opt/bigdata/spark-2.0.2
export PATH=$PATH:$SPARK_HOME/bin
8. 开心的启动spark(关闭)
/opt/bigdata/spark-2.0.2/sbin/start-all.sh
/opt/bigdata/spark-2.0.2/sbin/stop-all.sh
启动成功后可以通过http://主节点:8080访问web界面
史上最详细的spark运行过程讲解