Spark实验报告

更新时间:2024-01-25 07:02:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Spark报告

金航

1510122526

Spark实验报告

一、

环境搭建

1、下载scala2.11.4版本 下载地址为:http://www.scala-lang.org/download/2.11.4.html 2、解压和安装:

解压 : tar -xvf scala-2.11.4.tgz 安装 : mv scala-2.11.4 ~/opt/

3、编辑 ~/.bash_profile文件 增加SCALA_HOME环境变量配置,

export JAVA_HOME=/home/spark/opt/java/jdk1.6.0_37 export

CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

export SCALA_HOME=/home/spark/opt/scala-2.11.4 export HADOOP_HOME=/home/spark/opt/hadoop-2.6.0

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:${SCALA_HOME}/bin 立即生效source ~/.bash_profile 4、验证scala:scala -version

5、copy到slave机器 scp ~/.bash_profile spark@10.126.45.56:~/.bash_profile 6、下载spark,wget

http://d3kbcqa49mib13.cloudfront.net/spark-1.2.0-bin-hadoop2.4.tgz 7、在master主机配置spark :

将下载的spark-1.2.0-bin-hadoop2.4.tgz 解压到 ~/opt/即~/opt/spark-1.2.0-bin-hadoop2.4,配置环境变量SPARK_HOME # set java env

export JAVA_HOME=/home/spark/opt/java/jdk1.6.0_37 export

CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar export SCALA_HOME=/home/spark/opt/scala-2.11.4 export HADOOP_HOME=/home/spark/opt/hadoop-2.6.0

export SPARK_HOME=/home/spark/opt/spark-1.2.0-bin-hadoop2.4

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin 配置完成后使用source命令使配置生效 进入 spark conf目录:

[spark@S1PA11 opt]$ cd spark-1.2.0-bin-hadoop2.4/ [spark@S1PA11 spark-1.2.0-bin-hadoop2.4]$ ls

bin conf data ec2 examples lib LICENSE logs NOTICE python README.md RELEASE sbin work

[spark@S1PA11 spark-1.2.0-bin-hadoop2.4]$ cd conf/ [spark@S1PA11 conf]$ ls

fairscheduler.xml.template metrics.properties.template slaves.template spark-env.sh

log4j.properties.template slaves spark-defaults.conf.template spark-env.sh.template

first :修改slaves文件,增加两个slave节点S1PA11、S1PA222 [spark@S1PA11 conf]$ vi slaves S1PA11 S1PA222

second:配置spark-env.sh

首先把spark-env.sh.template copy spark-env.sh vi spark-env.sh文件 在最下面增加:

export JAVA_HOME=/home/spark/opt/java/jdk1.6.0_37 export SCALA_HOME=/home/spark/opt/scala-2.11.4 export SPARK_MASTER_IP=10.58.44.47 export SPARK_WORKER_MEMORY=2g

export HADOOP_CONF_DIR=/home/spark/opt/hadoop-2.6.0/etc/hadoop

HADOOP_CONF_DIR是Hadoop配置文件目录,SPARK_MASTER_IP主机IP地址,SPARK_WORKER_MEMORY是worker使用的最大内存 完成配置后,将spark目录copy slave机器 scp -r

~/opt/spark-1.2.0-bin-hadoop2.4 spark@10.126.45.56:~/opt/ 8、启动spark分布式集群并查看信息 [spark@S1PA11 sbin]$ ./start-all.sh 查看:

[spark@S1PA11 sbin]$ jps 31233 ResourceManager 27201 Jps 30498 NameNode

30733 SecondaryNameNode 5648 Worker

5399 Master

15888 JobHistoryServer

如果HDFS没有启动 ,启动起来. 查看slave节点:

[spark@S1PA222 scala]$ jps 20352 Bootstrap 30737 NodeManager 7219 Jps 30482 DataNode 29500 Bootstrap 757 Worker

9、页面查看集群状况:

进去spark集群的web管理页面,访问

因为我们 看到两个worker节点,因为master和slave都是worker节点 我们进入spark的bin目录,启动spark-shell控制台

访问http://master:4040/,我们可以看到spark WEBUI页面

二、 统计单词个数例子,使用spark api

WordCount: 步骤1:

val sc = new SparkContext(args(0), “WordCount”,System.getenv(“SPARK_HOME”), Seq(System.getenv(“SPARK_TEST_JAR”))) val textFile = sc.textFile(args(1))

val inputFormatClass = classOf[SequenceFileInputFormat[Text,Text]] var hadoopRdd = sc.hadoopRDD(conf, inputFormatClass, classOf[Text], classOf[Text]) 步骤3:

val result = hadoopRdd.flatMap{

case(key, value) => value.toString().split(“\\\\s+”);}.map(word => (word, 1)). reduceByKey (_ + _)

将产生的RDD数据集保存到HDFS上。可以使用SparkContext中的

saveAsTextFile哈数将数据集保存到HDFS目录下,默认采用Hadoop提供的TextOutputFormat,每条记录以“(key,value)”的形式打印输出,你也可以采用saveAsSequenceFile函数将数据保存为SequenceFile格式等,

result.saveAsSequenceFile(args(2))当然,一般我们写Spark程序时,需要包含以下两个头文件:import org.apache.spark._import SparkContext.需要注意的是,指定输入输出文件时,需要指定hdfs的URI,比如输入目录是hdfs://hadoop-test/tmp/input,输出目录是hdfs://hadoop-test/tmp/output,其中,“hdfs://hadoop-test”是由Hadoop配置文件core-site.xml中参数fs.default.name指定的,具体替换成你的配置即可。

本文来源:https://www.bwwdw.com/article/smcw.html

Top