<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jiandanbuguo的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jiandanbuguo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jiandanbuguo]]></copyright><item><title><![CDATA[Spark  Streaming提取数据]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111827271</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111827271</guid><author>jiandanbuguo</author><pubDate>Sun, 03 Jan 2021 21:22:15 +0800</pubDate><description><![CDATA[一、简介
Spark Streaming是一个从各种来源获取实时流数据的框架。它支持的流资包括HDFS、Kafka、Flume以及自定义流等。Spark Streaming操作可以从故障中自动恢复，这对于在线数据处理十分重要。Spark Streaming表示使用离散流（DStream）的流数据，该数据流周期性的创建包含最后一个时间窗口中进入的数据的RDD.
Spark Streaing可以与单个程序中的其他Spark组建结合，将实时处理与机器学习、SQL和图形操作统一起来。从Spark2.0开始，新的结构]]></description><category></category></item><item><title><![CDATA[HBase基础API(创建、插入、读取、扫描及删除)]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111596760</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111596760</guid><author>jiandanbuguo</author><pubDate>Wed, 23 Dec 2020 19:56:45 +0800</pubDate><description><![CDATA[添加Maven依赖
&lt;dependency&gt;
  &lt;groupId&gt;junit&lt;/groupId&gt;
  &lt;artifactId&gt;junit&lt;/artifactId&gt;
  &lt;version&gt;4.12&lt;/version&gt;
  &lt;scope&gt;test&lt;/scope&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
  &lt;groupId&gt;org.apache.hbas]]></description><category></category></item><item><title><![CDATA[HBase简介及HBase Shell操作]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111487356</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111487356</guid><author>jiandanbuguo</author><pubDate>Tue, 22 Dec 2020 22:11:12 +0800</pubDate><description><![CDATA[HBase的安装可以参照：HBase伪分布式搭建
一、简介
1、产生背景
以前Google存储大量的网页信息，如何存储，如何计算，如何快速查询就成为了一个问题，后来在2003年Google发表了3篇论文提供了解决思路，分别是GFS、MAPREDUCE、BigTable ，但是没有讲源码开源出来，后来这几篇论文被Doung Cutting（被誉为Hadoop之父）看见了，就使用java语言实现了三篇论文，与之对应的就是：
GFS— HDFS 分布式存储
MAPREDUCE—MAPREDUCE 分布式计算
BI]]></description><category></category></item><item><title><![CDATA[kafka Streams]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111300714</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111300714</guid><author>jiandanbuguo</author><pubDate>Mon, 21 Dec 2020 17:32:49 +0800</pubDate><description><![CDATA[一、简介
1、概述
Kafka Streams是一套处理分析Kafka中存储数据的客户端类库，处理完的数据可以写回Kafka，或者发送给外部系统。它构建在一些重要的流处理概念之上：区分事件时间和处理时间、开窗的支持、简单有效的状态管理等。
2、批处理和流计算

批计算
批计算是在计算之前将这次计算的源数据一次性到位，按数据块来处理数据，每一个task接收一定大小的数据块，然后经过批计算在这次计算的结果一次性返还给调用者。
批计算的处理的对象是有限数据（bound data），得到的结果也是一个有限结果集，因]]></description><category></category></item><item><title><![CDATA[java编写kafka生产者、消费者示例]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111046029</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/111046029</guid><author>jiandanbuguo</author><pubDate>Sat, 12 Dec 2020 21:41:23 +0800</pubDate><description><![CDATA[一、新建maven项目
添加依赖
&lt;dependency&gt;
      &lt;groupId&gt;org.apache.kafka&lt;/groupId&gt;
      &lt;artifactId&gt;kafka-clients&lt;/artifactId&gt;
      &lt;version&gt;2.0.0&lt;/version&gt;
&lt;/dependency&gt;

二、新建topic
// 新建一个名为kafkaDemo的topic。分区数为3，副本数为]]></description><category></category></item><item><title><![CDATA[kafka环境搭建]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110653649</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110653649</guid><author>jiandanbuguo</author><pubDate>Thu, 10 Dec 2020 20:12:16 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[kafka原理介绍]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110879495</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110879495</guid><author>jiandanbuguo</author><pubDate>Thu, 10 Dec 2020 20:04:31 +0800</pubDate><description><![CDATA[一、简介
1、概述
Kafka是最初由Linkedin公司开发，是一个分布式、分区的、多副本的、多订阅者，基于zookeeper协调的分布式日志系统，常见可以用于web/nginx日志、访问日志，消息服务等等，Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。Kafka凭借着自身的优势越来越受到互联网企业的青睐，如今已经成为商业级的消息中间件
2、消息中间件
消息中间件是利用高效可靠的消息传递机制进行异步的数据传输，并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机]]></description><category></category></item><item><title><![CDATA[Spark GraphX之pregel]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110749626</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110749626</guid><author>jiandanbuguo</author><pubDate>Sun, 06 Dec 2020 22:13:30 +0800</pubDate><description><![CDATA[Pregel
Pregel 是 Google 自 2009 年开始对外公开的图计算算法和系统， 主要用于解决无法在单机环境下计算的大规模图论计算问题
pregel封装源码
首先需要了解一下几个概念

顶点的状态
激活态和钝化态。
顶点激活的条件
成功发送一条消息，或者成功接收一条消息

def pregel[A: ClassTag](
      initialMsg: A, // 参数初始消息
      maxIterations: Int = Int.MaxValue, // 最大迭代次数
     ]]></description><category></category></item><item><title><![CDATA[Flume环境搭建和简介]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110408796</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110408796</guid><author>jiandanbuguo</author><pubDate>Fri, 04 Dec 2020 09:54:29 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[Spark GraphX之ConnectedComponents]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110347119</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110347119</guid><author>jiandanbuguo</author><pubDate>Sun, 29 Nov 2020 22:29:34 +0800</pubDate><description><![CDATA[图的连通性介绍
无向图

顶点的连通性
在一个无向图 G 中，若从顶点 i 到顶点 j 有路径相连（当然从 j 到 i 也一定有路径），则称 i 和 j 是连通的。
连通图
在一个无向图 G 中，如果图中任意两点都是连通的，那么图被称作连通图
连通分量
无向图G的极大连通子图称为G的连通分量( Connected Component)，这里的极大是指顶点个数极大。任何连通图的连通分量只有一个，即是其自身，非连通的无向图有多个连通分量

有向图

弱连通图
有向图的底图（无向图）是连通图，则是弱连通图。简单来]]></description><category></category></item><item><title><![CDATA[Spark GraphX中的PageRank]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110184799</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/110184799</guid><author>jiandanbuguo</author><pubDate>Thu, 26 Nov 2020 23:28:52 +0800</pubDate><description><![CDATA[PageRank
简介
PageRank(网页级别)，取自Google的创始人LarryPage。它是Google排名运算法则（排名公式）的一部分，是Google用于用来标识网页的等级/重要性的一种方法，是Google用来衡量一个网站的好坏的唯一标准。
PageRank算法将网页按重要性进行排序。有了这个排序，人们在搜索关键词时就能优先看到重要且优质的网页，从而更易于得到所需要的信息
基于页面链接属性的PageRank算法
这种算法虽然简单，却能揭示PageRank的本质

web页面抽象
首先我们对Web]]></description><category></category></item><item><title><![CDATA[Spark SQL解析json文件]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109962475</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109962475</guid><author>jiandanbuguo</author><pubDate>Sun, 22 Nov 2020 22:06:26 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[Spark SQL]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109727180</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109727180</guid><author>jiandanbuguo</author><pubDate>Wed, 18 Nov 2020 19:33:51 +0800</pubDate><description><![CDATA[一、SQL on Hadoop
SQL是一种传统的用来进行数据分析的标准

Hive：原始的SQL-on-Hadoop解决方案
Impala：和Hive一样，提供了一种可以针对已有Hadoop数据编写SQL查询的方法
Presto：类似于Impala，未被主要供应商支持
Shark：Spark SQL的前身，设计目标是作为Hive的补充
Phoenix：基于HBase的开源SQL查询引擎

二、Spark SQL
Spark SQL的前身
Shark是spark sql的前身，它的设计初衷是让Hive运行在]]></description><category></category></item><item><title><![CDATA[Spark SQL 中的UDF、UDAF、UDTF]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109767358</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109767358</guid><author>jiandanbuguo</author><pubDate>Wed, 18 Nov 2020 19:03:39 +0800</pubDate><description><![CDATA[UDF
UDF（User-defined functions）用户自定义函数，简单说就是输入一行输出一行的自定义算子。（一对一）
数据文件：hobbies.txt，第一列为姓名，其他为兴趣爱好
alice,jogging&amp;Coding&amp;cooking
lina,traveldance&amp;cooking

自定义UDF，实现的是计算每个人的兴趣爱好个数
// 样例类
case class Hobbies(name:String,hobbies:String)
object UDFDemo]]></description><category></category></item><item><title><![CDATA[Spark RDD算子（八）mapPartitions， mapPartitionsWithIndex]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109655221</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109655221</guid><author>jiandanbuguo</author><pubDate>Mon, 16 Nov 2020 12:17:42 +0800</pubDate><description><![CDATA[mapPartions
对一个rdd里所有分区遍历

]]></description><category></category></item><item><title><![CDATA[Spark RDD算子（七）countByKey，countByValue，collectAsMap]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109648226</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109648226</guid><author>jiandanbuguo</author><pubDate>Thu, 12 Nov 2020 18:40:38 +0800</pubDate><description><![CDATA[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.countByKey


java版本
JavaRDD&lt;String&gt; rdd1 = sc.parallelize(Arrays.asList("a", "a", "b", "b"]]></description><category></category></item><item><title><![CDATA[Spark RDD算子（六）  aggregate，collect，count，first，fold， reduce，take，top，takeOrdered]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109642711</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109642711</guid><author>jiandanbuguo</author><pubDate>Thu, 12 Nov 2020 16:57:58 +0800</pubDate><description><![CDATA[这里写目录标题aggregatescala版本java版本collectscala版本java版本countscala版本java版本countByValuescala版本java版本firstscala版本java版本foldscala版本java版本reducescala版本java版本takescala版本java版本topscala版本java版本takeOrderedscala版本java版本
aggregate
def aggregate[U](zeroValue: U)(seqOp: (U, ]]></description><category></category></item><item><title><![CDATA[Spark RDD（五）groupByKey，cogroup，subtractByKey，join，leftOuterJoin，rightOuterJoin]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109611391</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109611391</guid><author>jiandanbuguo</author><pubDate>Wed, 11 Nov 2020 09:47:39 +0800</pubDate><description><![CDATA[Spark RDD（五）groupByKeyscala版本java版本cogroupscala版本java版本subtractByKeyscala版本java版本joinscala版本java版本leftOuterjoin及rightOuterJoinscala版本java版本
groupByKey
groupByKey会将RDD[key,value] 按照相同的key进行分组，形成RDD[key,Iterable[value]]的形式
scala版本
val rdd1 = sc.parallelize(L]]></description><category></category></item><item><title><![CDATA[Spark RDD算子（四）combineByKey，reduceByKey，foldByKey，sortByKey]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109594916</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109594916</guid><author>jiandanbuguo</author><pubDate>Tue, 10 Nov 2020 20:08:45 +0800</pubDate><description><![CDATA[Spark RDD算子（四）combineByKeyscala版本java版本reduceByKey
combineByKey
def combineByKey[C](createCombiner: (V) =&gt; C, mergeValue: (C, V) =&gt; C, mergeCombiners: (C, C) =&gt; C): RDD[(K, C)]
def combineByKey[C](createCombiner: (V) =&gt; C, mergeValue: (C, V) =&]]></description><category></category></item><item><title><![CDATA[Spark RDD算子（三） mapToPair，flatMapToPair]]></title><link>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109592317</link><guid>https://blog.youkuaiyun.com/jiandanbuguo/article/details/109592317</guid><author>jiandanbuguo</author><pubDate>Tue, 10 Nov 2020 10:44:42 +0800</pubDate><description><![CDATA[Spark RDD算子（三）mapToPairscala版本java版本flatMapToPairscala版本java版本
mapToPair
此函数会对一个RDD中的每个元素调用f函数，调用f函数后会进行一定的操作把每个元素都转换成一个&lt;K,V&gt;类型的对象，例如：rdd1中包含hello、world元素，经f函数转换后，可以变成类似&lt;hello,1&gt;,&lt;world,1&gt;这样的键值对形式
scala版本
scala没有该函数，只需要利用map即可实现
val rdd1 ]]></description><category></category></item></channel></rss>