日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

广播变量kyro_Spark简介

發布時間:2024/10/12 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 广播变量kyro_Spark简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:

spark是一個內存計算框架 , 解決了mapreduce在迭代與交互方面的不足

迭代: 多輪算法計算形式,pagerank,邏輯回歸等

交互: 實時數據,數據倉庫查詢等

spark重要概念:

RDD:

彈性分布式數據集, 彈性(數據多節點分片)分布式(集群節點)數據集(默認加載至內存)

操作:

轉換(transformation) rdd->newrdd

# 注意此類操作不會提交作業

map(func) 形成新的RDD集

filter(func) 過濾結果成為新的RDD集

flatmap(func) 映射為多于0的輸出元素

groupbykey(key) 以Key為組的數據集

reducebykey(func) 以Key為組的數據集在經過func的處理

join(newrdd) 連接兩個數據集 k,v k,w => k,(v,w)

sortbykey(desc) 排序數據集

動作(action) 結果處理

# 注意此類操作將提交作業

reduce(func) func函數輸入兩個返回一個結果

collect 返回操作后的數據元素

count 元素個數統計

countByKey 按Key統計每組的數目

saveastextfile 以文件形式保存計算結果集

saveassequencefile 以序列文件保存計算結果集

操作分類:

value:

1->1:

map, flatmap, mappartitions, glom

n->1:

union類型一致合并, cartesian分區笛卡爾積

n->n:

groupby

n屬于m:

filter, distinct, subtract, sample, takesample

cache:

cache僅內存, persist可決定緩存位置

key-value:

1->1:

mapValues

union:

combineByKey, reduceByKey, partitionBy分區策略, cogroup協同劃分

join:

join(cogroup,flatMapValues), leftOutJoin, rightOutJoin

action:

無輸出:

foreach

HDFS:

saveAsTextFile, saveAsObjectFile

Scala:

collect, collectAsMap, reduceByKeyLocally, count, lookup, top(top,take,takeOrdered,first), reduce, fold, aggregate

DataType:

spark編程概念:

共享變量:

廣播變量(boarkcast不可修改) .value

累加器(accumulator可累加) ?.value

初始化:

構建SparkContext(集群地址,作業名稱,sparkhome,作業依賴項)

RDD類型:

并行集合與hadoop數據集

并行集合: scala集合,可分片slice(parallelize)

hadoop集合: 文本,序列(K,V),inputformat

(之后均可做map/reduce操作)

Cache:

RDD轉換后可緩存persist,cache,可容錯

cache級別: 僅內存,內存磁盤,內存序列化kryo,內存磁盤序列化,僅磁盤,

spark基本架構:

應用程序間環境隔離 , 資源管理(YARN , Mesos) + 應用程序管理 . 程序運行過程中對RDD分片的優化(窄fusion , 寬全局barrier)

spark運行流程:

提交應用 -> DAG依賴流程化 -> 執行DAG至完成 -> 銷毀運行環境

提交應用:

構建運行環境: 粗(一次YARN,Mesos).細(多次Mesos)

啟動RDD管理器 BlockManager

DAG依賴流程化:

分解寬窄依賴: 歸組

fusion優化,不需要物化

執行DAG至完成:

數據本地化: 基架感知

推測執行: 另起資源比較

銷毀運行環境:

回收資源

spark on YARN:

客戶端 提交任務 至 ApplicationMaster 申請資源 向 Nodemanager

SAM 內部有 ClusterScheduler(cpu核數) 有了資源 啟動 StandaloneExecutorBackend(container大小) 注冊 akka 等待任務 之后執行 完畢回收資源

Mesos介紹:

集群資源管理器 twitter,douban

客戶端scheduler -> MesosSchedulerDriver -> MesosMaster(zk) -> MesosSlave(Executor)

master: 核心, 資源接入,分配Allocator,其他框架的管理

salve: 接收命令,報告狀態(任務,資源)

framework scheduler: MesosSchedulerDriver第三方實現接入mesos, 雙層調度(資源給框架,框架自定任務) ?---> ?類似hadoop jobtrack

framework executor: MesosExecutorDriver第三方執行實現 ?---> 類似hadoop tasktrack

第三方框架注冊流程:

第三方實現MesosSchedulerDriver,啟動SchedulerProcess服務,MasterDetector對象(探測master通知schedulerprocess),sp會向master發送注冊消息,sp確認,framework確認

mesos資源分配: 主資源公平調度算法,多維度資源,授權接入框架

設計: 資源拒絕(slave), 資源過濾(salve), 資源回收(master)

mesos容錯設計:

master: zk

salve: 心跳,快照運行目錄

mesos vs YARN:

設計目標一致: 通用集群資源管理方案

容錯一致: zk,多主

在線升級: YARN的salve不支持

調度模型一致: 雙層

調度算法: YARN除了DRF還支持容量與失敗

資源隔離一致: cgroups

支持框架一致: mapreduce,strorm,spark等

資源分配顆粒度: YARN不支持動態資源分配

網絡庫:

rpc ? ? ? ? ? ?serialization

libprocess ? ? protocal buffer

avro ? ? ? ? ? avro

Thrift ? ? ? ? idl

socket kryo

libprocess設計: 消息(類型) -> 消息隊列 -> 消息處理分發器(dispatcher) -> 消息處理 ? ?高效,易用

spark工作機制:

應用運行提交:

spark任務調度分配:

spark io: 序列化(進程actor,NIO,netty,磁盤kyro)

壓縮(snappy,LZF)

spark net:RPC, RMI, WEB Service, EJB

AKKA

spark 容錯: 血統, checkpoint

spark編程:

下載源碼包 , 安裝maven , ./make-distribution.sh --skip-java-test構建本地模式

安裝sbt打包工具

編寫代碼:

python:

from pyspark import SparkContext

scala:

import org.apache.spark.SparkContext

import org.apache.spark.SparkContext._

import org.apache.spark.SparkConf

編寫sbt依賴文件:

name := "Simple Project"

version := "1.0"

scalaVersion := "2.10"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0"

sbt打包: sbt package

提交應用: /bin/spark-submit --class "SimpleApp" --master local test/target/scala-2.10/simple-project_2.10-1.0.jar

總結

以上是生活随笔為你收集整理的广播变量kyro_Spark简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。