zoukankan      html  css  js  c++  java
  • Spark:安装和简单应用

    介绍

    spark是一个用来快速且通用的集群计算平台,使用scala开发,运行于jvm之上。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性。Spark适用于各种各样原先需要多种不同的分布式平台实现的场景,包括批处理、迭代计算、交互式查询、流处理等。

    image-20210208171705206

    下载安装

    前提:安装jdk(不再赘述)

    下载spark-2.4.7-bin-hadoop2.7.gz

    mv spark-2.4.7-bin-hadoop2.7.gz /opt
    cd /opt
    tar -zxvf spark-2.4.7-bin-hadoop2.7.gz
    mv spark-2.4.7-bin-hadoop2.7 spark
    cd spark
    sbin/start-all.sh
    jps -l
    

    image-20210208171534267

    发现多出来spark的worker和master,分别代表工作节点和主节点 。

    我们可以通过http://ip:8080端口查看master运行状况:

    image-20210208172304356

    简单使用

    启动spark

    bin/spark-shell --master spark://localhost:7077
    

    image-20210208172502960

    下面简单介绍它的基本使用:对文本内容的单词统计

    scala> val rdd = sc.textFile("/opt/spark/bin/spark-shell")
    scala> val wordmap = rdd.flatMap(_.split(" ")).map(x=>(x,1))
    scala> val wordreduce = wordmap.reduceByKey(_+_)
    scala> wordreduce.take(10)
    

    image-20210208172955350

    1.首先通过SparkContext(Spark在启动的时候自动创建一个SparkContext对象,叫做sc的变量)的textFile()方法读取文件

    2.然后使用split()方法按照空格进行分词,之后又通过flatMap()方法对处理后的单词进行展平,展平之后使用map(x=>(x,1))对每个单词计数1

    3.reduceByKey(_+_)根据单词进行技术,这个过程是一个Shuffle过程

    4.使用take(10)方法获取前面10个单词的统计结果

    如果想看到单词出现次数前10的内容:

    scala> var wordsort = wordreduce.map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))
    scala> wordsort.take(10)
    

    image-20210208173651867

    1.使用map(x=>(x._2,x._1))对单词统计结果的键和值进行互换,然后通过sortByKey(false)降序排序,然后map(x=>(x._2,x._1))将键和值互换

    4.使用take(10)方法获取前面10个单词的统计结果

  • 相关阅读:
    weui-switch开关控件,表单提交后如何取值
    [转]判断存储过程、触发器、视图是否存在并删除
    修改服务器的3389端口
    如何在react-native 中优雅的使用 redux
    react native js 与 native 的通信与交互方式
    对 JS virtual DOM 的一知半解
    Python的实例方法,类方法,静态方法之间的区别及调用关系
    redux 管理你的 react 应用
    react- native 入门
    git 指南
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/14389768.html
Copyright © 2011-2022 走看看