Windows 10 에서 Apache Spark 사용
Spark overview
다음 링크를 참고하자.다운로드 및 설치
Spark 는 HDFS 와 YARN 을 위해서 Hadoop(하둡) 의 client library 들을 사용한다. 그래서 donwload 에는 Hadoop 일부가 같이 packaged 되어 있다. Hadoop 이 없는 버전을 다운로드 할 수도 있다.
Java, Scala 에서는 Maven 을 이용해서, Python 에서는 PyPI 를 이용해서 Spark 를 설치할 수 있다.
아래 링크에서 download 를 하자. 그리고 압축을 풀면 설치는 끝난다.
- Downloads | Apache Spark
- https://www.apache.org/dyn/closer.lua/spark/spark-3.1.1/spark-3.1.1-bin-hadoop2.7.tgz
여기서는 다음 path 에 설치했다.
d:\a\apps\spark-3.1.1-bin-hadoop2.7
그리고 <spark_root>\bin\spark-shell.cmd
를 실행하자.
D:\a\apps\spark-3.1.1-bin-hadoop2.7\bin>spark-shell.cmd
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/D:/a/apps/spark-3.1.1-bin-hadoop2.7/jars/spark-unsafe_2.12-3.1.1.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
21/03/17 20:49:38 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:382)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:397)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:390)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)
at org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:611)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:274)
at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:262)
at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:807)
at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:777)
at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:650)
at org.apache.spark.util.Utils$.$anonfun$getCurrentUserName$1(Utils.scala:2476)
at scala.Option.getOrElse(Option.scala:189)
at org.apache.spark.util.Utils$.getCurrentUserName(Utils.scala:2476)
at org.apache.spark.SecurityManager.<init>(SecurityManager.scala:79)
at org.apache.spark.deploy.SparkSubmit.secMgr$lzycompute$1(SparkSubmit.scala:368)
at org.apache.spark.deploy.SparkSubmit.secMgr$1(SparkSubmit.scala:368)
at org.apache.spark.deploy.SparkSubmit.$anonfun$prepareSubmitEnvironment$8(SparkSubmit.scala:376)
at scala.Option.map(Option.scala:230)
at org.apache.spark.deploy.SparkSubmit.prepareSubmitEnvironment(SparkSubmit.scala:376)
at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:894)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1030)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1039)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
21/03/17 20:49:38 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://DESKTOP-3TJIL3S:4040
Spark context available as 'sc' (master = local[*], app id = local-1615981782598).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 3.1.1
/_/
Using Scala version 2.12.10 (OpenJDK 64-Bit Server VM, Java 15.0.1)
Type in expressions to have them evaluated.
Type :help for more information.
scala> 21/03/17 20:49:52 WARN ProcfsMetricsGetter: Exception when trying to compute pagesize, as a result reporting of ProcessTree metrics is stopped
scala> sc
res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@60339ff4
scala>
참고로 위의 상황은 Hadoop 을 설치하지 않은 상황이다. 윈도우즈에서 하둡의 설치는 See Also 1. 을 참고하자.
example 파일 실행
다음 경로에 example file 이 있다.
<spark_root>\examples\src\main
java example 은 아래처럼 실행할 수 있다. 아래처럼 실행하면 JavaSparkPi class가 실행된다.
<spark_root>/bin/run-example SparkPi 10
다음 command 를 이용하면, Spark 를 interactively 하게 실행할 수 있다. --master
option 은 master URL 을 지정하는 option 이다. 그래서 아래는 local 에서 실행하겠다는 뜻이다. 그리고 뒤에 붙은 [2]
는 thread 2개를 사용하겠다는 뜻이다.
./bin/spark-shell --master local[2]
See Also
- Install Hadoop 3.3.0 on Windows 10 Step by Step Guide - Kontext
- 쿠...sal: [컴] Databricks 사용해서 apache spark 사용해보기
- SPARKSQL vs RDBMS Database Query Benchmark pdf
- 쿠...sal: [컴] hadoop - spark 테스트 환경
댓글 없음:
댓글 쓰기