Spark是目前处理大数据比较理想的一个技术架构,由于我们主要关注实战,有关Spark的理论大家去百度。网上也有很多实战的教程,但是由于很多教程转来转去,有些失真,导致一些写得不错的教程反而无法让人知道。我从自己的体验出发,将Spark大数据处理的过程描述出来,不能说是精华,就算是对大数据分析的项目的一个总结。
在说到Spark之前,我们从项目开发的角度评估一下知识结构。
使用Spark,我们需要用到Linux基础知识、Java知识、Hadoop的基础知识、Scala的知识以及Spark。
1、Linux基础知识。由于我们使用ubuntu,所以要简单了解ubuntu。这里不详细介绍ubuntu。只列出常用的命令。
apt-get update 更新安装源
apt-get install 安装
cp 复制文件
mkdir 创建目录
rm 删除文件或目录(非空目录)
echo 写入文件
cat 查看文件
ls -l 列出文件或目录
tar -zxvf 解压tgz文件
nano 编辑文件
vim 编辑文件
其他的命令大家可以去查看一些linux的文章,如果专门去研究linux,暂时没必要。
2、Java知识。大数据分析的框架程序采用Java或python编写,分析程序建议使用scala语言。这种语言和Java很相似,而且和Java语言是无缝对接,因此综合起来,还是使用Java比较好一些。有人认为python效率高一些,这都是针对某一方面而言。我们选择框架,还是考虑整体效率比较合适。但是对于PHP类型的商城或其他的电子商务,建议使用python来做数据分析比较好一点。
3、Hadoop基础知识。Spark是基于Hadoop的,所以,对Hadoop应该有一些了解,尤其是分布式存储。
4、scala知识。实际上,不使用scala语言写分析程序,Java和python也可以写。但是考虑综合效率,scala写分析程序更好,所以除非不得已(赶工期等),还是采用scala语言编写分析程序。
5、Spark知识。这个没有说的,必须了解。但是如果前面都了解了,了解Spark也不是什么大问题。
好了,做好上面的准备工作。我们就开始准备必要的软件。
1、ubuntu16.04 server。不用说,linux是必须的,不要再去想着在windows上面做大数据分析。linux里面,首选ubuntu16,不建议用12或14。其他的linux也是可以的。过程都是一样的,仅仅linux的命令不一样。
2、JDK8。这也是必要的。不建议使用8以下版本。
3、Hadoop2.7。最新的稳定版就行,但是要保证和Spark的版本保持一致。
4、Spark2.2。 和Hadoop一样,保持版本一致。
5、开发工具采用idea,不建议采用eclipse或myeclipse,不是说eclipse不行,而是里面有很多坑,我们不知道,对于项目来说,还是坑越少越好。
6、代码管理工具采用Git,因为很多开源软件都采用Git,对接起来更方便。
下面是几个软件的下载地址:
ubuntu16.04 server:http://219.238.7.71/files/216400000A88CD3E/ftp.sjtu.edu.cn/ubuntu-cd/16.04.3/ubuntu-16.04.3-server-amd64.iso,ubuntu的镜像地址很多,尽量选择国内的会快一点。另外要注意的是,部署的时候下载server版本,并且是LTS的。开发版本无所谓,有人习惯直接在ubuntu里进行开发,那就安装桌面版。
JDK8:http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.tar.gz
Hadoop2.7:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz
Spark2.2:https://www.apache.org/dyn/closer.lua/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.7.tgz
以上软件中的JDK8、Hadoop、Spark尽量使用解压安装。即下载tgz文件,解压到指定目录,然后再配置安装。
接下来就是安装软件。。。