Apache Spark

Spark学习笔记之WordCount

人盡茶涼 提交于 2019-11-29 09:41:33
1.pom.xml <dependencies> <!-- 导入scala的依赖 --> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>${scala.version}</version> </dependency> <!-- 导入spark的依赖 --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>${spark.version}</version> </dependency> <!--spark sql依赖--> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>${spark.version}</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId>

Structured Streaming 简单数据处理——读取CSV并提取列关键词

╄→гoц情女王★ 提交于 2019-11-29 09:39:52
前言 近日想学学Spark 比较新的Structured Streaming ,百度一轮下来,全都是千篇一律的wordcount ,很是无语。只好自己摸索,除了Dataframe的Select和Filter 操作还能做些什么处理。因为用的Python,用过Pandas,摸索中,想转Pandas去处理,结果readStream并不支持直接toPandas()这个方法。最后翻来官方API,发现了还有Dataframe还有一个强大的操作,并且能够在readStream中使用,那就是——UDF。 环境准备 Hadoop 2.8.5 Spark 2.4.3 Python 3.7.3 jieba (jieba分词工具,提供了TF-IDF关键词提取方法,pip install jieba) 程序下面的代码都是在交互式环境下执行,即pyspark下。 数据准备 id title_zh content_zh publish_date 假设CSV数据如上表格所示,分别表示文章id,标题,内容,发布时间。 有如下需求:提取标题的关键词,并将关键词添加到新列。(本来还有提取文章关键词,原理其实一样,就不多写了) 读取数据 读取csv文件有两步:定义schema,按照schema读取文件。 定义schema: 本例中,id为Integer类型,publish_date为TimestampType类型

MapReduce和Spark的区别

孤人 提交于 2019-11-29 09:07:52
性能: S park是在内存中处理数据的,而MapReduce是通过map和reduce操作在磁盘中处理数据,所以正常情况下Spark的处理速度会比mapreduce快。但是当数据量大,不能一次性加载到内存的时候,Spark性能就会降低。 读取同样的数据进行迭代计算的话使用Spark,一次性读取或者ETL用mapreduce更好。 小结:当数据大小适于读入内存,尤其是在专用集群上时,Spark 表现更好;Hadoop MapReduce 适用于那些数据不能全部读入内存的情况,同时它还可以与其它服务同时运行。 使用难度 Spark 有着灵活方便的Java,Scala和 Python 的API,同时对已经熟悉 SQL 的技术员工来说, Spark 还适用 Spark SQL(也就是之前被人熟知的 Shark)。多亏了 Spark 提供的简单易用的构造模块,我们可以很容易的编写自定义函数。它甚至还囊括了可以即时反馈的交互式命令模式。 Hadoop MapReduce 是用 Java 编写的,但由于其难于编程而备受诟病。尽管需要一定时间去学习语法,Pig 还是在一定程度上简化了这个过程, Hive也为平台提供了 SQL 的兼容。一些 Hadoop 工具也可以无需编程直接运行 MapReduce 任务。Xplenty 就是一个基于 Hadoop 的数据整合服务,而且也不需要进行任何编程和部署

大数据认知阶段——如何学习大数据相关技术

久未见 提交于 2019-11-29 08:17:54
已经看了大数据相关知识一阵时间了,自己也是从新手开始的,所以看了大量的大数据如何入门的技术博客、帖子等,下面记录总结下自己学习的内容。 一、大数据学习前期知识储备 在学习大数据前,需要对云计算、虚拟化、Linux、JAVA这几个方面都需要了解,下面简单阐述下这几个方面的概念。 1.云计算 所谓的云计算,指的就是把你的软件和服务统一部署在数据中心,统一管理,从而实现高伸缩性。 云计算的部署方式 从部署方式来说,总共有两类云计算: 私有云:数据中心部署在企业内部,由企业自行管理。微软为大家提供了Dynamic Data Center Toolkit,来方便大家管理自己的数据中心。 公共云:数据中心由第三方的云计算供应商提供,供应商帮助企业管理基础设施(例如硬件,网络,等等)。企业将自己的软件及服务部属在供应商提供的数据中心,并且支付一定的租金。Windows Azure正是这样一个公共云平台。 云计算的运营方式 从运营方式来说,总共有三类云计算: 软件即服务(SaaS):云计算运营商直接以服务的形式供应软件,供最终用户使用。有些服务还提供了SDK,从而使得第三方开发人员可以进行二次开发。在这种运营模式下,开发人员通常只能针对现有的产品开发插件,而无法充分挖掘平台和操作系统的特点,不过他们可以在现有产品的基础上添加新的功能,而不必从头开始实现。微软的Bing,Windows Live

大数据学习路线推荐

与世无争的帅哥 提交于 2019-11-29 07:59:38
1 Java基础: 视频方面: 推荐《毕向东JAVA基础视频教程》。学习hadoop不需要过度的深入,java学习到javase,在Java虚拟机的内存管理、以及多线程、线程池、设计模式、并行化多多理解实践即可。 书籍方面: 推荐李兴华的《java开发实战经典》 2 Linux基础: 视频方面: (1)马哥的高薪Linux视频课程-Linux入门、    (2)兄弟连的新版Linux视频教程、 (3)老段的讲解鸟哥Linux基础+私房菜、 (4)老男孩的Linux。 看的过程中,不可只看不同步操作,这是最危险的一件事!不需全部看完。如:基本的Linux操作系统官网下载、安装(命令行界面和图形界面)、基本命令、网络配置、快照、VM tools工具安装、虚拟机的菜单熟悉等等。这是必须要首先完成的。之后,可回过来再根据需要使用到哪些,再来学习即可。当作工具书! 书籍方面: (1)《鸟哥的linux私房菜》, (2)之后,进一步可以看书籍《鸟哥的服务架设篇》。 (3)Linux随身指南      (4)老男孩Linux运维 系统学习只要多多实践,学习linux并不枯燥。 1 3 hadoop书籍: (1)《Hadoop实战 (第1版) 陆嘉恒》、《Hadoop实战 (第2版) 陆嘉恒》 (2) 《hadoop definitive guide 》, 中文书名是《Hadoop权威指南

为互联网业务而生:阿里云全球首发云Cassandra服务!

非 Y 不嫁゛ 提交于 2019-11-29 06:26:07
引言:十年沉淀、全球宽表排名第一、阿里云首发云Cassandra服务ApsaraDB for Cassandra是基于开源Apache Cassandra,融合阿里云数据库DBaaS能力的分布式NoSQL数据库。Cassandra已有10年+的沉淀,基于Amazon DynamoDB的分布式设计和 Google Bigtable 的数据模型。具备诸多优异特性:采用分布式架构、无中心、支持多活、弹性可扩展、高可用、容错、一致性可调、提供类SQL查询语言CQL等。Cassandra为互联网业务而生,已在全球广大互联网公司有成熟应用,是目前最流行的宽表数据库。阿里云在2019年8月份全球首发云Cassandra服务。 宽表市场排名: 排名第一。且 Datastax、ScyllaDB、CosmosDB都兼容CQL,已成事实标准: 10+年Cassandra发展历程: 选择阿里云Cassandra服务的几大理由: 理由一:Cassandra为互联网业务而生 如果业务系统有事务的要求,我们建议使用MySQL或者阿里云POLARDB数据库,其提供的事务特性及SQL能力更匹配BOSS、CRM、ERP等业务需求。 而对于互联网业务有如下特点:极致在线、高并发、大容量、可调的一致性、灵活扩展,MySQL并非最佳选择,Cassandra应运而生。 极致在线:支持多机房部署,单节点/单机房故障时

为互联网业务而生:阿里云全球首发云Cassandra服务!

可紊 提交于 2019-11-29 06:21:54
引言:十年沉淀、全球宽表排名第一、阿里云首发云Cassandra服务 ApsaraDB for Cassandra是基于开源Apache Cassandra,融合阿里云数据库DBaaS能力的分布式NoSQL数据库。Cassandra已有10年+的沉淀,基于Amazon DynamoDB的分布式设计和 Google Bigtable 的数据模型。具备诸多优异特性:采用分布式架构、无中心、支持多活、弹性可扩展、高可用、容错、一致性可调、提供类SQL查询语言CQL等。Cassandra为互联网业务而生,已在全球广大互联网公司有成熟应用,是目前最流行的宽表数据库。阿里云在2019年8月份全球首发云Cassandra服务。 宽表市场排名: 排名第一。且 Datastax、ScyllaDB、CosmosDB都兼容CQL,已成事实标准: 10+年Cassandra发展历程: 选择阿里云Cassandra服务的几大理由: 理由一:Cassandra为互联网业务而生 如果业务系统有事务的要求,我们建议使用MySQL或者阿里云POLARDB数据库,其提供的事务特性及SQL能力更匹配BOSS、CRM、ERP等业务需求。 而对于互联网业务有如下特点:极致在线、高并发、大容量、可调的一致性、灵活扩展,MySQL并非最佳选择,Cassandra应运而生。 极致在线:支持多机房部署,单节点/单机房故障时

结构化数据存储,如何设计才能满足需求?

一曲冷凌霜 提交于 2019-11-29 05:59:28
阿里妹导读 :任何应用系统都离不开对数据的处理,数据也是驱动业务创新以及向智能化发展最核心的东西。数据处理的技术已经是核心竞争力。在一个完备的技术架构中,通常也会由应用系统以及数据系统构成。应用系统负责处理业务逻辑,而数据系统负责处理数据。本篇文章主要面向数据系统的研发工程师和架构师,希望对你有所启发。 前言 传统的数据系统就是所谓的『大数据』技术,这是一个被创造出来的名词,代表着新的技术门槛。近几年得益于产业的发展、业务的创新、数据的爆发式增长以及开源技术的广泛应用,经历多年的磨炼以及在广大开发者的共建下,大数据的核心组件和技术架构日趋成熟。特别是随着云的发展,让『大数据』技术的使用门槛进一步降低,越来越多的业务创新会由数据来驱动完成。 『大数据』技术会逐步向轻量化和智能化方向发展,最终也会成为一个研发工程师的必备技能之一,而这个过程必须是由云计算技术来驱动以及在云平台之上才能完成。应用系统和数据系统也会逐渐融合,数据系统不再隐藏在应用系统之后,而是也会贯穿在整个业务交互逻辑。传统的应用系统,重点在于交互。而现代的应用系统,在与你交互的同时,会慢慢地熟悉你。数据系统的发展驱动了业务系统的发展,从业务化到规模化,再到智能化。 业务化:完成最基本的业务交互逻辑。 规模化:分布式和大数据技术的应用,满足业务规模增长的需求以及数据的积累。 智能化:人工智能技术的应用,挖掘数据的价值

Spark中hive的使用(hive操作es示例)

对着背影说爱祢 提交于 2019-11-29 04:25:45
配置hive-site.xml < property > < name > javax.jdo.option.ConnectionURL </ name > < value > jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true </ value > < description > JDBC connect string for a JDBC metastore </ description > </ property > < property > < name > javax.jdo.option.ConnectionDriverName </ name > <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> <description>username to use against metastore database</description> </property>

spark导入在idea中运行

…衆ロ難τιáo~ 提交于 2019-11-29 04:24:38
本文主要介绍在window平台上,spark官方代码例子直接在idea中运行和测试。 1、saprk官网( http://spark.apache.org/downloads.html )下载spark 2.3.2,并解压在D:\project\idea_spark\spark-2.3.2目录 2、执行maven命令下载相关依赖包 设置环境变量path的git命令目录 不然执行后边maven命令时,可能会报下边错误: Execute failed: java.io.IOException: Cannot run program "bash" 设好环境变量后 命令行在D:\project\idea_spark\spark-2.3.2目录中运行命令 mvn idea:idea 这个命令主要是为了下载spar源码依赖的相关jar包和插件,如果直接使用idea导入spark源码,有可能会因为下载jar包(网速过慢)导致加载源码失败而运行不成功。 这个过程网速好的话,可能10来分钟执行完成,也可能执行大半天才完成。 3、idea导入,菜单File->New->Project from Existing Source..,选中D:\project\idea_spark\spark-2.3.2目录导入,Import Project中选中maven导入 按上图选择框选择,然后其它窗口一路Next。