Spark シェルでコードを実行する Spark スタンドアロン アプリケーションを作成する クラスターで Spark アプリケーションを実行する

1.spark-shell でコードを実行する

1. Spark Shell は、Spark API を学習する簡単な方法を提供します。Spark Shell は、リアルタイムかつインタラクティブな方法でデータを分析できます。Spark Shell は、Scala と Python をサポートします。

2.Spark シェル コマンド

Spark スタンドアロン モードを使用するには、Spark インストール ディレクトリを入力して実行します: ./bin/spark-shell --master <master-url>

<master-url> は置き換え可能なパラメータです

./bin/spark-shell --master <master-url>

これは、Spark を実行するために 1 つのワーカーのみが使用されることを意味するため、明らかに並列化はありません。

./bin/spark-shell --master local

私たちのコンピューターは一般的にマルチコア CPU であるため、マルチスレッドを使用したい場合は、[*] を使用して、論理 CPU の複数のスレッドを使用して Spark を実行できます。この * も特定の数値に置き換えることができます。

./bin/spark-shell --master local[*]

 スタンドアロン モード (独立したクラスター モード)

./bin/spark-shell -- master spark://127.0.0.1:7077

--jars: このパラメーターは、関連する JAR パッケージを CLASSPATH に追加するために使用されます。複数の jar パッケージがある場合は、コンマ区切りを使用してそれらを接続できます。

./bin/spark-shell --mster local[*] --jars wordcount.jar

 

「spark-shell --help」コマンドを実行して、オプションの完全なリストを取得できます

spark-shell --help

2. Spark スタンドアロン アプリケーションの作成

Scala で書かれたプログラムは、sbt または Maven を使用してコンパイルおよびパッケージ化する必要があります。

コンパイルおよびパッケージ化ツールをインストールする

本番環境では、通常、sbt と Maven を使用してコードをパッケージ化し、コンパイルします。次に、spark-submit コマンドを使用して jar パッケージを送信し、クラスターまたはスタンドアロン環境で実行します。

1. sbt をインストールする

sbt は、Spark が scala プログラムをパッケージ化するために使用するツールです。Spark には sbt が付属していないため、ダウンロードしてインストールする必要があります。

sbt を解凍します: tar -zxf sbt-0.13.18.tgz

tar -zxf sbt-0.13.18.tgz

sbt を /usr/local/ ディレクトリに移動し、ディレクトリ sudo mv sbt /usr/local/ cd /usr/local/sbt に入ります

sudo mv sbt /usr/local/ 
cd /usr/local/sbt

sbt スクリプトを作成する

vim sbt
#添加一下代码
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar /usr/local/sbt/bin/sbt-launch.jar "$@"   #红字绝对路径是sbt安装目录

 

スクリプトを実行可能にする chmod u+x sbt

chmod u+x sbt

 

国内ミラーを更新するようにsbtを設定

vim conf/sbtopts
#添加以下代码
-Dsbt.override.build.repos=true
-Dsbt.repository.config=path_to_repositories_file

sbt 国産イメージファイルの作成

cd /usr/local/sbt
vim repositories
#添加以下代码
[repositories]
local
huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/
maven-central: https://repo1.maven.org/maven2/
sbt-plugin-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

sbt スクリプトを初めて実行し、sbt を更新します

./sbt sbt-version

 

Spark アプリケーション コードを書く

1. アプリケーション ディレクトリを作成する

cd ~
mkdir ./sparkapp
mkdir -p ./sparkapp/src/main/scala

 2. scala コード ファイル SimpleApp.scala を作成します。

vim  ./sparkapp/src/main/scala/SimpleApp.scala
#完整代码
 
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf

object SimpleApp {
    def main(args: Array[String]) {
        val logFile = "file:///usr/local/spark-2.1.0/README.md"
        val conf = new SparkConf().setAppName("Simple Application")
        val sc = new SparkContext(conf)
        val logData = sc.textFile(logFile, 2).cache()
        val numAs = logData.filter(line => line.contains("a")).count()
        val numBs = logData.filter(line => line.contains("b")).count()
        println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
    }
}

コンパイルしてパッケージ化する

sbt でパッケージ化

sbt パッケージ化のために満たさなければならない条件:

1.アプリケーションフォルダーのルート

2. パッケージ ファイルは .sbt で終わる必要があります

3. そこで、vim ./sparkapp/simple.sbt を使用してパッケージ ファイルをビルドします。

vim ./sparkapp/simple.sbt
name:="XXX"   #应用程序的名称是什么
version:="1.0"           #应用程序当前版本号
scalaVersion:="2.11.8"   #当前scala的版本
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0" 
#依赖于GroupID为"org.apache.spark",artifact号是是2.1.0,这样就会自动去网上把相关的jar包下载下来使用

 #%について: 今後の書き込みでは%の使い方に注意 1. %% は未修正のバージョンを表す 2. % は特定のバージョンを表す

ディレクトリ構造を確認します。

cd ~/sparkapp/
find .

 

パッケージ cd ~/sparkapp /usr/local/sbt/sbt パッケージ

cd ~/sparkapp
/usr/local/sbt/sbt package

 

生成された Jar パッケージの場所は、現在のアプリケーション ディレクトリの下の /target/scala-2.11 サブディレクトリです. このディレクトリの下にサブディレクトリがあり、その中の simple-project で始まるファイルがパッケージ化された jar パッケージです。

  

 spark-submit でプログラムを実行する

Spark インストール ディレクトリに入り、./bin/spark-submit コマンドを使用して、実行するために jar パッケージを Spark にアップロードします. ここでの jar パッケージは、任意の spark 操作モードで実行できることに注意してください. 基本的なコマンドに加えて、spark -submit コマンドには、追加できる多くのパラメーターがあります

次のコマンドを使用して、jar パッケージ ジョブを送信します。

/usr/local/spark-2.1.0/bin/spark-submit --class "SimpleApp" ~/sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar 2>&1 | grep "Lines with a:" 
注意结尾 2>&1 | grep "Lines with a:"是Linux管道命令,可以过滤一些不必要的信息

3. クラスターで Spark アプリケーションを実行する

1.クラスターを開く

Hadoop を開いてからスパークする

2.課題提出

cd /usr/local/spark-2.1.0 bin/spark-submit \

--class org.apache.spark.examples.SparkPi \

--master spark://192.168.131:7077 \

例/jars/spark-examples_2.11-2.1.0.jar 100 2>&1 | grep "円周率はおおよそ"

cd /usr/local/spark-2.1.0 bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://192.168.131:7077 examples/jars/spark-examples_2.11-2.1.0.jar  100  2>&1  |  grep  "Pi is roughly"

ジョブを送信する (YARN モード)

クラスターで Spark-shell を実行する

おすすめ

転載: blog.csdn.net/weixin_56814370/article/details/124672424