• spark笔记 环境配置


    spark笔记

    spark简介

    saprk 有六个核心组件:

    SparkCore、SparkSQL、SparkStreaming、StructedStreaming、MLlib,Graphx
    

    SparkCore

    相当于Hadoop中的MapReduce,用于大规模离线批处理计算

    SparkSQL

    相当于Hive(稍微类似),用于交互式计算

    注意:
    1.交互式计算:用户界面中的查询条件进行过滤查询,然后交给SparkSQL进行处理,产生输出数据。速度比较快
    2.交互式计算框架:Presto、Impala、Kylin、Druid等
    

    SparkStreaming

    相当于storm,用于实时流式计算。(准实时)

    实时流式计算
    1.实时:处理速度快,秒级别或毫秒级别
    2.流式:处理数据比较少,但是是持续不断的,作业job不能停止。
    

    StructedStreaming

    类似SparkStreaming,不同点在于StructedStreaming基于SparkSQL,而SparkStreaming基于SpringCore。

    Mllib

    类似scikit-learning,Hadoop中的Mahout,用于分布式的机器学习算法

    Graphx

    用于图计算,主要适用于神经网络,图遍历之类的场景。

    spark基本概念

    application

    应用程序,可以有多个job

    job

    一个作业,可以有多个stage阶段

    stage

    一个阶段,可以有多个task任务

    task

    一个任务,执行逻辑计算

    clustermanager

    集群管理器,譬如yarn、mesos、k8s、standalone等。

    1.master 
        主节点,比如Yarn中的ResourceManager(RM)    
    2.worker
        从节点,比如Yarn中的NodeManager(NM)
    

    executor

    1.执行器,一个运行某个stage中的各个task的进程。类似Yarn中的Container。

    2.Yarn中的Container运行的一个task,task运行后就杀死进程。executor运行一个stage钟的所有taskset,整个stage阶段完成后就杀死进程。executor中有个线程池,每个线程运行一个task

    driver

    1.驱动器,有一部分功能类似于Yarn中的ApplicationMaster。
    2.Driver功能:

    a)将一个job中的各个 RDD串联起来,成为一个DAG(有向无环图)调度图
    b)将DAG图拆分成各个Stage阶段(DAGScheduler)
    c)类似于ApplicationMaster,任务申请与调度。(TaskScheduler)
    

    spark分布式环境

    配置

    修改conf目录下的slaves、spark-default.conf、spark-env.sh
    
    slaves:
        slave1、slave2 
    spark-default.conf
        spark.master spark://master:7077 (没有Ip映射写主机ip地址)
    spark-env.sh
        JAVA_HOME=xxxx (本机jdk目录)
    

    启动

    sbin/start-all.sh
    

    访问

    <master主机名/ip>:8080
    

    说明

    端口号:
    7077:master rpc端口号
    8080:master http端口号
    

    注:rpc(remote process call)远程过程调用

    启动流程

    【start-all.sh】-> 加载【spark-config.sh】->调用
    【start-master.sh】及【start-slaves.sh】->加载【spark-config.sh】及【load-spark-env.sh】->调用【spark-daemon.sh】->调用【spark-class.sh】或(【spark-submit.sh】->【spark-class.sh】)
    

    运行模式

    local、local-cluster、standalone、yarn、mesos

    注:https://www.iteblog.com/archives/1223.html (yarn-client与yarn-cluster区别)

    入门实例

    单词统计

    sc.textFile("/home/hduser/app/spark/README.md").flatMap(line=>line.split(" ")).map(word => (word,1)).reduceByKey((x,y) => x+y).collect()
    

    RDD 概念

    RDD:弹性分布式数据集,spark的第一个数据结构。只读的。

    RDD特性

    a)RDD是各个分区的集合,包含多个分区Partition
    
    b)RDD的分区使用多种算子操作进行计算
    
    c)RDD之间存在依赖关系
    根据是否经过shuffle流程拆分成窄依赖和宽依赖
    
    d)<k,v>形式的RDD需要重新分区,可指定分区器Partitioner,默认是HashPartitioner
    单值形式的RDD中的分区数,依赖于父RDD中的分区数
    
    e)数据本地性(RDD中的分区优先加载本地的数据)
    

    创建RDD

    集合并行化

    val list = List(1,2,3,4,5)
    val rdd = sc.parallelize(list)
    rdd.collect
    

    读取外部数据源

    val rdd = sc.textFile(README.md)
    rdd.collect
    

    算子操作

    rdd算子根据生成的数据类型分成transformation(转换)和action(动作)

    tarnsformation

    从RDD转换为另一个RDD

    ation

    将RDD中的数据进行输出

    简单案例

    开发工具

    IDEA + maven

    Manven简介

    功能

    maven:自动化构建工具

    1.依赖包管理
    2.自动构建(编译->测试->打包->安装->发布->运行)
    

    安装配置

    配置conf/setttings.xml

        <!—本地仓库位置-->
        <localRepository>D:/repository</localRepository>
        <!—配置中央仓库与远程仓库的镜像,主要原因是仓库访问比较慢,使用镜像快  mirrorOf如果是*,这个镜像是所有中央仓库和远程仓库的镜像;
        mirrorOf如果是central,只是中央仓库的镜像
        -->
        <mirror>
                <id>nexus-aliyun</id>
                <mirrorOf>*</mirrorOf>
                <name>Nexus aliyun</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    

    配置环境变量

    【计算机】->【高级系统设置】->【高级】->【环境变量】

    MAVEN_HOME=D:apache-maven

    path=xxx;%MAVEN_HOME%in

    测试

    命令行中执行 mvn –v

    正确显示

    Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
    Maven home: C:Program Filesapache-maven-3.6.0in..
    Java version: 12, vendor: Oracle Corporation, runtime: C:Program FilesJavajdk-12
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
    
  • 相关阅读:
    Splunk 8.2.4破解每日500M限制
    wargame之Natas解题过程记录
    Linux提权方法小结
    Splunk安装
    从原理学习Java反序列化
    getshell之后
    VulnStack靶机练习
    eclipse 3.7安装扩展心得
    yarn 切换node版本
    Rreact如何调取后端接口发起PC端项目支付宝支付请求?
  • 原文地址:https://www.cnblogs.com/D-M-C/p/11073514.html
Copyright © 2020-2023  润新知