• 新闻实时分析系统 Spark2.X环境准备、编译部署及运行


    1.Spark概述

    Spark 是一个用来实现快速而通用的集群计算的平台。

    在速度方面, Spark 扩展了广泛使用的 MapReduce 计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理。 在处理大规模数据集时,速度是非常重要的。速度快就意味着我们可以进行交互式的数据操作, 否则我们每次操作就需要等待数分钟甚至数小时。

    Spark 的一个主要特点就是能够在内存中进行计算, 因而更快。不过即使是必须在磁盘上进行的复杂计算, Spark 依然比 MapReduce 更加高效。

    2.Spark生态系统

     

    3.Spark学网站

    1)databricks 网站

    2)spark 官网

    3)github 网站

    4.Spark2.x源码下载及编译生成版本

    1)Spark2.2源码下载到bigdata-pro02.kfk.com节点的/opt/softwares/目录下。

    解压

    tar -zxf spark-2.2.0.tgz -C /opt/modules/

    2)spark2.2编译所需要的环境:Maven3.3.9和Java8

    3)Spark源码编译的方式:Maven编译、SBT编译(暂无)和打包编译make-distribution.sh

    a)下载Jdk8并安装

    tar -zxf jdk8u11-linux-x64.tar.gz -C /opt/modules/

    b)JAVA_HOME配置/etc/profile

    vi /etc/profile

    export JAVA_HOME=/opt/modules/jdk1.8.0_11

    export PATH=$PATH:$JAVA_HOME/bin

    编辑退出之后,使之生效

    source /etc/profile

    c)如果遇到不能加载当前版本的问题

    rpm -qa|grep jdk

    rpm -e --nodeps jdk版本

    which java 删除/usr/bin/java

    d)下载并解压Maven

    下载Maven

    解压maven

    tar -zxf apache-maven-3.3.9-bin.tar.gz -C /opt/modules/

    配置MAVEN_HOME

    vi /etc/profile

    export MAVEN_HOME=/opt/modules/apache-maven-3.3.9

    export PATH=$PATH:$MAVEN_HOME/bin

    export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=1024M -XX:ReservedCodeCacheSize=1024M"

    编辑退出之后,使之生效

    source /etc/profile

    查看maven版本

    mvn -version

    e)编辑make-distribution.sh内容,可以让编译速度更快

    VERSION=2.2.0

    SCALA_VERSION=2.11.8

    SPARK_HADOOP_VERSION=2.5.0

    #支持spark on hive

    SPARK_HIVE=1

    4)通过make-distribution.sh源码编译spark

    ./dev/make-distribution.sh --name custom-spark --tgz -Phadoop-2.5 -Phive -Phive-thriftserver  -Pyarn

    #编译完成之后解压

    tar -zxf spark-2.2.0-bin-custom-spark.tgz -C /opt/modules/

    5.scala安装及环境变量设置

    1)下载

    2)解压

    tar -zxf scala-2.11.8.tgz -C /opt/modules/

    3)配置环境变量

    vi /etc/profile

    export SCALA_HOME=/opt/modules/scala-2.11.8

    export PATH=$PATH:$SCALA_HOME/bin

    4)编辑退出之后,使之生效

    source /etc/profile

    6.spark2.0本地模式运行测试

    1)启动spark-shell测试

    ./bin/spark-shell

    scala> val textFile = spark.read.textFile("README.md")

    textFile: org.apache.spark.sql.Dataset[String] = [value: string]

     

    scala> textFile.count()

    res0: Long = 126

     

    scala> textFile.first()

    res1: String = # Apache Spark

     

    scala> val linesWithSpark = textFile.filter(line => line.contains("Spark"))

    linesWithSpark: org.apache.spark.sql.Dataset[String] = [value: string]

     

    scala> textFile.filter(line => line.contains("Spark")).count() // How many lines contain "Spark"?

    res3: Long = 15

    2)词频统计

    a)创建一个本地文件stu.txt

    vi /opt/datas/stu.txt

    hadoop  storm   spark

    hbase   spark   flume

    spark   dajiangtai     spark

    hdfs    mapreduce      spark

    hive    hdfs    solr

    spark   flink   storm

    hbase   storm   es     

    solr    dajiangtai     scala

    linux   java    scala

    python  spark   mlib

    kafka   spark   mysql

    spark   es      scala

    azkaban oozie   mysql

    storm   storm   storm

    scala   mysql   es

    spark   spark   spark

    b)spark-shell 词频统计

    ./bin/spark-shell

    scala> val rdd = spark.read.textFile("/opt/datas/stu.txt")

    #词频统计

    scala> val lines = rdd.flatmap(x => x.split(" ")).map(x => (x,1)).rdd.reduceBykey((a,b) => (a+b)).collect

    #对词频进行排序

    scala> val lines = rdd.flatmap(x => x.split(" ")).map(x => (x,1)).rdd.reduceBykey((a,b) => (a+b)).map(x =>(x._2,x._1)).sortBykey().map(x => (x._2,x._1)).collect

    7.spark 服务web监控页面

    通过web页面查看spark服务情况

    bigdata-pro01.kfk.com:4040

  • 相关阅读:
    调整JVM占用内存空间方法
    java基础1.5版后新特性 自动装箱拆箱 Date SimpleDateFormat Calendar.getInstance()获得一个日历对象 抽象不要生成对象 get set add System.arrayCopy()用于集合等的扩容
    java异常处理 throw RuntimeException时不需要同时方法中声明抛出throws 异常等待调用者catch进行捕获 子父类异常问题
    java自定义泛型 面试题:接收任意数组进行反转 泛型通配符
    javabeans 内省 introspector BeanUtils
    面试题:私有构造方法类外部能访问吗,用什么方法?反射
    java基础 java中枚举的应用 抽象方法问题
    【进阶修炼】——改善C#程序质量(7)
    【进阶修炼】——改善C#程序质量(6)
    【进阶修炼】——改善C#程序质量(5)
  • 原文地址:https://www.cnblogs.com/misliu/p/11112378.html
Copyright © 2020-2023  润新知