- 博客(79)
- 收藏
- 关注
原创 Spark Streaming提取数据
一、简介Spark Streaming是一个从各种来源获取实时流数据的框架。它支持的流资包括HDFS、Kafka、Flume以及自定义流等。Spark Streaming操作可以从故障中自动恢复,这对于在线数据处理十分重要。Spark Streaming表示使用离散流(DStream)的流数据,该数据流周期性的创建包含最后一个时间窗口中进入的数据的RDD.Spark Streaing可以与单个程序中的其他Spark组建结合,将实时处理与机器学习、SQL和图形操作统一起来。从Spark2.0开始,新的结构
2021-01-03 21:22:15 1410 1
原创 HBase基础API(创建、插入、读取、扫描及删除)
添加Maven依赖<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope></dependency><dependency> <groupId>org.apache.hbas
2020-12-23 19:56:45 626
原创 HBase简介及HBase Shell操作
HBase的安装可以参照:HBase伪分布式搭建一、简介1、产生背景以前Google存储大量的网页信息,如何存储,如何计算,如何快速查询就成为了一个问题,后来在2003年Google发表了3篇论文提供了解决思路,分别是GFS、MAPREDUCE、BigTable ,但是没有讲源码开源出来,后来这几篇论文被Doung Cutting(被誉为Hadoop之父)看见了,就使用java语言实现了三篇论文,与之对应的就是:GFS— HDFS 分布式存储MAPREDUCE—MAPREDUCE 分布式计算BI
2020-12-22 22:11:12 569 1
原创 kafka Streams
一、简介1、概述Kafka Streams是一套处理分析Kafka中存储数据的客户端类库,处理完的数据可以写回Kafka,或者发送给外部系统。它构建在一些重要的流处理概念之上:区分事件时间和处理时间、开窗的支持、简单有效的状态管理等。2、批处理和流计算批计算批计算是在计算之前将这次计算的源数据一次性到位,按数据块来处理数据,每一个task接收一定大小的数据块,然后经过批计算在这次计算的结果一次性返还给调用者。批计算的处理的对象是有限数据(bound data),得到的结果也是一个有限结果集,因
2020-12-21 17:32:49 579 1
原创 java编写kafka生产者、消费者示例
一、新建maven项目添加依赖<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.0.0</version></dependency>二、新建topic// 新建一个名为kafkaDemo的topic。分区数为3,副本数为
2020-12-12 21:41:23 534
原创 kafka环境搭建
Kafka环境搭建前提准备hadoop环境搭建完成Centos7环境下hadoop伪分布式搭建zookeeper搭建完成zookeeper搭建kafka安装包kafka_2.11-2.0.0.tgz,需要自取:kafka压缩包(提取码:6z6z)Kafka环境搭建将压缩包上传至/opt目录解压压缩包vi tar -zxvf kafka_2.11-2.0.0.tgz重命名mv ./kafka_2.11-2.0.0 ./kafka修改配置文件vi /opt/kafka/con
2020-12-10 20:12:16 128
原创 kafka原理介绍
一、简介1、概述Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统,常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka凭借着自身的优势越来越受到互联网企业的青睐,如今已经成为商业级的消息中间件2、消息中间件消息中间件是利用高效可靠的消息传递机制进行异步的数据传输,并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机
2020-12-10 20:04:31 485 1
原创 Spark GraphX之pregel
PregelPregel 是 Google 自 2009 年开始对外公开的图计算算法和系统, 主要用于解决无法在单机环境下计算的大规模图论计算问题pregel封装源码首先需要了解一下几个概念顶点的状态激活态和钝化态。顶点激活的条件成功发送一条消息,或者成功接收一条消息def pregel[A: ClassTag]( initialMsg: A, // 参数初始消息 maxIterations: Int = Int.MaxValue, // 最大迭代次数
2020-12-06 22:13:30 1432
原创 Flume环境搭建和简介
Flume环境搭建前提准备hadoop环境搭建完成可参考:Centos7中安装配置Hadoop(伪分布式搭建)安装包apache-flume-1.6.0-bin.tar.gz ,需要自取:Flume安装包(提取码:6z6z)搭建将压缩包上传至/opt下解压压缩包tar -zxvf flume-ng-1.6.0-cdh5.14.0.tar.gz修改名称mv apache-flume-1.6.0-cdh5.14.0-bin/ flume160修改配置①进入conf目录:cd /o
2020-12-04 09:54:29 1184 1
原创 Spark GraphX之ConnectedComponents
图的连通性介绍无向图顶点的连通性在一个无向图 G 中,若从顶点 i 到顶点 j 有路径相连(当然从 j 到 i 也一定有路径),则称 i 和 j 是连通的。连通图在一个无向图 G 中,如果图中任意两点都是连通的,那么图被称作连通图连通分量无向图G的极大连通子图称为G的连通分量( Connected Component),这里的极大是指顶点个数极大。任何连通图的连通分量只有一个,即是其自身,非连通的无向图有多个连通分量有向图弱连通图有向图的底图(无向图)是连通图,则是弱连通图。简单来
2020-11-29 22:29:34 2339
原创 Spark GraphX中的PageRank
PageRank简介PageRank(网页级别),取自Google的创始人LarryPage。它是Google排名运算法则(排名公式)的一部分,是Google用于用来标识网页的等级/重要性的一种方法,是Google用来衡量一个网站的好坏的唯一标准。PageRank算法将网页按重要性进行排序。有了这个排序,人们在搜索关键词时就能优先看到重要且优质的网页,从而更易于得到所需要的信息基于页面链接属性的PageRank算法这种算法虽然简单,却能揭示PageRank的本质web页面抽象首先我们对Web
2020-11-26 23:28:52 626
原创 Spark SQL解析json文件
Spark SQL解析json文件一、get_json_object二、from_json三、explode四、案例:解析json格式日志数据数据处理先介绍一下会用到的三个函数:get_json_object、from_json、explode一、get_json_object从一个json 字符串中根据指定的json 路径抽取一个json 对象def get_json_object(e: org.apache.spark.sql.Column,path: String): org.apache.s
2020-11-22 22:06:26 9147 1
原创 Spark SQL
一、SQL on HadoopSQL是一种传统的用来进行数据分析的标准Hive:原始的SQL-on-Hadoop解决方案Impala:和Hive一样,提供了一种可以针对已有Hadoop数据编写SQL查询的方法Presto:类似于Impala,未被主要供应商支持Shark:Spark SQL的前身,设计目标是作为Hive的补充Phoenix:基于HBase的开源SQL查询引擎二、Spark SQLSpark SQL的前身Shark是spark sql的前身,它的设计初衷是让Hive运行在
2020-11-18 19:33:51 269
原创 Spark SQL 中的UDF、UDAF、UDTF
UDFUDF(User-defined functions)用户自定义函数,简单说就是输入一行输出一行的自定义算子。(一对一)数据文件:hobbies.txt,第一列为姓名,其他为兴趣爱好alice,jogging&Coding&cookinglina,traveldance&cooking自定义UDF,实现的是计算每个人的兴趣爱好个数// 样例类case class Hobbies(name:String,hobbies:String)object UDFDemo
2020-11-18 19:03:39 810
原创 Spark RDD算子(八)mapPartitions, mapPartitionsWithIndex
mapPartions对一个rdd里所有分区遍历
2020-11-16 12:17:42 514
原创 Spark RDD算子(七)countByKey,countByValue,collectAsMap
countByKey统计pairRDD(键值对形式的rdd)key出现的次数,返回的结果是一个map,key为原key,value为key出现的次数scala版本val rdd = sc.parallelize(List(("a",1),("a",2),("b",1),("c",3),("a",5)))rdd.countByKeyjava版本JavaRDD<String> rdd1 = sc.parallelize(Arrays.asList("a", "a", "b", "b"
2020-11-12 18:40:38 938
原创 Spark RDD算子(六) aggregate,collect,count,first,fold, reduce,take,top,takeOrdered
这里写目录标题aggregatescala版本java版本collectscala版本java版本countscala版本java版本countByValuescala版本java版本firstscala版本java版本foldscala版本java版本reducescala版本java版本takescala版本java版本topscala版本java版本takeOrderedscala版本java版本aggregatedef aggregate[U](zeroValue: U)(seqOp: (U,
2020-11-12 16:57:58 362
原创 Spark RDD(五)groupByKey,cogroup,subtractByKey,join,leftOuterJoin,rightOuterJoin
Spark RDD(五)groupByKeyscala版本java版本cogroupscala版本java版本subtractByKeyscala版本java版本joinscala版本java版本leftOuterjoin及rightOuterJoinscala版本java版本groupByKeygroupByKey会将RDD[key,value] 按照相同的key进行分组,形成RDD[key,Iterable[value]]的形式scala版本val rdd1 = sc.parallelize(L
2020-11-11 09:47:39 349
原创 Spark RDD算子(四)combineByKey,reduceByKey,foldByKey,sortByKey
Spark RDD算子(四)combineByKeyscala版本java版本reduceByKeycombineByKeydef combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C): RDD[(K, C)]def combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) =&
2020-11-10 20:08:45 515
原创 Spark RDD算子(三) mapToPair,flatMapToPair
Spark RDD算子(三)mapToPairscala版本java版本flatMapToPairscala版本java版本mapToPair此函数会对一个RDD中的每个元素调用f函数,调用f函数后会进行一定的操作把每个元素都转换成一个<K,V>类型的对象,例如:rdd1中包含hello、world元素,经f函数转换后,可以变成类似<hello,1>,<world,1>这样的键值对形式scala版本scala没有该函数,只需要利用map即可实现val rdd1
2020-11-10 10:44:42 2081
原创 Spark RDD算子(二)distinct,union,intersection,subtract,cartesian
Spark RDD算子(二)distinctscala版本java版本unionscala版本java版本intersectionscala版本java版本subtractscala版本java版本cartesianscala版本java版本distinctdistinct方法可以去掉重复的元素, 此方法开销很大scala版本例:去除重复元素val rdd2 = sc.parallelize(List(1,2,1,5,3,4,6,6,5,3))rdd2.distinct().collect.fo
2020-11-09 19:39:41 248
原创 Spark RDD算子(一) parallelize,makeRDD,textFile,filter,map,flatMap
parallelize通过调用SparkContext的parallelize方法,在一个已经存在的Scala集合上创建的(一个Seq对象)。集合的对象将会被拷贝,创建出一个可以被并行操作的分布式数据集scala版本def parallelize[T](seq: Seq[T],numSlices: Int)(implicit arg0: ClassTag[T]): RDD[T]第一个参数是一个seq集合第二个参数是分区数,可省略返回值是一个RDDscala> sc.paralleli
2020-11-09 17:16:05 1165
原创 Spark基础及架构
这里写目录标题Spark简介发展历程为什么使用SparkSpark优势Spark技术栈Spark常用三种运行模式Spark架构设计Spark架构核心组件Spark APISpark核心:RDDRDD概念RDD的特性RDD编程流程RDD创建Spark简介Spark 是加州大学伯克利分校 AMP(Algorithms,Machines,People)实验室开发的通用内存并行计算框架。发展历程2009年诞生于加州大学伯克利分校AMP实验室2010年正式开源2013年6月正式成为Apache孵化项目
2020-11-04 21:32:40 341 1
原创 Scala的JDBC操作
scala对JDBC的操作与Java的类似,这里以连接mysql为例如果新建的的maven项目,直接在xml文件中配置以下代码即可,版本号可根据自己的mysql版本调整<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <groupId>mysql</groupId> <artifactId>mysql-con
2020-10-30 17:17:21 1482 1
原创 Scala中的模式匹配
目录简介语法模式中的变量类型匹配模式守卫数组模式匹配Option模式匹配样例类(case class)的模式匹配简介模式匹配是检查某个值(value)是否匹配某一个模式的机制,一个成功的匹配同时会将匹配值解构为其组成部分。它是Java中的switch语句的升级版,同样可以用于替代一系列的 if/else 语句。语法一个模式匹配语句包括一个待匹配的值,match关键字以及至少一个case语句import scala.util.Randomval x: Int = Random.nextInt(10
2020-10-30 14:23:31 205
原创 Scala--数组函数
Scala提供了大量的集合操作:++:合并集合,并返回一个新的数组,新数组包含左右两个集合对象的内容。val a = Array(1,2,3)val b = Array(4,5,6)val c = a ++ b //c中的内容是(1,2,3,4,5,6)++: :与上个方法类似,但是该方法右边操纵数的类型决定着返回结果的类型。下面代码中List和LinkedList结合,返回结果是LinkedList类型val a = List(1,2,3)val b = scala.collection.
2020-10-29 22:27:59 1061
原创 Scala偏函数和部分应用函数
目录偏函数部分应用函数偏函数偏函数(Partial Function),是一个数学概念它不是"函数"的一种, 它跟函数是平行的概念Scala中的偏函数是一个trait,其的类型为PartialFunction[-A,+B],"-"符号表示逆变,-A表明输入参数为A类型或A类型的父类,也就是说输入的参数应为A的子集; "+"符号表示协变,+B表示可以是B类型或B类型的子类def funPartial:PartialFunction[Int,String] = { case 1=>"One"
2020-10-26 20:12:48 280
原创 Scala面向对象编程(OOP)
Scala OOP一、类 class一、类 class与Java相通的地方通过class关键字定义通过new关键字创建实例可以定义成员变量个方法类的成员可以用public,private、protected修饰,默认为public与Java不同的地方:类中无法定义静态成员变量和方法类无需明确定义构造方法。通过构造参数列表声明为类的一部分类成员访问修饰符java修饰符同一个类同一个包子类中任意地方private可以不可以不可以不可以d
2020-10-25 17:17:11 402 1
原创 Scala函数
Java中的Lambda表达式Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性首先新建一个接口OperationInterfacepublic interface OperationInterface { Integer option(Integer a,Integer b);}创建测试类TestOperation// 定义加减乘的Lambda表达式OperationInterface add = (Integer a,Integer b) ->
2020-10-22 15:24:25 215
原创 Scala基础(一)
什么是ScalaScala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序Scala特性面向对象特性①每个值都是对象②对象的数据类型和行为由类(Class)和特征(Trait)描述③利用特征实现混入式多重继承函数式编程①每个函数都是一个值②支持高阶函数、柯里化(currying)、样例类(case class)及模式匹配等静态类型语言扩展性:隐式类、字符串插值Scala基础语法
2020-10-19 19:41:31 286
原创 Sqoop数据迁移
Sqoop简介Sqoop是一个用于在Hadoop和关系数据库之间传输数据的工具,可以将数据从传统关系型数据库导入到HDFS、Hive、HBase,也可以将数据从HDFS导出到关系型数据库从RDB导入数据到HDFS导入表到HDFSsqoop import--connect jdbc:mysql://localhost:3306/database--driver com.mysql.jdbc.Driver--table table_name--where "condition"--usern
2020-10-11 14:47:40 405
原创 Sqoop环境搭建
Sqoop安装安装前提安装 Sqoop 的前提是已经具备 Java 和 Hadoop、Hive、ZooKeeper、HBase 的环境。下载并解压安装包自取(6z6z):sqoop安装包
2020-09-29 17:39:41 180
原创 Hive(四)--hive内置函数、自定义函数UDF
Hive函数分类:①从输入输出角度分类标准函数:一行数据中的一列或多列为输入,结果为单一值聚合函数:多行的零列到多列为输入,结果为单一值表生成函数:零个或多个输入,结果为多列或多行②从实现方式分类内置函数自定义函数内置函数Hive提供大量内置函数供开发者使用:①标准函数字符函数// 将字符串A中的符合java正则表达式B的部分替换为Cselect regexp_replace('foobar', 'oo|ar', '') from tableName; //输出fb
2020-09-28 16:25:17 602
原创 Hive(三)--窗口函数
窗口函数窗口函数是用于分析用的一类函数,要理解窗口函数要先从聚合函数说起。聚合函数是将某列中多行的值合并为一行,比如sum、count等。 而窗口函数则可以在本行内做运算,得到多行的结果,即每一行对应一行的值。 通用的窗口函数可以用下面的语法来概括:Function() Over (Partition By Column1,Column2,Order By Column3)窗口函数又分为以下三类: 聚合型窗口函数、分析型窗口函数、取值型窗口函数数据准备saml,2018-01-01,10ton
2020-09-25 17:26:47 334
原创 Hive(二)--join关联查询及数据装载、交换、排序
Hive查询select语句使用方法与mysql类似SELECT 1;SELECT [DISTINCT] column_nam_list FROM table_name;SELECT * FROM table_name;SELECT * FROM employee WHERE name!='Lucy' LIMIT 5;CTE(Common Table Expression)语法:WITH t1 AS (SELECT …) SELECT * FROM t1嵌套查询SELECT
2020-09-24 19:09:30 631
原创 Hive(一)--hive基础
什么是HiveHive是基于Hadoop的数据仓局解决方案,用来进行数据提取、转化、加载可以将结构化的数据映射为一张数据库表提供类sql的查询语句HQL(Hive Query Language)底层数据是存储在 HDFS 上Hive的本质是将 SQL 语句转换为 MapReduce 任务运行为什么使用HiveHive的优点:①提供了一个简单的优化模型②HQL类SQL语法,简化MR开发③支持在不同的计算框架上运行④支持在HDFS和HBase上临时查询数据⑤支持用户自定义函数、格式
2020-09-22 20:15:31 245
原创 MapReduce(分布式计算框架)
什么是MapReduceMapReduce是分布式计算框架,它将大型数据操作作业分解为可以跨服务器集群并行执行的单个任务,适用于大规模数据处理场景,每个job包含Map和Reduce两部分MapReduce的设计思想分而治之:简化并行计算的编程模型构建抽象模型:Map和Reduce隐藏系统层细节:开发人员专注于业务逻辑实现MapReduce特点优点:易于编程可扩展性高容错性高吞吐量缺点:难以实时计算不适合流式计算不适合DAG(有向图)计算MapReduce实现WordC.
2020-09-21 23:28:30 5813
原创 HDFS分布式文件系统
HDFS分布式文件系统HDFS采用master/slave架构master:NameNodeslave:DataNodeHDFS组成及功能client:客户端,负责存储、读取namenode:元数据节点,管理文件系统的namespace元数据,一个集群只能有一个Active namenodedatanode:数据节点,数据存储节点,保存、检索Block,一个集群可以有多个数据节点secondary namenode:从元数据节点,合并namenode的editlogs到fsimage
2020-09-21 22:27:37 314
原创 Hadoop概述
一、hadoop介绍hadoop是一个由Apache基金会所开发的分布式系统基础架构。它可以使用户在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。hadoop的框架最核心的设计就是HDFS和MapReduce,HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。二、使用hadoop的原因高扩展性,可伸缩高可靠性低成本无共享架构灵活,可存储任意类型数据开源,社区活跃三、hadoop能干什么大数据存储:分布式存储日志处理:
2020-09-15 23:21:21 289
原创 Hadoop集群HA(高可用)搭建
本篇文章搭建搭建在hadoop集群和zookeeper集群基础之上,若hadoop集群没有搭建请参照:hadoop集群搭建,若zookeeper集群没有搭建,请参照:zookeeper集群搭建一、修改配置文件以下操作在主节点进行,首先进入hadoop目录:cd /opt/hadoop260修改core-site.xmlvi core-site.xml<configuration> <!-- 指定hdfs的nameservice为ns --> <proper
2020-09-15 17:16:39 215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人