实验目的
1、了解Spark Local本地模式安装
2、了解Spark Local模式运行原理
实验环境
1、Linux Ubuntu 14.04
2、jdk1.7
3、scala-2.10.4.tgz安装包
4、spark-1.6.0-bin-hadoop2.6.tgz安装包
实验内容
Spark本地模式,是最简单的安装模式。
spark的存储依赖linux本地文件系统,而非Hadoop的HDFS。所以在这里不需要配置Hadoop。
实验步骤
1、Spark的运行依赖jdk以及scala环境。在此已默认安装jdk1.7。
2、上传所需的Spark的安装包spark-1.6.0-bin-hadoop2.6.tgz及scala安装包Scala2.10.4.tgz,到/apps/toolbox目录下。 此处建议使用scala-2.10.4版本。官网中指出,若使用scala2.11,则需要重新编译spark,并且编译时,需要指定scala版本的类型。 关于spark版本,没有严格要求。所以我们使用spark1.6版本。
3、安装Scala。切换目录到/apps/toolbox目录下,将/apps/toolbox目录下scala-2.10.4.tgz,解压缩到/apps目录下。并将解压后的目录名改为/apps/scala
- cd /apps/toolbox/
- tar -xzvf /apps/toolbox/scala-2.10.4.tgz -C /apps/
- cd /apps
- mv /apps/scala-2.10.4/ /apps/scala
使用vim打开用户环境变量~/.bashrc
- vim ~/.bashrc
将scala的环境变量,追加的用户环境变量中。
- export SCALA_HOME=/apps/scala
- export PATH=$SCALA_HOME/bin:$PATH
执行source命令,使系统环境变量生效。
- source ~/.bashrc
4、切换目录到/apps/toolbox目录下,将spark的安装包spark-1.6.0-bin-hadoop2.6.tgz,解压缩到/apps目录下,并将解压后的目录名,重命名为spark
- cd /apps/toolbox
- tar -xzvf /apps/toolbox/spark-1.6.0-bin-hadoop2.6.tgz -C /apps/
- cd /apps/
- mv /apps/spark-1.6.0-bin-hadoop2.6/ /apps/spark
使用vim打开用户环境变量~/.bashrc
- vim ~/.bashrc
将Spark的配置信息追加到用户环境变量中。
- #spark
- export SPARK_HOME=/apps/spark
- export PATH=$SPARK_HOME/bin:$PATH
执行source命令,使用户环境变量生效。
- source ~/.bashrc
5、下面不需要对spark进行任何配置,就可以启动spark-shell进行任务处理了。
切换目录到/apps/spark/bin目录下,使用spark shell客户端,访问服务端,验证安装完的spark是否可用。
执行
- spark-shell
或执行
- spark-shell local
可以启动本地模式
- zhangyu@0ed3f46ad512:/apps/spark$ spark-shell
- log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
- log4j:WARN Please initialize the log4j system properly.
- log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
- Using Spark's repl log4j profile: org/apache/spark/log4j-defaults-repl.properties
- To adjust logging level use sc.setLogLevel("INFO")
- Welcome to
- ____ __
- / __/__ ___ _____/ /__
- _\ \/ _ \/ _ `/ __/ '_/
- /___/ .__/\_,_/_/ /_/\_\ version 1.6.0
- /_/
- Using Scala version 2.10.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_75)
- Type in expressions to have them evaluated.
- Type :help for more information.
- Spark context available as sc.
- 16/12/06 06:20:08 WARN Connection: BoneCP specified but not present in CLASSPATH (or one of dependencies)
- 16/12/06 06:20:08 WARN Connection: BoneCP specified but not present in CLASSPATH (or one of dependencies)
- 16/12/06 06:20:27 WARN ObjectStore: Version information not found in metastore. hive.metastore.schema.verification is not enabled so recording the schema version 1.2.0
- 16/12/06 06:20:27 WARN ObjectStore: Failed to get database default, returning NoSuchObjectException
- 16/12/06 06:20:31 WARN Connection: BoneCP specified but not present in CLASSPATH (or one of dependencies)
- 16/12/06 06:20:31 WARN Connection: BoneCP specified but not present in CLASSPATH (or one of dependencies)
- 16/12/06 06:20:49 WARN ObjectStore: Version information not found in metastore. hive.metastore.schema.verification is not enabled so recording the schema version 1.2.0
- 16/12/06 06:20:50 WARN ObjectStore: Failed to get database default, returning NoSuchObjectException
- SQL context available as sqlContext.
- scala>
6、执行测试,在spark shell中,使用scala执行个例子
- val rdd = sc.textFile("/apps/spark/README.md");
统计文件的行数
- rdd.count();
可用看到输出为
- res3: Long = 4
表明安装正确。
完整效果为:
- scala> val rdd = sc.textFile("/apps/spark/README.md");
- rdd: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[1] at textFile at <console>:27
- scala> rdd.count
- res0: Long = 95
- scala>