安装教程 https://www.cnblogs.com/dion-90/articles/9058500.html
spark-jdb 使用 chttps://www.csdn.net/gather_2f/MtTaYg2sMTM3OS1ibG9n.html
spark-core使用 https://blog.csdn.net/hlp4207/article/details/100831384
kylin 与Spark https://blog.51cto.com/xk0230/1927992
Spark调度模式-FIFO和FAIR https://blog.csdn.net/dabokele/article/details/51526048
https://www.cnblogs.com/cuishuai/p/7910348.html
详解 https://blog.csdn.net/u013332124/article/details/90339850
Spark动态资源分配 https://www.jianshu.com/p/3c38c1a98984
Spark Thrift Server 架构和原理介绍 https://blog.csdn.net/u013332124/article/details/90339850
Spark Thrift 性能调优 https://www.cnblogs.com/zz-ksw/p/12463799.html
/home/etluser/kong/spark/spark-2.3.4-bin/spark-2.3.4-bin-hadoop2.6/sbin/stop-thriftserver.sh
/home/etluser/kong/spark/spark-2.3.4-bin/spark-2.3.4-bin-hadoop2.6/sbin/start-thriftserver.sh \
--master yarn \
--driver-memory 1G \
--executor-memory 1G \
--num-executors 2 \
--executor-cores 2 \
--conf spark.scheduler.mode=FAIR \
--conf spark.scheduler.allocation.file=/home/etluser/kong/spark/spark-2.3.4-bin/spark-2.3.4-bin-hadoop2.6/conf/fairscheduler.xml \
--hiveconf hive.server2.thrift.bind.host=`hostname -i` \
--hiveconf hive.server2.thrift.port=9012
启动客户端
# ThriftServer的本质是将Server服务以spark job的形式提交到集群运行,所以需要指定队列
sbin/start-thriftserver.sh --hiveconf spark.yarn.queue=root.bigdata.date
./bin/spark-shell
实现原理 https://blog.csdn.net/qq_16681169/article/details/82432841
https://blog.csdn.net/dxyna/article/details/79772343
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:
1.运行速度快,Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。
2.适用场景广泛,大数据分析统计,实时数据处理,图计算及机器学习
3.易用性,编写简单,支持80种以上的高级算子,支持多种语言,数据源丰富,可部署在多种集群中
4.容错性高。Spark引进了弹性分布式数据集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即充许基于数据衍生过程)对它们进行重建。另外在RDD计算时可以通过CheckPoint来实现容错,而CheckPoint有两种方式:CheckPoint Data,和Logging The Updates,用户可以控制采用哪种方式来实现容错。
Spark的适用场景
目前大数据处理场景有以下几个类型:
1.复杂的批量处理(Batch Data Processing),偏重点在于处理海量数据的能力,至于处理速度可忍受,通常的时间可能是在数十分钟到数小时;
2.基于历史数据的交互式查询(Interactive Query),通常的时间在数十秒到数十分钟之间
3.基于实时数据流的数据处理(Streaming Data Processing),通常在数百毫秒到数秒之间
Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的。
Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。Spark提供的sql形式的对接Hive、JDBC、HBase等各种数据渠道的API,用Java开发人员的思想来讲就是面向接口、解耦合,ORMapping、Spring Cloud Stream等都是类似的思想。
Spark Streaming:基于SparkCore实现的可扩展、高吞吐、高可靠性的实时数据流处理。支持从Kafka、Flume等数据源处理后存储到HDFS、DataBase、Dashboard中。对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据。
MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。
GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作