spark

2020寒假学习笔记16

霸气de小男生 提交于 2020-02-12 20:24:23
  今天顺利完成了spark的第五个实验,但也是解决了很久。   首先要把mysql的驱动jar包放进spark的jars文件夹下,最重要的还是要带jar包启动shell编程: bin/spark-shell--jars/usr/local/spark/jars/mysql-connector-java-5.1.40-bin.jar   随后又做了实验七,在第二部分就遇到了困难。 来源: https://www.cnblogs.com/qianmo123/p/12300465.html

在Eclipse上运行Spark(Standalone,Yarn-Client)

浪尽此生 提交于 2020-02-12 04:27:57
欢迎转载,且请注明出处,在文章页面明显位置给出原文连接。 原文链接:http://www.cnblogs.com/zdfjf/p/5175566.html 我们知道有eclipse的Hadoop插件,能够在eclipse上操作hdfs上的文件和新建mapreduce程序,以及以Run On Hadoop方式运行程序。那么我们可不可以直接在eclipse上运行Spark程序,提交到集群上以YARN-Client方式运行,或者以Standalone方式运行呢? 答案是可以的。下面我来介绍一下如何在eclipse上运行Spark的wordcount程序。我用的hadoop 版本为2.6.2,spark版本为1.5.2。 1.Standalone方式运行 1.1 新建一个普通的java工程即可,下面直接上代码, 1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses

pyspark 操作

前提是你 提交于 2020-02-11 23:53:20
1. 日期转时间戳 spark_df_from_csv = spark.read.csv('/data1/AIPlatform/look_order_cross_city_new_deepfm_0116_0130_origin.csv', header=True) spark_df_from_csv = spark_df_from_csv.withColumn('parsed_log_time', spark_df_from_csv['parsed_log_time'].cast("timestamp")) spark_df_from_csv = spark_df_from_csv.withColumn('parsed_log_time', F.unix_timestamp(spark_df_from_csv['parsed_log_time'])) 来源: CSDN 作者: 我是女孩 链接: https://blog.csdn.net/u013385018/article/details/104270438

kafka不为人知的一面-Kafka streams

荒凉一梦 提交于 2020-02-11 22:46:43
kafka不为人知的一面-Kafka streams 1、为什么要有kafka stream 当前已经有非常多的流式处理系统,最知名且应用最多的开源流式处理系统有Spark Streaming和Apache Storm。Apache Storm发展多年,应用广泛,提供记录级别的处理能力,当前也支持SQL on Stream。而Spark Streaming基于Apache Spark,可以非常方便与图计算,SQL处理等集成,功能强大,对于熟悉其它Spark应用开发的用户而言使用门槛低。另外,目前主流的Hadoop发行版,如Cloudera和Hortonworks,都集成了Apache Storm和Apache Spark,使得部署更容易。 既然Apache Spark与Apache Storm拥用如此多的优势,那为何还需要Kafka Stream呢?主要有如下原因。 第一,Spark和Storm都是流式处理框架,而Kafka Stream提供的是一个基于Kafka的流式处理类库。框架要求开发者按照特定的方式去开发逻辑部分,供框架调用。开发者很难了解框架的具体运行方式,从而使得调试成本高,并且使用受限。而Kafka Stream作为流式处理类库,直接提供具体的类给开发者调用,整个应用的运行方式主要由开发者控制,方便使用和调试。 第二

spark shuffle细则及调优

谁都会走 提交于 2020-02-11 20:50:55
什么是Spark Shuffle • 问题:每一个key对应的value不一定都是在一个partition中,也不太可能在同一个节点上,因为RDD是分布式 的弹性的数据集,他的partition极有可能分布在各个节点上。 • 如何聚合? – Shuffle Write:上一个stage的每个map task就必须保证将自己处理的当前分区中的数据相同的key写入一 个分区文件中,可能会写入多个不同的分区文件中 – Shuffle Read:reduce task就会从上一个stage的所有task所在的机器上寻找属于自己的那些分区文件,这样就可以保证 每一个key所对应的value都会汇聚到同一个节点上去处理和聚合 三种shuffle方式 原始的方式:Hash-Based Shuffle 上图中Shuffle过程可能会产生的问题? – 小文件过多,耗时低效的IO操作 – OOM,缓存过多 优化后的HashShuffleManager 一个core内的task共用buffer SortShuffle运行原理 – 普通运行机制 – bypass运行机制 bypass运行机制的触发条件如下: shuffle reduce task数量小于spark.shuffle.sort.bypassMergeThreshold参数的值。 shuffle调优 1:sparkconf.set("spark

Apache Griffin安装

拈花ヽ惹草 提交于 2020-02-11 18:25:50
一、集群基础环境 1.JDK (1.8 or later versions) 2.PostgreSQL(version 10.4) or MySQL(version 8.0.11) 3.Hadoop (2.6.0 or later) 4.Hive (version 2.x),安装参考 : https://www.cnblogs.com/caoxb/p/11333741.html 5.Spark (version 2.2.1) 安装参考: https://blog.csdn.net/k393393/article/details/92440892 6.Livy 安装参考:https://www.cnblogs.com/students/p/11400940.html 7.ElasticSearch (5.0 or later versions). 参考 https://blog.csdn.net/fiery_heart/article/details/85265585 8.Scala 二、安装Grigffin(前提以上集群搭好) 1、MySQL: 1)在MySQL中创建数据库quartz, 2)然后执行 Init_quartz_mysql_innodb.sql 脚本初始化表信息: mysql -u <username> -p <password> quartz < Init

第 4 章 SparkSQL数据源

白昼怎懂夜的黑 提交于 2020-02-11 14:23:44
上篇: 第 3章 IDEA创建SparkSQL程序 通用加载/保存方法 1、手动指定选项 Spark SQL的DataFrame接口支持多种数据源的操作。一个DataFrame可以进行RDDs方式的操作,也可以被注册为临时表。把DataFrame注册为临时表之后,就可以对该DataFrame执行SQL查询。 Spark SQL的默认数据源为Parquet格式。数据源为Parquet文件时,Spark SQL可以方便的执行所有的操作。修改配置项spark.sql.sources.default,可修改默认数据源格式。 读取 //查看文件格式 scala > spark . read . csv format jdbc json load option options orc parquet schema table text textFile // scala > spark . read . load ( "file:///usr/local/hadoop/module/datas/2.json" ) 报错信息: 查看spark文件信息: 尝试读取 users.parque t这个文件的信息: scala > spark . read . load ( "file:///usr/local/hadoop/Spark/spark-2.1.1-bin-hadoop2.7

spark sql

不问归期 提交于 2020-02-11 14:18:02
Spark 用来操作结构化和半结构化数据的接口——Spark SQL。结构化数据是指任何有结构信息的数据。所谓结构信息,就是每条记录共用的已知的字段集合。当数据符合这样的条件时,Spark SQL 就会使得针对这些数据的读取和查询变得更加简单高效。 Spark SQL 提供了以下三大功能: (1) Spark SQL 可以从各种结构化数据源(例如JSON、Hive、Parquet 等)中读取数据。 (2) Spark SQL 不仅支持在Spark 程序内使用SQL 语句进行数据查询,也支持从类似商业智能软件Tableau 这样的外部工具中通过标准数据库连接器(JDBC/ODBC)连接SparkSQL 进行查询。 (3) 当在Spark 程序内使用Spark SQL 时,Spark SQL 支持SQL 与常规的Python/Java/Scala代码高度整合,包括连接RDD 与SQL 表、公开的自定义SQL 函数接口等。这样一来,许多工作都更容易实现了。 为了实现这些功能,Spark SQL 提供了一种特殊的RDD,叫作SchemaRDD。SchemaRDD是存放Row 对象的RDD,每个Row 对象代表一行记录。SchemaRDD 还包含记录的结构信息(即数据字段)。SchemaRDD 看起来和普通的RDD 很像,但是在内部,SchemaRDD 可以利用结构信息更加高效地存储数据

Spark-Java独立应用编程--理解:

独自空忆成欢 提交于 2020-02-11 09:33:54
条件: maven 、 java 应用程序代码、 pom.xml -pom.xml 文件 1 <project> 2 <groupId>edu.berkeley</groupId> 3 <artifactId>simple-project</artifactId> 4 <modelVersion>4.0.0</modelVersion> 5 <name>Simple Project</name> 6 <packaging>jar</packaging> 7 <version>1.0</version> 8 <repositories> 9 <repository> 10 <id>Akka repository</id> 11 <url>http://repo.akka.io/releases</url> 12 </repository> 13 </repositories> 14 <dependencies> 15 <dependency> <!-- Spark dependency --> 16 <groupId>org.apache.spark</groupId> 17 <artifactId>spark-core_2.12</artifactId> 18 <version>3.0.0-preview2</version> 19 </dependency> 20 <

spark 的createDstream和createDirectStream区别

江枫思渺然 提交于 2020-02-11 02:59:44
spark读取kafka数据流提供了两种方式createDstream和createDirectStream。 两者区别如下: 1、KafkaUtils.createDstream 构造函数为KafkaUtils.createDstream(ssc, [zk], [consumer group id], [per-topic,partitions] ) 使用了receivers来接收数据,利用的是Kafka高层次的消费者api,对于所有的receivers接收到的数据将会保存在 Spark executors中,然后通过Spark Streaming启动job来处理这些数据,默认会丢失,可启用WAL日志,该日志存储在HDFS上 A、创建一个receiver来对kafka进行定时拉取数据,ssc的rdd分区和kafka的topic分区不是一个概念,故如果增加特定主体分区数仅仅是增加一个receiver中消费topic的线程数,并不增加spark的并行处理数据数量 B、对于不同的group和topic可以使用多个receivers创建不同的DStream C、如果启用了WAL,需要设置存储级别,即KafkaUtils.createStream(….,StorageLevel.MEMORY_AND_DISK_SER) 2.KafkaUtils.createDirectStream