spark是什么?
数据处理引擎,通用的一个处理框架,支持多种不同场景的计算 交互式查询、流式计算、机器学习、图计算。
spark优点:
1:非常好用,由于高级api剥离了对集群本身的关注,你可以专注你要做的事,只需在自己的笔记本电脑就可以开发spark应用。
2:速度快,支持交互式使用和复杂算法。
3:spark是一个通用引擎,可以完成各种各式各样的运算,而在spark出现之前,我们需要用各式各样的引擎来处理这些需求。
spark与hadoop
hadoop:是分布式存储系统,同时提供分布式计算环境,存储称为hdfs,计算称为mapreduce 简称MR。
spark:是一个分布式计算框架,类似于hadoop的运算环境,但是比mapreduce提供了更多支持,与其他系统的对接,一些高级算法等,可以独立运行,也可以使用hdfs上的数据,调度任务也可以基于hadoop的yarn来管理。由于整个计算都可以在内存中完成,所以速度自然比传统的MR计算的快。除此之外spark运行时占用的系统资源也比MR小得多,相比较属于轻量级运行。最核心的也是它提供的分析学习算法,这个大部分分布式架构不具有的。
安装spark
1:下载http://spark.apache.org/downloads.html 我是选择的这个
2:tar -xf 包名
3:cd 包名
4:然后简单运行试下 ./bin/pyspark
5:报错JAVA_HOME is not set(spark本身是有Scala写的,运行在JAVA虚拟机上,要想运行spark,需要安装Java6或者更新的版本)
安装java
1:下载https://www.oracle.com/technetwork/java/javase/downloads/index.html (选择合适的java版本 版本太高会报错 spark不支持 作者装的是jdk8)
2:解压 tar zxvf jdk-12.0.1_linux-x64_bin.tar.gz
3:vi /etc/profile 添加环境变量
#Java Env
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
CLASSPATH解释:Classpath设置的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。
4:source /etc/profile 使配置修改的配置立即生效
5:然后再启动 ./bin/pyspark 然后会发现ok了
6:接着 写个简单的例子 测试下
获取一个文件的行数
lines = sc.textFile("filename.txt")
lines.count()
如果正常的话会输出
完结!