SparkContext–はじめにと関数を学ぶ
最新の技術動向で更新滞在
電報にDataFlairに参加!!Sparkcontextは、Apache Spark機能のエントリゲートです。 Sparkドライバアプリケーションの最も重要なステップは、SparkContextを生成することです。 これにより、リソースマネージャー(YARN/Mesos)の助けを借りてSparkアプリケーションがSpark Clusterにアクセスできるようになります。 SparkContextを作成するには、最初にSparkConfを作成する必要があります。 SparkConfには、SparkドライバアプリケーションがSparkContextに渡す構成パラメータがあります。このApache Sparkチュートリアルでは、SparkのSparkContextとは何かを深く理解します。 Spark-Scala word countプログラムの助けを借りてSparkでSparkContextクラスを作成する方法。 また、SparkContextのさまざまなタスクと、Apache SparkでSparkContextを停止する方法についても学習します。
それでは、SparkContextチュートリアルを始めましょう。
SparkContext–Introduction and Functionsを学ぶ
スタンドアロンモードでのApache Sparkのインストール方法と、マルチノードクラスターでのApache SparkのインスApache SparkのSparkContextとは何ですか?SparkContextは、Spark機能のエントリポイントです。 Sparkドライバアプリケーションの最も重要なステップは、SparkContextを生成することです。 これにより、SparkアプリケーションはResource Managerの助けを借りてSpark Clusterにアクセスできます。 リソースマネージャーは、Spark Standalone、YARN、Apache Mesosの3つのいずれかになります。SparkContextクラスを作成するには?SparkContextを作成する場合は、最初にSparkConfを作成する必要があります。 SparkConfには、SparkドライバアプリケーションがSparkContextに渡す構成パラメータがあります。 これらのパラメータの中には、Sparkドライバアプリケーションのプロパティを定義するものもあります。 いくつかは、数、メモリサイズ、およびワーカーノード上で実行されているexecutorによって使用されるコアのように、クラスター上のリソースを割り当てるためにSparkに
要するに、Sparkクラスターへのアクセス方法をガイドします。 SparkContextオブジェクトを作成した後、textFile、sequenceFile、parallelizeなどの関数を呼び出すことができます。 実行できるさまざまなコンテキストは、ローカル、yarn-client、Mesos URL、およびSpark URLです。
SparkContextが作成されると、RDDs、broadcast variable、accumulator、ingress Spark serviceの作成、ジョブの実行に使用できます。 これらのことはすべて、SparkContextが停止するまで実行できます。
Sparkcontextの停止
JVMごとにアクティブにできるSparkContextは一つだけです。 以下のように新しいものを作成する前に、アクティブなものを停止する必要があります。
stop(): ユニット
次のメッセージが表示されます。
INFO SparkContext:Successfully stopped SparkContext
Spark Scala Word Count Example
Spark-Scala word count example-
パッケージcomの助けを借りてSparkConfを使用してSparkContextを作成する方法を見てみましょう。dataflairです。spark
orgをインポートします。アパッチスパークSparkContext
orgをインポートします。アパッチスパークSparkConf
object Wordcount{
def main(args:Array){
//confオブジェクトを作成します
val conf=new SparkConf()
。setAppName(“WordCount”)
//create spark context object
val sc = new SparkContext(conf)
//Check whether sufficient params are supplied
if (args.length < 2) {
println(“Usage: ScalaWordCount <input><output>”)
System.exit(1)
}
//Read file and create RDD
val rawData = sc.textFile(args(0))
//convert the lines into words using flatMap operation
val words = rawData.flatMap(line => line.split(“”))
//mapとreduceByKey操作を使用して個々の単語を数えます
val wordCount=words。map(word=>(word,1))。reduceByKey(_+_)
//結果を保存します
wordCount.saveAsTextFile(args(1))
//sparkコンテキストを停止します
sc.stop
}
}
Apache SparkのSparkContextの機能
Apache SparkのSparkContextの10の重要な機能
i. Sparkアプリケーションの現在のステータスを取得するには
- SpkEnv–Sparkのパブリックサービスを備えたランタイム環境です。 これは、Sparkアプリケーションのための分散コンピューティングプラットフォームを確立するために相互に相互作用します。 ドライバーとexecutorの異なる環境でSparkアプリケーションを実行するために必要なランタイムサービスを保持するSparkEnvオブジェクトは、Sparkランタイム環境を表し
- SparkConf–Sparkプロパティは最大アプリケーション設定を処理し、アプリケーションごとに個別に構成されます。 また、これらのプロパティをSparkConfに簡単に設定することもできます。 マスター URLやアプリケーション名などの一般的なプロパティや、set()メソッドで構成された任意のキーと値のペアなどがあります。
- デプロイメント環境(マスター URLとして)–Sparkデプロイメント環境には、ローカルとクラスターの二つのタイプがあります。 ローカル・モードは、非分散単一JVMデプロイメント・モードです。 すべての実行コンポーネント–driver、executor、LocalSchedulerBackend、およびmasterは、同じ単一のJVMに存在します。 したがって、ドライバが実行に役立つ唯一のモードはローカルモードです。 テスト、デバッグ、またはデモの目的では、sparkアプリケーションを起動するために以前の設定を必要としないため、ローカルモードが適しています。 クラスター化モードでは、Sparkは分散モードで実行されます。 Spark Cluster Managerの詳細については、こちらをご覧ください。 ii.設定を設定するには
- マスター URL–マスターメソッドはsparkの現在の値を返します。使用中の展開環境であるマスター。
- ローカルプロパティ-論理ジョブグループの作成–ローカルプロパティの概念の理由は、単一のロジックグループに属している別のスレッドから起動された別のジョブを作成するプロパティを用いてジョブの論理グループを形成することです。 Spark fair scheduler poolなど、スレッドから送信されたSparkジョブに影響を与えるlocalプロパティを設定できます。デフォルトのログレベル-Spark ShellなどのSparkアプリケーションでルートログインレベルを設定できます。
iii. さまざまなサービスにアクセスするには
また、TaskScheduler、LiveListenBus、BlockManager、SchedulerBackend、ShuffelManager、オプションのContextCleanerなどのサービスにアクセスするのに役立ちます。iv.ジョブをキャンセルするには
cancleJobは、単にDagschedulerにSparkジョブの削除を要求します。
Spark DAG(有向非巡回グラフ)について詳しく学びます。ステージをキャンセルするにはcancleStageは、単にDagschedulerにSparkステージをドロップするように要求します。
vi.Sparkでのクロージャクリーニング
Sparkは、アクションが発生するたびにクロージャをクリーンアップします。 シリアル化され、実行するためにワイヤを介して送信される前のアクション本体。 SparkContextのcleanメソッドはこれを行います。 これは、順番に、ClosureCleanを呼び出します。きれいな方法。 これは、クロージャをきれいにするだけでなく、参照されたクロージャも推移的にきれいです。 直列化可能でないオブジェクトを明示的に参照しないまで、直列化可能であると仮定します。Spark listenerを登録するには、addSparkListenerメソッドの助けを借りてカスタムSparkListenerInterfaceを登録できます。 Sparkを使用してカスタムリスナーを登録することもできます。extraListenersの設定。
viii。 Programmable Dynamic allocation
また、executorの動的割り当てのための開発者APIとして、requestExecutors、killExecutors、requestTotalExecutors、getExecutorIdsのメソッドも提供しています。永続的なRDDにアクセスするには
getPersistentRDDsは、キャッシュを介して永続的としてマークされたRddのコレクションを提供します。マスターのブロックマネージャーと内部persistentRddsマッピングからrdd
をアンパーシストするには、アンパーシストはRDDを削除します。そのため、これはすべてSparkcontextチュートリアルにありました。 私たちの説明が好き願っています。したがって、SparkContextは、Sparkアプリケーションの現在の状態の取得、構成の設定、ジョブのキャンセル、ステージのキャンセルなど、Sparkのさまざまな機能を提供します。 これは、Spark機能へのエントリポイントです。 したがって、それはバックボーンを機能します。
このチュートリアルについての質問がある場合は、私たちと共有すること自由に感じます。 私達はそれらを解決して嬉しいです。SparkでRDDを作成する方法 - Apache SparkとHadoopとの互換性