【Spark】Spark一:Spark伪分布式安装

本文详细介绍了如何在伪分布式环境下安装Spark1.2.0,包括下载Scala和Spark,配置环境变量,启动Spark,以及通过Spark Shell运行Word Count。在安装过程中,提到了与Hadoop2.5.2的兼容性,并提供了相关URL以检查Spark Master和Worker的状态。
摘要由CSDN通过智能技术生成

Spark1.2.0伪分布式安装

  • JDK1.7.0_67
  • Haddoop2.5.2(伪分布式安装)
  • Scala2.11.4
  • Spark1.2.0(伪分布式安装)

 

下载并配置Scala

1. 下载Scala2.11.4

 

wget http://downloads.typesafe.com/scala/2.11.4/scala-2.11.4.tgz?_ga=1.10268349.906591.1419820693

  

2. 改名

 

mv scala-2.11.4.tgz?_ga=1.10268349.906591.1419820693 scala-2.11.4.tgz

 

3. 配置Scala的环境变量

 

vim /etc/profile
export SCALA_HOME=/home/hadoop/software/scala-2.11.4
export PATH=$SCALA_HOME/bin:$PATH

 

 

下载Spark1.2.0(与Hadoop2.4兼容版本)

 

1.下载Spark1.2.0与Hadoop2.4兼容版本

 

http://d3kbcqa49mib13.cloudfront.net/spark-1.2.0-bin-hadoop2.4.tgz

 

在本测试环境中,使用的是Hadoop2.5.2版本,测试发现,这个版本的Spark(2.4兼容版本)可以与Hadoop2.5.2兼容

 

2. 解压Spark安装包到如下目录

 

tar xzvf spark-1.2.0-bin-hadoop2.4.tgz
/home/hadoop/software/spark-1.2.0-bin-hadoop2.4

 

配置Spark相关的环境变量

1. vim /etc/profile,编辑完成后使用source /etc/profile使得变量生效

 

export SPARK_HOME=/home/hadoop/software/spark-1.2.0-bin-hadoop2.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop 

这些需要配置的环境变量很多,不过之前在安装JDK,Scala和Hadoop时,已经设置过了,具体需要配置哪些环境,可以看配置spark-env.sh的配置。为了保险期间,可以设置如下的环境变量(在/etc/profile和spark-env.sh同时配置)

  • SCALA_HOME
  • JAVA_HOME
  • HADOOP_HOME
  • SPARK_HOME
  • YARN_CONF_DIR

2. 把spark-env.sh.template改为spark-env.sh

 

cp spark-env.sh.template spark-env.sh

 

3. 配置spark-env.sh

 

export SCALA_HOME=/home/hadoop/software/scala-2.11.4
export JAVA_HOME=/home/hadoop/software/jdk1.7.0_67
export SPARK_MASTER=localhost
export SPARK_LOCAL_IP=localhost
export HADOOP_HOME=/home/hadoop/software/hadoop-2.5.2
export SPARK_HOME=/home/hadoop/software/spark-1.2.0-bin-hadoop2.4
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

 

 启动Spark

 

1. 在Spark安装目录的sbin目录下执行./start-all.sh命令启动Spark

 

 

$SPARK_HOME/sbin/start-all.sh
 

 

 

2. 启动过程中报rsync错误,不过通过查看Java进程可以看到Spark已经启动

 

 

 

可见,启动Spark后,启动了两个Java进程Master和Worker

 

3. 访问http://localhost:8080,可以看到Spark Master的状态

 

 

4. 访问如下地址可以查看关于Spark相关的情况

  • http://192.168.26.135:4040/jobs
  • http://192.168.26.135:4040/stages/
  • http://192.168.26.135:4040/storage/
  • http://192.168.26.135:4040/environment/ (包含Spark Shell的类路径)

 

  •  http://192.168.26.135:4040/executors/

 由下图可见,Spark Shell启动后,只有一个Executor,即driver



 

 

 

 Spark Shell运行Word Count

 

1. 启动Spark Shell

 

bin/spark-shell

 

第一次启动过程中用了4分钟,并且系统卡住没反应,不过以后再启动Spark Shell则很快,快则1,2秒,慢则10几秒。Spark Shell启动后,Spark启动了一个进程SparkSubmit

 

 


 

 

 

2. 运行Spark Word Count

 

2.1 Spark Shell启动后,进行入scala命令行模式,此时,Spark已经默认给我们创建了一个SparkContext,sc,如:

 

scala> sc
res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@756cf002

 

2.2. 在Hadoop HDFS上创建一个文本文件,如:

 

hdfs dfs -cat /users/hadoop/wordcount/word.txt

 

内容是:

 

 

 

2.3 Spark读取HDFS上的文本文件word.txt

 

val file = sc.textFile("hdfs://hadoop.master:9000/users/hadoop/wordcount/word.txt")

 

 这行语句的结果是创建了一个MappedRDD,即file的类型是MappedRDD,执行结果如下所示:


 
 最后的<Console>:12,12指的是什么?不像是word.txt的字节数

 

2.3.0 题外话:

hdfs://hadoop.master:9000,这里的hadoop.master不能是localhost,因为telnet localhost 9000拒绝连接,如下图所示:

 

 

 

 

2.4. 执行如下操作

 

scala>  val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_)  

 

结果:

 

 

可见count是ShuffledRDD类型

 

 

 2.5 统计结果

 

scala> count.collect() 

 


 

 

查看Spark Master和Spark Worker的运行结果

 

通过访问http://192.168.26.135:8080/和http://192.168.26.135:8081/,可以查看Spark Master和Spark Worker的运行状态。结果发现,Master上Completed Applications依然为0,原因不清楚, Spark Master UI不显示Spark Shell提交的任务?

 

 

 

 

 参考:http://blog.csdn.net/yeruby/article/details/41042713

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值