SPARK初学

Spark 介绍
行业广泛使用Hadoop来分析他们的数据集。原因是Hadoop框架基于一个简单的编程模型(MapReduce),它支持可扩展,灵活,
容错和成本有效的计算解决方案。这里,主要关注的是在处理大型数据集时在查询之间的等待时间和运行程序的等待时间方面保持速度。
Spark由Apache Software Foundation引入,用于加速Hadoop计算软件过程。

对于一个普遍的信念,Spark不是Hadoop的修改版本,并不是真的依赖于Hadoop,因为它有自己的集群管理。 

Spark以两种方式使用Hadoop - 一个是存储,另一个是处理。由于Spark具有自己的集群管理计算,因此它仅使用Hadoop进行存储。
Apache Spark是一种快速的集群计算技术,专为快速计算而设计。它基于Hadoop MapReduce,它扩展了MapReduce模型,
以有效地将其用于更多类型的计算,包括交互式查询和流处理。
Spark的主要特性是它的内存中集群计算,提高了应用程序的处理速度。

1.Apache Spark的特性:
   a.速度:在迭代循环的计算模型下,内存spark比Hadoop快100倍,在磁盘运行spark比hadoop快10倍;
   b.易用性:spark提供多种语言的API,如Java、Python、Scala、R、SQL等
   c.扩展性:在spark RDD基础上,提供一整套的分析计算模型:spark SQL、spark Stresaming、spark MLLib和图计算;
   d.运行: spark支持在Hadoop, Apache Mesos, Kubernetes, standalone, or in the cloud.
  
2.Spark的组件:
	1)Apache Spark Core
	Spark Core是spark平台的基础通用执行引擎,所有其他功能都是基于它在外部存储系统中提供内存计算和引用数据集。
	
	2)Spark SQL
	Spark SQL是Spark Core之上的一个组件,它引入了一个称为SchemaRDD的新数据抽象,它为结构化和半结构化数据提供支持。
	

	3)Spark Streaming
	Spark Streaming利用Spark Core的快速调度功能来执行流式分析。它以小批量获取数据,并对这些小批量的数据执行RDD(弹性分布式数据集)转换。
	

	4)MLlib (Machine Learning Library)
	MLlib是Spark之上的分布式机器学习框架,因为基于分布式内存的Spark架构。根据基准,它是由MLlib开发人员针对交替最小二乘法(ALS)实现完成的。 
	Spark MLlib是基于Hadoop磁盘的Apache Mahout版本的9倍(在Mahout获得了Spark接口之前)。
	
	5) GraphX
	GraphX是Spark上的一个分布式图形处理框架。它提供了一个用于表达图形计算的API,可以通过使用Pregel抽象API为用户定义的图形建模。它还为此抽象提供了一个优化的运行时。

3.Spark RDD 弹性分布式数据集(简单了解)
   弹性分布式数据集(RDD)是Spark的基本数据结构。
   它是一个不可变的分布式对象集合。 RDD中的每个数据集划分为逻辑分区,可以在集群的不同节点上计算。 
   RDD可以包含任何类型的Python,Java或Scala对象,包括用户定义的类。
   有两种方法来创建RDD  1)并行化驱动程序中的现有集合 2)引用外部存储系统中的数据集

4.MapReduce中的数据共享及迭代操作与Spark RDD中的数据共享及迭代操作相同

Spark多种运行模式:
	Local模式
	Cluster模式 :standalone,Yarn,Messos(国内很少用)
5.spark的Local模式:
   0).版本选型:spark2.1.2。依赖scala2.11.8
   1).下载spark2.1.2.tar.gz
   2).解压安装:
      $>cd /home/crx/soft/
  $>cp /mnt/hgfs/2.安装环境/download/apache-spark/spark-2.1.2-bin-hadoop2.7.tgz .
      $>tar -zxvf spark-2.1.2-bin-hadoop2.7.tgz 
  $>ln -s spark-2.1.2-bin-hadoop2.7 spark
   3).配置环境变量
      修改【~/.bash_profile】,在文件尾部追加以下内容:
        #spark install
		export SPARK_HOME=/home/crx/soft/spark
		export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
  $>source ~/.bash_profile
   4).至此,单机版搭建完成!
      $>spark-shell
      访问WebUI:HTTP://master:4040

   Spark context Web UI available at http://192.168.179.130:4040
       Spark context available as 'sc' (master = local[*], app id = local-1558318902046).
   sc:代表 Spark context上下文对象
   master:本地模式   
       local[*]:开启线程数
       $>spark-shell local[4]        --->spakr并行处理4个线程,可以理解为4个节点同时在运行,
	                                     用线程的方式模拟集群运行 默认并行度是1
       $>spark-shell --master local[3]

   Spark session available as 'spark'.
   spark:spark会话对象,用来操作sparkSQL的对象
   
   
   $>spark-shell scala操作:
	scala> 1+3
	res0: Int = 4

    5):quit 退出
        通过另外窗口查看单击启动的spark进程 jps


查看自带的案例:
$> cd ~/soft/spark/examples/src/main/scala/org/apache/spark/examples/ 
 
$> cat SparkPi.scala 

运行spark自带案例 10:代表开10个线程去算

source ~/.bash_profile
$> run-example SparkPi 10
Pi is roughly 3.1392631392631394
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值