• Spark学习(一) -- Spark安装及简介


    标签(空格分隔): Spark


    学习中的知识点:函数式编程、泛型编程、面向对象、并行编程。

    任何工具的产生都会涉及这几个问题:

    1. 现实问题是什么?
    2. 理论模型的提出。
    3. 工程实现。

    思考: 数据规模达到一台机器无法处理的时候,如何在有限的时间内对整个数据集进行遍历及分析?

    Google针对大数据问题提出的一些解决方案:

    • MapReduce: 计算框架;
    • GFS:数据存储
    • BigTable:NoSQL始祖。

    Hadoop是根据MapReduce和GFS两大论文所做的开源实现,因此,它主要解决2大问题:数据存储分布式计算框架
    Hadoop生态圈

    YARN是Hadoop2和Hadoop1的最大区别,将集群管理本身独立出来。而计算模型则更加专注于问题本身。

    Spark简介

    Spark是由UC Berkeley的AMPLab出品的,主要创作者是Matei Zaharia. Spark与MapReduce位于Hadoop生态圈的同一层,主要解决分布式计算框架的问题。

    Spark与Hadoop有以下关系:

    1. Spark和Hadoop中的MapReduce位于同一层次;
    2. Spark可以部署在YARN(专门管理集群工作的)上;
    3. Spark支持HDFS文件系统的访问。

    Mac Scala安装

    1. 使用brew安装:

      brew install scala

    2. 下载包安装

      tar zxvf ~/Download/scala-2.12.1.tgz #解压
      mv ~/Download/scala-2.12.1 ~/Download/scala #重命名
      mv ~/Download/scala /usr/local/share/ #将文件夹放到合适的位置

      修改环境变量,如果不是管理员可使用 sudo 进入管理员权限,修改配置文件profile,在文件的末尾加入:
      export PATH="$PATH:/usr/local/share/scala/bin"

    3. 验证

      $ scala
      显示:Welcome to Scala version 2.11.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).
      Type in expressions to have them evaluated.
      Type :help for more information.

    Mac Spark安装

    1. 使用brew安装

      $ brew install apache-spark

    2. 检测是否安装成功

    • cd /usr/local/Cellar/apache-spark/1.3.0/bin/
    • 输入:./spark-shell 启动spark

    WordCount in spark-shell

    在spark-shell中完成单词统计:

    val file = sc.textFile("/usr/local/Cellar/apache-spark/1.3.0/README.md")
    // 以空格为拆分标志,将文件中的每一行分割为多个单词
    val words = file.flatMap(line => line.split(" "))
    // 对每一个单词进行计数
    val wordNumber = words.map(w => (w, 1))
    // 将单词进行分类合并,计算每个单词总的出现次数
    val wordCounts = wordNumber.reduceByKey(_+_)
    //将所有单词及其出现次数打印出来
    wordsCounts.foreach(println)
    

    上述工作的简单表述形式:

    sc.textFile("/usr/local/Cellar/apache-spark/1.3.0/README.md")
    .flatMap(line => line.split(" "))
    .map(w => (w, 1))
    .reduceByKey(_+_)
    .foreach(println)
    
  • 相关阅读:
    Python 爬虫入门(一)
    Dubbo、Zookeeper集群搭建及Rose使用心得(二)
    Dubbo、Zookeeper集群搭建及Rose使用心得(一)
    JAVA 加密算法初探DES&AES
    Android 蓝牙模块基础操作
    IntelliJ IDEA 使用随笔
    Maven+SSM框架实现简单的增删改查
    记录一次bug解决过程:数据迁移
    SSM框架+Plupload实现断点续传(Spring+SpringMVC+MyBatis+Plupload)
    JAVA开发环境
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/6238847.html
Copyright © 2020-2023  润新知