`
fighting_2013
  • 浏览: 15498 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Spark学习笔记-安装部署与运行实例

阅读更多

首先解压scala,本次选用版本scala-2.11.1

[hadoop@centos software]$ tar -xzvf scala-2.11.1.tgz
[hadoop@centos software]$ su -
[root@centos ~]# vi /etc/profile
添加如下内容:
SCALA_HOME=/home/hadoop/software/scala-2.11.1
PATH=$SCALA_HOME/bin
EXPORT SCALA_HOME
[root@centos ~]# source /etc/profile
[root@centos ~]# scala -version
Scala code runner version 2.11.1 -- Copyright 2002-2013, LAMP/EPFL
 
然后解压spark,本次选用版本spark-1.0.0-bin-hadoop1.tgz,这次用的是hadoop 1.0.4
[hadoop@centos software]$ tar -xzvf spark-1.0.0-bin-hadoop1.tgz
进入到spark的conf目录下
[hadoop@centos conf]$ cp spark-env.sh.template spark-env.sh
[hadoop@centos conf]$ vi spark-env.sh
添加如下内容:
export SCALA_HOME=/home/hadoop/software/scala-2.11.1
export SPARK_MASTER_IP=centos.host1
export SPARK_WORKER_MEMORY=5G
export JAVA_HOME=/usr/software/jdk
 
启动
[hadoop@centos spark-1.0.0-bin-hadoop1]$ sbin/start-master.sh
可以通过 http://centos.host1:8080/ 看到对应界面
[hadoop@centos spark-1.0.0-bin-hadoop1]$ sbin/start-slaves.sh park://centos.host1:7077
可以通过 http://centos.host1:8081/ 看到对应界面
 
下面在spark上运行第一个例子:与Hadoop交互的WordCount
首先将word.txt文件上传到HDFS上,这里路径是 hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/word.txt
进入交互模式
[hadoop@centos spark-1.0.0-bin-hadoop1]$ master=spark://centos.host1:7077 ./bin/spark-shell
scala>valfile=sc.textFile("hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/word.txt")
scala>valcount=file.flatMap(line=>line.split("")).map(word=>(word,1)).reduceByKey(_+_)
scala>count.collect()
 
可以看到控制台有如下结果:
res0: Array[(String, Int)] = Array((hive,2), (zookeeper,1), (pig,1), (spark,1), (hadoop,4), (hbase,2))
 
同时也可以将结果保存到HDFS上
scala>count.saveAsTextFile("hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/result.txt")
 
接下来再来看下如何运行Java版本的WordCount
这里需要用到一个jar文件:spark-assembly-1.0.0-hadoop1.0.4.jar
WordCount代码如下:
public class WordCount {
	
	private static final Pattern SPACE = Pattern.compile(" ");

	@SuppressWarnings("serial")
	public static void main(String[] args) throws Exception {
		if (args.length < 1) {
			System.err.println("Usage: JavaWordCount <file>");
			System.exit(1);
		}

		SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount");
		JavaSparkContext ctx = new JavaSparkContext(sparkConf);
		JavaRDD<String> lines = ctx.textFile(args[0], 1);

		JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
					@Override
					public Iterable<String> call(String s) {
						return Arrays.asList(SPACE.split(s));
					}
				});

		JavaPairRDD<String, Integer> ones = words.mapToPair(new PairFunction<String, String, Integer>() {
					@Override
					public Tuple2<String, Integer> call(String s) {
						return new Tuple2<String, Integer>(s, 1);
					}
				});

		JavaPairRDD<String, Integer> counts = ones.reduceByKey(new Function2<Integer, Integer, Integer>() {
					@Override
					public Integer call(Integer i1, Integer i2) {
						return i1 + i2;
					}
				});

		List<Tuple2<String, Integer>> output = counts.collect();
		for (Tuple2<?, ?> tuple : output) {
			System.out.println(tuple._1() + " : " + tuple._2());
		}
		
		ctx.stop();
	}
}
导出类文件生成jar包,这里生成为mining.jar。然后执行下面命令,其中--class 指定主类,--master 指定spark master地址,后面是执行的jar和需要的参数。
 
[hadoop@centos spark-1.0.0-bin-hadoop1]$ bin/spark-submit --class org.project.modules.spark.java.WordCount --master spark://centos.host1:7077 /home/hadoop/project/mining.jar hdfs://centos.host1:9000/user/hadoop/data/wordcount/001/word.txt
 
可以看到控制台有如下结果:
spark : 1
hive : 2
hadoop : 4
zookeeper : 1
pig : 1
hbase : 2
 
最后再来看下如何运行Python版本的WordCount
WordCount代码如下:
import sys
from operator import add

from pyspark import SparkContext

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print >> sys.stderr, "Usage: wordcount <file>"
        exit(-1)
    sc = SparkContext(appName="PythonWordCount")
    lines = sc.textFile(sys.argv[1], 1)
    counts = lines.flatMap(lambda x: x.split(' ')) \
                  .map(lambda x: (x, 1)) \
                  .reduceByKey(add)
    output = counts.collect()
    for (word, count) in output:
        print "%s: %i" % (word, count)
输入文件路径可以是本地也可以是HDFS上文件,命令如下:
[hadoop@centos spark-1.0.0-bin-hadoop1]$ bin/spark-submit --master spark://centos.host1:7077 /home/hadoop/project/WordCount.py /home/hadoop/temp/word.txt
 
[hadoop@centos spark-1.0.0-bin-hadoop1]$ bin/spark-submit --master spark://centos.host1:7077 /home/hadoop/project/WordCount.pyhdfs://centos.host1:9000/user/hadoop/data/wordcount/001/word.txt
 
可以看到控制台有如下结果:
spark: 1
hbase: 2
hive: 2
zookeeper: 1
hadoop: 4
pig: 1
分享到:
评论

相关推荐

    sparknote:spark学习笔记

    Sparknote是针对Spark的学习笔记,通常会涵盖Spark的基本概念、核心组件以及实际应用案例。在Sparknote-master这个压缩包中,很可能是包含了一系列关于Spark的教程文档或者代码示例。 一、Spark概述 Spark最初由...

    spark源码阅读笔记

    这种模式非常适合初学者学习Spark集群的管理和部署。 #### Master节点启动过程 Master节点是Spark集群的核心组件之一,负责协调和管理整个集群的工作负载。Master节点的启动流程主要涉及以下几个关键步骤: 1. **...

    大数据Spark技术分享 在AWS上符合HIPAA标准的Apache Spark部署 共33页.pdf

    本分享主要探讨了如何在Amazon Web Services (AWS) 上实现符合《健康保险流通与责任法案》(Health Insurance Portability and Accountability Act,简称HIPAA)标准的Apache Spark部署。该分享由Nitin Panjwani和...

    云计算学习笔记

    这份"云计算学习笔记"涵盖了云计算的基础概念、主要服务模式、关键技术以及应用实例,旨在帮助读者全面理解并掌握这一领域的核心知识。 1. **云计算基础** - **定义**:云计算是一种基于互联网的计算方式,它允许...

    autoInstall.zip

    这个脚本可能实现了统计某个数据集(例如日志文件)中的特定事件或出席人数,是学习和测试Spark功能的一个实例。 `autoInstall.sh`是关键文件,它是一个Shell脚本,专门设计用于在Ubuntu系统上自动化安装Apache ...

    deeplearning4j-examples:Deeplearning4j示例(DL4J,DL4J Spark,DataVec)

    Deeplearning4j(DL4J)是Java和Scala中的一款开源深度学习库,它使得在Java生态系统中构建和部署神经网络成为可能。这个压缩包文件"deeplearning4j-examples"包含了DL4J的示例代码,帮助开发者更好地理解和使用这个...

    machine-learning:机器学习笔记

    以下是对"machine-learning:机器学习笔记"主题的深入探讨。 一、机器学习基础 1. 监督学习:在监督学习中,我们有已标记的数据集,模型通过学习这些已知结果来预测新数据。常见的监督学习任务包括分类(如图像识别...

    sql server 帮助文档官方版

    本文档提供了 SQL Server 的官方帮助文档,涵盖了从安装到部署、管理、安全和优化等方面的知识点。 安装和部署 SQL Server 提供了多种安装方式,包括使用安装工具、Azure Data CLI 和 pip 等。用户可以根据需要...

    韩顺平各种课题笔记

    7. **人工智能与大数据**:机器学习算法、深度学习框架TensorFlow和PyTorch的使用、大数据处理技术(Hadoop、Spark)等新兴领域,帮助读者紧跟时代潮流。 8. **云计算与物联网**:AWS、Azure、Google Cloud等云平台的...

    数据挖掘教学资料PPT视频各种文档

    学习者会了解到如何在Hadoop集群上部署MapReduce任务,以及如何利用Spark进行高效的数据处理和模型训练。 综上所述,这份“数据挖掘教学资料PPT视频各种文档”涵盖了数据挖掘的多个层面,包括理论知识、实用技术、...

    525-group8:DSCI 525-group8降雨预测模型存储库

    在整个项目中,我们将处理以下里程碑: 里程碑1(第1周) -从Web获取数据并熟悉高级文件格式里程碑2(第3周) -设置S3存储桶,EC2实例和TLJH 里程碑3(第4周) -设置EMR火花实例并重写Spark中以前的里程碑所具有的...

    notebooker:我想看Jupyter笔记本

    7. **教育应用**:Jupyter Notebook是教学和学习的强大工具,教师可以创建包含代码实例的教程,学生可以直接运行和修改,增强学习体验。 8. **大数据处理**:结合Pandas、Spark等库,Jupyter Notebook能够处理大...

    Yogesh-p-murumkar

    6. **部署与分享**:通过 Nbviewer 或者 Colab,Jupyter Notebook 可以在线共享,让其他人无需安装即可查看和运行代码。 7. **大数据处理**:Jupyter Notebook 与 Apache Spark 结合,可以在大规模数据集上进行交互...

    Azure-Databricks

    **Azure Databricks** 是微软云平台上的一种大数据分析服务,它结合了Apache Spark的强大功能与Azure的便捷性,为数据科学家、工程师和分析师提供了一个协作的工作环境。在Azure上部署Databricks,用户可以快速搭建...

    个人笔记

    8. **JVM**:Java虚拟机使得Java程序可以在任何安装了JVM的平台上运行,无需重新编译。JVM还负责执行字节码,并进行垃圾回收。 9. **泛型**:Java 5引入了泛型,允许在定义集合类时指定元素类型,增强了类型安全性...

    开发笔记:关于我学到的一切的快速笔记

    10. **云计算与大数据**:AWS、Azure、Google Cloud等云服务的使用,以及Hadoop、Spark等大数据处理框架的了解。 "dev-notes-main"这个文件名暗示了笔记可能是一个主要的、综合性的开发资源,包含了上述多个领域的...

    Google-Cloud-Platform

    6. **机器学习与人工智能**:Google Cloud AI Platform支持训练和部署机器学习模型,包括TensorFlow、Keras等深度学习框架。Cloud AutoML使非专业开发者也能构建定制的AI模型。此外,自然语言处理、语音识别和计算机...

    MBDS-answer

    10. 云计算集成:Python也能很好地与AWS、Google Cloud、Azure等云平台的SDK集成,实现大数据解决方案的云端部署和扩展。 综上所述,"MBDS-answer"可能包含了以上提到的Python技术在MBDS项目中的应用实例、代码示例...

    Data_Engineering_Nanodegree:回购以存储有关Udacity上的数据工程纳米学位的文件和一些项目

    在本压缩包“Data_Engineering_Nanodegree”中,包含的文件很可能是课程的讲义、项目资料、代码示例和可能的Jupyter Notebook实例,这些资源都是为了帮助学习者深入理解和应用数据工程概念。 **Jupyter Notebook**...

    编程爱好者博客地带.zip

    每篇文章都可能深入浅出地探讨一个特定的编程问题,旨在通过实例教学和经验分享,激发读者的学习兴趣和解决问题的能力。 在这些博客文章中,可能会涉及以下常见知识点: 1. 编程语言基础:如Python、Java、C++或...

Global site tag (gtag.js) - Google Analytics