首先解压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的学习笔记,通常会涵盖Spark的基本概念、核心组件以及实际应用案例。在Sparknote-master这个压缩包中,很可能是包含了一系列关于Spark的教程文档或者代码示例。 一、Spark概述 Spark最初由...
这种模式非常适合初学者学习Spark集群的管理和部署。 #### Master节点启动过程 Master节点是Spark集群的核心组件之一,负责协调和管理整个集群的工作负载。Master节点的启动流程主要涉及以下几个关键步骤: 1. **...
本分享主要探讨了如何在Amazon Web Services (AWS) 上实现符合《健康保险流通与责任法案》(Health Insurance Portability and Accountability Act,简称HIPAA)标准的Apache Spark部署。该分享由Nitin Panjwani和...
这份"云计算学习笔记"涵盖了云计算的基础概念、主要服务模式、关键技术以及应用实例,旨在帮助读者全面理解并掌握这一领域的核心知识。 1. **云计算基础** - **定义**:云计算是一种基于互联网的计算方式,它允许...
这个脚本可能实现了统计某个数据集(例如日志文件)中的特定事件或出席人数,是学习和测试Spark功能的一个实例。 `autoInstall.sh`是关键文件,它是一个Shell脚本,专门设计用于在Ubuntu系统上自动化安装Apache ...
Deeplearning4j(DL4J)是Java和Scala中的一款开源深度学习库,它使得在Java生态系统中构建和部署神经网络成为可能。这个压缩包文件"deeplearning4j-examples"包含了DL4J的示例代码,帮助开发者更好地理解和使用这个...
以下是对"machine-learning:机器学习笔记"主题的深入探讨。 一、机器学习基础 1. 监督学习:在监督学习中,我们有已标记的数据集,模型通过学习这些已知结果来预测新数据。常见的监督学习任务包括分类(如图像识别...
本文档提供了 SQL Server 的官方帮助文档,涵盖了从安装到部署、管理、安全和优化等方面的知识点。 安装和部署 SQL Server 提供了多种安装方式,包括使用安装工具、Azure Data CLI 和 pip 等。用户可以根据需要...
7. **人工智能与大数据**:机器学习算法、深度学习框架TensorFlow和PyTorch的使用、大数据处理技术(Hadoop、Spark)等新兴领域,帮助读者紧跟时代潮流。 8. **云计算与物联网**:AWS、Azure、Google Cloud等云平台的...
学习者会了解到如何在Hadoop集群上部署MapReduce任务,以及如何利用Spark进行高效的数据处理和模型训练。 综上所述,这份“数据挖掘教学资料PPT视频各种文档”涵盖了数据挖掘的多个层面,包括理论知识、实用技术、...
在整个项目中,我们将处理以下里程碑: 里程碑1(第1周) -从Web获取数据并熟悉高级文件格式里程碑2(第3周) -设置S3存储桶,EC2实例和TLJH 里程碑3(第4周) -设置EMR火花实例并重写Spark中以前的里程碑所具有的...
7. **教育应用**:Jupyter Notebook是教学和学习的强大工具,教师可以创建包含代码实例的教程,学生可以直接运行和修改,增强学习体验。 8. **大数据处理**:结合Pandas、Spark等库,Jupyter Notebook能够处理大...
6. **部署与分享**:通过 Nbviewer 或者 Colab,Jupyter Notebook 可以在线共享,让其他人无需安装即可查看和运行代码。 7. **大数据处理**:Jupyter Notebook 与 Apache Spark 结合,可以在大规模数据集上进行交互...
**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"这个文件名暗示了笔记可能是一个主要的、综合性的开发资源,包含了上述多个领域的...
6. **机器学习与人工智能**:Google Cloud AI Platform支持训练和部署机器学习模型,包括TensorFlow、Keras等深度学习框架。Cloud AutoML使非专业开发者也能构建定制的AI模型。此外,自然语言处理、语音识别和计算机...
10. 云计算集成:Python也能很好地与AWS、Google Cloud、Azure等云平台的SDK集成,实现大数据解决方案的云端部署和扩展。 综上所述,"MBDS-answer"可能包含了以上提到的Python技术在MBDS项目中的应用实例、代码示例...
在本压缩包“Data_Engineering_Nanodegree”中,包含的文件很可能是课程的讲义、项目资料、代码示例和可能的Jupyter Notebook实例,这些资源都是为了帮助学习者深入理解和应用数据工程概念。 **Jupyter Notebook**...
每篇文章都可能深入浅出地探讨一个特定的编程问题,旨在通过实例教学和经验分享,激发读者的学习兴趣和解决问题的能力。 在这些博客文章中,可能会涉及以下常见知识点: 1. 编程语言基础:如Python、Java、C++或...