Spark 学习 从零开始

Spark 简介 从零开始

Spark是什么
  spark是一个快速且通用的集群计算平台

Spark是快速的
   Spark扩充了流行的Mapreduce计算模型
   Spar是基于内存的计算  
Spark是通用的
   Spark的设计容纳了其它分布式系统拥有的功能
   批处理,迭代式计算,交互查询和流处理等
   优势:下降了集群的维护成本
Spark是高度开放的
   Spark提供了Python,Java Scala,SQL的API和丰富的内之库。
   Spark和其它的大数据工具整合的很好,包括hadoop,kafka等




Spark的组件

Spark Core   
    包括Spark的基本功能,包括任务调度,内存管理,容错机制等。
    应用场景,为其余组件提供底层的服务
Spark SQL:
    是Spark处理结构化数据的库,就像Hive SQL,Mysql同样。
    应用场景,企业中用来作报表统计。    
Spark Streaming:
    实时数据流处理组件,相似Storm。    
    Sparm Streaming提供了API来操做实时流数据。
    应用场景,企业中用来从kafka接受数据作实时统计。
Mlib:    
    一个包含通用机器学习功能的包,Machine learning lib。
    包含分类,聚类,回归等,还包含模型评估,和数据导入。
    MLlib提供的上面这些方法,都支持集群上的横向扩展。
    应用场景,机器学习。
Graphx:
    是处理图的库(例如,涉及网络图),并进行图的并行计算。
    像Spark Streaming,Spark SQL同样,它也继承了RDD API。
    它提供了各类图的操做,和经常使用的图算法,例如PangeRank算法。
    应用场景,图计算。
Cluster Managers:
    就是集群管理,Spark自带一个集群管理是单独调度器。
    常见的集群管理包括Hadoop YARN,Apache Mesos    


紧密集成的优势:
    Spark底层优化了,基于Spark底层的组件,也获得了相应的优化。
    紧密集成,节省了各个组件使用时的部署,测试时间。
    向Spark增长新的组件时,其它组件,可当即享用新组件的功能。

--------------------------------------------------------------

Spark与Hadoop的比较    
Hadoop应用场景
    离线处理
    对时效性要求不高
Spark应用场景
    实时性要求高的场景
    机器学习等领域

比较
Doug Cutting的观点
    这是生态系统,每一个组件都有其做用,各善其职便可
    Spark不具备HDFS的存储能力,要借助HDFS等持久化数据。
    大数据将会孕育出等多的新技术        

--------------------------------------------------------------    
Spark安装

Spark运行环境:
    Spark是Scala写的,运行在JVM上,因此运行环境Java7+。
    若是使用Python API,须要安装Python2.6+或者Python3.4+。
    Spark 1.6.2 -Scala2.10  Spark 2.0.0 -Scala 2.11


Spark下载:
    下载地址:http://spark.apache.org/downloads.html
    搭Spark不须要Hadoop,若有Hadoop集群,可下载相应的版本。
    解压
html

也能够在linux上经过wget命令下载linux

 

 

 而后直接进行解压算法

 

 

Spark目录:
    bin包含了用来和Spark交互的可执行文件,如Spark shell.
    core,streaming,pytho,...包含主要组件的源代码。
    examples包含了一些单机Spark job,你能够研究和运行这些例子。sql

 

 

 

Spark的shell:
    Spark的shell使你可以处理分布在集群上的数据。
    Spark把数据加载到节点的内存中,所以分布式处理可在妙级完成。    
    快速的迭代式计算,实时查询、分析通常可以在shell中完成。
    Spark提供了Python shells和Scala shells。

Python Shell:
    bin/pyspark
    例如:./pyspark
    退出:exit();
Scala Shell:
    bin/spark-shell    

例子:    
    val lines = sc.textFile("../../testfile/")
    lines.count()     当前条数
    lines.first          第一行
    修改日志级别 log4j.rootCategory = WARN,console
    目录conf/log4j.propertiesshell

 

--------------------------------------------------------------    

Spark开发环境搭建
Scala安装
  下载地址: http://www.scala-lang.org/download/2.10.5.html
  默认安装选项会自动配置环境变量。
  Spark 1.6.2  -Scala2.10  Spark 2.0.0  -Scala 2.11apache

 

Intellij IDEA的下载,安装:网络

  下载地址:http://www.jetbrains.com/idea/dom

  注册码地址: http://idea.lanyus.com

插件安装ssh

  plugins,搜索Scala直接安装,插件中有scala和sbt.

步骤   机器学习

  在Intellij中点击File,选择settings,而后点击plugins,在弹出的右面的搜索框中输入scala,而后找到直接点击下载就能够。

 

 开发第一个Spark程序

配置ssh无密登陆:

  ssh-keygen

       .ssh目录下 catxxx_rsa.pub > authorized_keys

  chmod 600 authorized_keys

 

 

Spark开发环境搭建

搭建开发环境常遇到的问题:

  网络问题,致使sbt查询加载失败,解决方法,好的网络环境

  版本匹配问题 Scala2.10.5 , Jdk1.8 , Spark1.6.2, Sbt0.13.8

 

开发第一个Spark 程序

 新建好的scala项目以下

File -> new  -> Project.. -> 选择Scala 右面的SBT选项  Next

如图

 

 

 

如图所示 红框中指明 Spark-core 版本号,点击上面的刷新,而后自动下载

开始写入程序如图

 

打包:

  配置jar包

  build

File  - > Project Structure...  -> Artifacts ->点击+号 -> JAE -> From modules with dependencies...  -> 选择项目名 指明要打包的代码

如图所示 配置jar包成功

而后开始buld

Build -> Build Artifact... ->build

 

打包提交以前须要启动集群

进入 /usr/local/xiaoma/spark/spark-2.2.0-bin-hadoop2.6/sbin

启动集群:

  启动master ./sbin/start-master.sh

  启动worker ./bin/spark-class

  提交做业 ./bin/spark-submit

例如:

1. 启动master

././bin/start-master.sh

2.启动worder

./bin/spark-class org.apache.spark.deploy.worker.Worker spark://localhost.localdomain:7077

http://www.imooc.com/video/143953.提交做业./bin/spark-submit --master spark://localhost.localdomain:7077 --class WordCount /home/mainxia/soft/wordcount.jar

相关文章
相关标签/搜索