简介

  • 快速,通用,大数据处理分析框架
  • scala编写
  • 采用DAG引擎,支持内存计算,速度快
  • 可以运行scala,java,python,r等开发的程序
  • 集成多种数据源

spark组件

  1. spark core
    实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。
    Spark Core 中还包含了对弹性分布式数据集(resilient distributed dataset,简称RDD)的API定义。
  2. spark sql
    是 Spark 用来操作结构化数据的程序包。通过 Spark SQL,我们可以使用 SQL 或者 Apache Hive版本
  3. spark streaming
    是 Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API,并且与 Spark Core 中的 RDD API 高度对应。
  4. spark MLlib
    提供常见的机器学习(ML)功能的程序库。
  5. spark GRAPHX
    GraphX在Spark基础上提供了一站式的数据解决方案,可以高效地完成图计算的完整流水作业。

StandAlone模式搭建

以三台机器为例,mypc01为master,mypc02,mypc03为slave

[root@mypc01 ~]# tar -zxvf spark-2.2.3-bin-hadoop2.7.tgz -C /usr/local/ && cd /usr/local
[root@mypc01 local]# mv spark-2.2.3-bin-hadoop2.7/ spark

配置环境变量

[root@mypc01 local]# vim /etc/profile
.........省略.........
# spark  environment
export SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/sbin:$SPARK_HOME/bin:$PATH

[root@mypc01 local]# source /etc/profile

配置spark的环境脚本,确定master机器位置及端口

[root@mypc01 spark]# cd conf
[root@mypc01 conf]# cp spark-env.sh.template spark-env.sh
export JAVA_HOME=/usr/local/jdk   			
export SPARK_MASTER_HOST=mypc01			
export SPARK_MASTER_PORT=7077

设置slaves文件

[root@mypc01 conf]# cp slaves.template slaves
[root@mypc01 conf]# vim slaves
mypc02
mypc03

分发到其余两个节点
启动

[root@mypc01 spark]# start-all.sh
StandAlone模式集群模型

master进程:管理整个集群,分配资源
worker进程: 真正执行spark程序的节点, 与master进行心跳反馈
driver: 进程,spark程序在哪启动,driver就在哪里.
executor: 位于worker节点, 执行spark的task.

yarn模式搭建

在上述基础上修改修改hadoop的yarn-site.xml

<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

修改spark-env.sh,告诉spark hadoop和yarn的位置

export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export YARN_CONF_DIR=/usr/local/hadoop/etc/hadoop

运行测试

yarn Client模式运行

其中spark-submit为命令,100表示执行100次,--deploy-mode client表示模式为yarn client,jar为所执行的程序

spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode client \
    --driver-memory 2g \
    --executor-memory 2g \
    --executor-cores 2 \
    /usr/local/spark/examples/jars/spark-examples_2.11-2.2.3.jar  \
    100

spark框架支持神经网络吗 spark框架怎么搭建_hadoop


执行流程概述

1 client向yarn的RM申请启动APP Master (因为要执行程序嘛,入口只能是client申请

2 RM表示同意并找到一个NM.给该NM分配一个container用于启动AppMaster

3 AM启动后开始干活,启动Excutor执行task

4 Driver分配task并监控task的执行情况

5任务执行完后通知RM申请注销任务.

yarn cluster模式运行

spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode cluster \
    --driver-memory 2g \
    --executor-memory 2g \
    --executor-cores 2 \
    /usr/local/spark/examples/jars/spark-examples_2.11-2.2.3.jar  \
    100

spark框架支持神经网络吗 spark框架怎么搭建_spark_02


执行流程

1 client向yarn的RM申请启动APP Master (因为要执行程序嘛,入口只能是client申请

2 RM表示同意并找到一个NM.给该NM分配一个container用于启动AppMaster

3 AM启动后开始干活,启动Excutor执行task

4 Driver分配task并监控task的执行情况

5任务执行完后通知RM申请注销任务.