Apache Spark

提供: FreeBSD入門
移動: 案内検索
スポンサーリンク

Apache Spark とは、大規模なデータ処理のための高速な汎用エンジンです。Hadoopでは、リアルタイム処理ができませんが、Sparkでは、ウィンドウ集計(Time-Window Operation)によりリアルタイム集計が可能です。

読み方

Apache Spark
あぱっち すぱーく

概要

Apache Spark は、インメモリの Hadoop MapReduce よりも 100倍高速で、ディスクでは10倍高速です。 Java, Scala, Python から簡単に利用できます。Pythonから利用する場合には、py27-spark が使用できます。 Spark SQL, 機械学習のためのMLlib, GraphX, Spark Streaming などのハイレベルなツールが利用できます。 Spark は、スタンドアローン、もしくは、クラウドの Hadoop, Mesos で実行できます。HDFS, Cassandra, HBase, S3 など様々なデータソースにアクセスできます。

ウィンドウ集計とは?

ウィンドウ集計は、「直近の一定時間の集計」を実現します。

インストール

pkgコマンドでインストールする場合

sudo pkg install apache-spark

apache-sparkの依存関係は、以下の通りです。

  • hadoop2
  • ssid
  • snappy

設定

sudo sysrc spark_master_enable=YES
sudo sysrc spark_worker_enable=YES

spark_masterのコントロール

サービスの起動

serviceコマンドの詳細は、serviceをご参照ください。 サービスを起動します。

sudo service start spark_master

サービスの停止

サービスを停止します。

sudo service stop spark_master

spark_workerのコントロール

サービスの起動

serviceコマンドの詳細は、serviceをご参照ください。 サービスを起動します。

sudo service start spark_worker

サービスの停止

サービスを停止します。

sudo service stop spark_worker

使い方

Web UI

spark_master を起動すると Web UI に http://localhost:8080/ でアクセスできます。

spark-shell を起動する

$ sudo service spark_master onestart
$ spark-shell

以下は、実行例です。

$ /usr/local/share/spark/bin/spark-shell
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
15/03/19 21:41:22 INFO SecurityManager: Changing view acls to: kaworu
15/03/19 21:41:22 INFO SecurityManager: Changing modify acls to: kaworu
15/03/19 21:41:22 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(kaworu); users with modify permissions: Set(kaworu)
15/03/19 21:41:22 INFO HttpServer: Starting HTTP Server
15/03/19 21:41:23 INFO Utils: Successfully started service 'HTTP class server' on port 22683.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 1.2.1
      /_/
 
Using Scala version 2.10.4 (OpenJDK 64-Bit Server VM, Java 1.8.0_31)
Type in expressions to have them evaluated.
Type :help for more information.
15/03/19 21:41:30 INFO SecurityManager: Changing view acls to: kaworu
15/03/19 21:41:30 INFO SecurityManager: Changing modify acls to: kaworu
15/03/19 21:41:30 INFO SecurityManager: SecurityManager: authentication
			disabled; ui acls disabled; users with view
			permissions: Set(kaworu); users with modify
			permissions: Set(kaworu)
15/03/19 21:41:33 INFO Slf4jLogger: Slf4jLogger started
15/03/19 21:41:33 INFO Remoting: Starting remoting
15/03/19 21:41:34 INFO Utils: Successfully started service 'sparkDriver' on
			port 45925.
15/03/19 21:41:34 INFO Remoting: Remoting started; listening on addresses
			:[akka.tcp://sparkDriver@a1.local:45925]
15/03/19 21:41:34 INFO SparkEnv: Registering MapOutputTracker
15/03/19 21:41:34 INFO SparkEnv: Registering BlockManagerMaster
15/03/19 21:41:34 INFO DiskBlockManager: Created local directory at /tmp/spark-xxxx
15/03/19 21:41:34 INFO MemoryStore: MemoryStore started with capacity 265.1 MB
15/03/19 21:41:35 INFO HttpFileServer: HTTP File server directory is /tmp/spark-xxxx
15/03/19 21:41:35 INFO HttpServer: Starting HTTP Server
15/03/19 21:41:35 INFO Utils: Successfully started service 'HTTP file server'
			on port 56023.
15/03/19 21:41:35 INFO Utils: Successfully started service 'SparkUI' on port 4040.
15/03/19 21:41:35 INFO SparkUI: Started SparkUI at http://a1.local:4040
15/03/19 21:41:35 INFO Executor: Starting executor ID <driver> on host localhost
15/03/19 21:41:35 INFO Executor: Using REPL class URI: http://192.168.60.137:22683
15/03/19 21:41:35 INFO AkkaUtils: Connecting to HeartbeatReceiver:
			akka.tcp://sparkDriver@a1.local:45925/user/HeartbeatReceiver
15/03/19 21:41:36 INFO NettyBlockTransferService: Server created on 65501
15/03/19 21:41:36 INFO BlockManagerMaster: Trying to register BlockManager
15/03/19 21:41:36 INFO BlockManagerMasterActor: Registering block manager
			localhost:65501 with 265.1 MB RAM,
			BlockManagerId(<driver>, localhost, 65501)
15/03/19 21:41:36 INFO BlockManagerMaster: Registered BlockManager
15/03/19 21:41:36 INFO SparkILoop: Created spark context..
Spark context available as sc.
 
scala>

Pythonからの利用

py27-spark

pkgコマンドでインストールする場合

sudo pkg install py27-spark

エラー

snappyとsnappyjava が入っていてもエラーになってしまいます。

org.xerial.snappy.SnappyError: [FAILED_TO_LOAD_NATIVE_LIBRARY] no native
library is found for os.name=FreeBSD and os.arch=x86_64

関連項目



スポンサーリンク