大数据生态系统基础:Apache Spark(一):介绍和编译、安装

xiaoxiao2021-02-28  81

Apache Spark 是一个快速和通用的大型数据处理引擎。

一、Spark 的特点

速度:在内存中运行程序要比Hadoop MapReduce快100倍,磁盘上的速度要快10倍。Apache Spark拥有一个先进的DAG执行引擎,它支持非循环数据流和内存计算。易用性:在Java、Scala、Python、r中快速编写应用程序。Spark提供了超过80个高级运算,这些运算可以轻松构建并行应用程序。你可以从Scala、Python和R shell中交互式地使用它。普遍性:组合SQL、流媒体和复杂的分析。Spark提供了一组库,其中包括SQL和DataFrames、用于机器学习的MLlib、GraphX和Spark流。您可以在同一个应用程序中无缝地组合这些库。随处运行:Spark在Hadoop、Mesos、独立或云计算上运行。它可以访问各种各样的数据源,包括HDFS、Cassandra、HBase和S3。可以使用其独立的集群模式运行Spark,在EC2上,在Hadoop纱线上,或者在Apache Mesos上。在HDFS、Cassandra、HBase、Hive、速子和任何Hadoop数据源上访问数据。

二、下载安装     1、下载         下载地点:http://spark.apache.org/downloads.html                  第一是选择版本,我们选用最新的2.2.0版本。第二是选择构建在 Hadoop 的系统,Spark 不适用 HDFS,所以,可以选择任何 Hadoop 版本,这里选择的是 Hadoop 2.6版本,因为我的系统装的是2.6.4 2、Maven依赖包的定义        

<dependency>

  <groupId>org.apache.spark</groupId>

  <artifactId>spark-core_2.11</artifactId>

  <version>2.2.0</version>

</dependency>

       后面在介绍开发的时候,默认都要添加该依赖包,以后不再说明。     3、解压包到 HOME 目录,并将目录改为 spark      ~ $tar  zxvf spark-2.2.0-bin-hadoop2.6.tar.gz      ~$mv spark-2.2.0-bin-hadoop2.6 spark      设置环境变量, 这里增添了 Scala语言的环境变量      ~/.bash_profile,或者/etc/profile 下。编辑完毕后,记得 source   ~/.bash_profile  90 ###setup spark  91 export SPARK_HOME=$HOME/spark  92 export PATH=$SPARK_HOME/bin:$PATH  93  94 ##setup zinc,scala  95 export ZINC_HOME=/usr/local/opt/zinc/libexec  96 export SCALA_HOME=/usr/local/opt/scala/libexec  97 export PATH=$ZINC_HOME/bin:$SCALA_HOME/bin:$PATH  98 ##setup R  99 export R_HOME=/Library/Frameworks/R.framework/Resources 4、可以下载源代码自己编译      在第2步选择Source code, 然后点击 spark-2.2.0.tgz 下载       编译步骤请参照: Mac OSX下编译 Hadoop 2.6.4 http://blog.csdn.net/caridle/article/details/76018314         

     a. note:提高Maven编译时的堆内存大小,防止编译过程中产生OOM异常,相关命令如下:

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

      b. 编译

cd $SPARK_SOURCE_HOME(spark源码路径) mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phadoop-provided -Phive -Phive-thriftserver -Pnetlib-lgpl -DskipTests clean package       编译完毕后,在目录下有一个 dev 目录,里面生成了一个生成部署包的脚本 make-distribution.sh         ./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn            生成的安装包位于根目录下: spark-2.2.0-bin-custom-spark.tgz            生成的已经解压的文件在 dist 目录下:dist   5、 配置 slaves          进入到 spark /conf目录,          cp slaves.template slaves            在 slaves 中,增加三个从服务器的主机名称:              master                slave1               slave2 6、配置 spark-env.sh           cp spark-env.sh.template spark-env.sh           在 spark-env.sh 中增加   3 export SCALA_HOME=/usr/local/opt/scala   4 #export SPARK_WORK_MEMORY=4g   5 export SPARK_MASTER_IP=mymac   6 export MASTER=spark://mymac:7077 7、将当前的 spark 目录直接拷贝到其它的节点中       注意在 HOME 发送命令       scp -rf  ~/spark wangxinnian@master:~/  scp -rf  ~/spark wangxinnian@slave1:~/  scp -rf  ~/spark wangxinnian@slave2:~/         然后,分别对 master, slave1,slave2的.bash_profile 增加相同的环境目录  90 ###setup spark  91 export SPARK_HOME=$HOME/spark  92 export PATH=$SPARK_HOME/bin:$PATH  93  94 ##setup zinc,scala  95 export ZINC_HOME=/usr/local/opt/zinc/libexec  96 export SCALA_HOME=/usr/local/opt/scala/libexec  97 export PATH=$ZINC_HOME/bin:$SCALA_HOME/bin:$PATH  98 ##setup R  99 export R_HOME=/Library/Frameworks/R.framework/Resources 8、运行      在 sbin目录中,直接运行 start-all.sh 和 stop-all.sh。      也可以分开运行start-master.sh 和 stop-master.sh, 以及启动 worker 的 start-slave.sh 和 stop-slave.sh。      再运行 start-slave.sh spark://mymac:7077,后面要跟 master 的参数地址。 9、问题       master: failed to launch: nice -n 0 /Users/wangxinnian/spark/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://mymac:7077 master:   at java.lang.ClassLoader.loadClass(ClassLoader.java:358) master:   at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) master: full log in /Users/wangxinnian/spark/logs/spark-wangxinnian-org.apache.spark.deploy.worker.Worker-1-master.out slave1: failed to launch: nice -n 0 /Users/wangxinnian/spark/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://mymac:7077 slave1:   at java.lang.ClassLoader.loadClass(ClassLoader.java:358) slave1:   at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) slave1: full log in /Users/wangxinnian/spark/logs/spark-wangxinnian-org.apache.spark.deploy.worker.Worker-1-slave1.out slave2: failed to launch: nice -n 0 /Users/wangxinnian/spark/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://mymac:7077 slave2:   at java.lang.ClassLoader.loadClass(ClassLoader.java:358) slave2:   at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) slave2: full log in /Users/wangxinnian/spark/logs/spark-wangxinnian-org.apache.spark.deploy.worker.Worker-1-slave2.out       表示无法连接到 Master, 可以查看日志。 Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/spark/launcher/Main : Unsupported major.minor version 52.0         at java.lang.ClassLoader.defineClass1(Native Method)       这是一个比较典型的 JDK 版本不正确的提示。
转载请注明原文地址: https://www.6miu.com/read-53748.html

最新回复(0)