大数据入门之分布式计算框架Spark(1) -- Spark初次见面

1.Spark概念

    Spark是一个基于内存的分布式计算框架。

    效率高:因为是基于内存的,所以在数据处理过程中,数据不会落地,而是存入内存中,效率较MR更高

    易用:提供了很多算子,简化开发流程

    通用性:Spark之上,还有Spark SQL、Spark Streaming、MLlib、GraphX这几个子框架去处理各种应用场景

    运行在各个地方:Spark可以跑在YARN之上,Mesos、standlone(Spark自带的集群管理方式),能够访问HDFS、HBase等数据源

2.Spark环境搭建

    2.1 下载

    http://spark.apache.org/downloads.html

    大数据入门之分布式计算框架Spark(1) -- Spark初次见面_第1张图片

    下载之后,进行解压

    2.2 源码编译【以下以Spark2.1为例】

    前置要求:Maven 3.5.4+,JDK8+

    因为maven的内存可能会不够,所以先执行

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

    mvn编译命令

./build/mvn -Pyarn -Phadoop-2.6 -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0 -DskipTests clean package

    然后就是漫长的等待~【我第一次编译用了好久,注意:虚拟机内存至少2G以上,否则可能会卡死】

大数据入门之分布式计算框架Spark(1) -- Spark初次见面_第2张图片

    编译完成后,会生成一个spark-2.1.0-bin-2.6.0-cdh5.7.0这样的包

    2.3 Spark Local 模式环境搭建

    首先,把Spark编译之后的包放进环境变量中。

    

    然后执行以下命令,使其生效

source /etc/profile

     运行Local模式【运行在本地,启动2个线程】

spark-shell --master local[2] --jars /home/Kiku/mysql-connector-java-5.1.27-bin.jar 

    2.4 Spark Standlone模式搭建

    架构: 1 master + n worker

    修改spark-env.sh配置文件

    大数据入门之分布式计算框架Spark(1) -- Spark初次见面_第3张图片

    Spark_worker_instance = 2   表示开启2个worker

    Spark_worker_memory = 2g   表示每个worker占用2G内存

    Spark_worker_cores = 2  表示每个worker上有2个core可以去执行任务

    还有一个slaves配制文件,这个是配制worker节点的ip。当start-all.sh的时候,会在hadoop000机器上启动master进程,在slaves文件配置的所有hostname的机器上启动worker进程

    执行

./start-all.sh 

    执行Standlone模式

spark-shell --master spark://hadoop000:7077 --jars /home/Kiku/mysql-connector-java-5.1.27-bin.jar

3.Spark简单使用

我们以单词统计为例。首先准备一份文件 wc.txt

hello,world,hello
hello,world
welcome

  我们通过本地模式运行Spark-shell

大数据入门之分布式计算框架Spark(1) -- Spark初次见面_第4张图片

 

你可能感兴趣的:(大数据,Spark)