<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[senga's blog]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/gates0087</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gates0087]]></copyright><item><title><![CDATA[分布式消息队列Kafka]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104925595</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104925595</guid><author>gates0087</author><pubDate>Tue, 17 Mar 2020 17:11:49 +0800</pubDate><description><![CDATA[Kafka的主要特点
Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发，之后成为Apache项目的一部分。Kafka是一个分布式的，可划分的，冗余备份的持久性的日志服务，它主要用于处理活跃的流式数据。

同时为发布和订阅提供高吞吐量。据了解，Kafka每秒可以生产约25万消息（50 MB），每秒处理55万消息（110 MB）。
可进行持久化操作。将消息持久化到磁盘，因此可用于...]]></description><category></category></item><item><title><![CDATA[分布式消息队列RocketMQ]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104914886</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104914886</guid><author>gates0087</author><pubDate>Tue, 17 Mar 2020 09:56:07 +0800</pubDate><description><![CDATA[初识 RocketMQ
RocketMQ是一款分布式、队列模型的消息中间件，由阿里巴巴自主研发的一款适用于高并发、高可靠性、海量数据场景的消息中间件。早期开源2.x版本名为MetaQ；15年迭代3.x版本，更名为RocketMQ，16年开始贡献到Apache，经过1年多的孵化，最终成为Apache顶级的开源项目，更新非常频繁，社区活跃度也非常高；目前最新版本为4.5.1-release版本（201...]]></description><category></category></item><item><title><![CDATA[分布式消息队列ActiveMQ]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104913977</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104913977</guid><author>gates0087</author><pubDate>Tue, 17 Mar 2020 09:26:48 +0800</pubDate><description><![CDATA[消息队列的使用场景

削峰填谷：当下游的数据处理不过来的时候，可以先把消息缓存到一个地方，再进行慢速消费
异步化缓冲：有些业务逻辑实时性要求不高，只需要做到最终一致性，类似柔性的事务
服务解耦：服务的拆分和隔离，需要看业务是强依赖还是弱依赖，如果是若依赖，就可以用MQ做一个消息的投递，但必须要保证上游投递的可靠性

应用的思考点

如何保证生产端的可靠性投递？
如何保证消费端的幂等性，即消息只能...]]></description><category></category></item><item><title><![CDATA[SparkStream整合Flume和Kafka]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104781984</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104781984</guid><author>gates0087</author><pubDate>Thu, 12 Mar 2020 11:51:29 +0800</pubDate><description><![CDATA[处理流程

模拟日志生成
package com.hlsijx.spark;

import org.apache.log4j.Logger;

/**
 * 日志生成器，用于测试
 */
public class LoggerGenerator {

    private static Logger logger = Logger.getLogger(LoggerGenerator.class...]]></description><category></category></item><item><title><![CDATA[Spark Stream集成Flume实现词频统计（Pull方式）]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104735297</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104735297</guid><author>gates0087</author><pubDate>Sun, 08 Mar 2020 17:03:27 +0800</pubDate><description><![CDATA[使用Pull方式的优点
Spark Stream集成Flume有两种方式：

Push-based Approach
Pull-based Approach

那么我们在生产中该选择哪种方式呢？让我们来看看官网是怎么说的

由此可见，Pull相较于Push的可靠性和容错性更好，所以我们采用Pull的方式进行集成。
配置Flume


配置pom.xml文件
&lt;scala.version&gt...]]></description><category></category></item><item><title><![CDATA[HBase的安装部署]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104601884</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104601884</guid><author>gates0087</author><pubDate>Sun, 01 Mar 2020 22:58:16 +0800</pubDate><description><![CDATA[前提
已经安装好hadoop和zookeeper
下载
本次采用的是cdn版本，下载地址，版本是hbase-1.2.0-cdh5.15.1
解压，配置环境变量
解压命令：
tar -zxvf hbase-1.2.0-cdh5.15.1 -C 指定解压后路径
环境变量：
export HBASE_HOME=/data/hbase-1.2.0-cdh5.15.1 export PATH=${HBASE...]]></description><category></category></item><item><title><![CDATA[Flume实战案例之整合Kafka实现日志采集]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104589137</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104589137</guid><author>gates0087</author><pubDate>Sun, 01 Mar 2020 12:08:35 +0800</pubDate><description><![CDATA[目标
将A服务器上的日志实时采集到B服务器
技术选型

配置文件
A服务器Flume配置文件：exec_memory_avro.conf
exec_memory_avro.sources = exec_source
exec_memory_avro.sinks = avro_sink
exec_memory_avro.channels = memory_channel

exec_memory_a...]]></description><category></category></item><item><title><![CDATA[Kafka单节点多Broker部署]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104526391</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104526391</guid><author>gates0087</author><pubDate>Thu, 27 Feb 2020 20:34:20 +0800</pubDate><description><![CDATA[版本

kafka_2.11-2.0.0
zookeeper-3.4.5-cdh5.15.1

前提
安装好zookeeper并启动服务

配置config/server.properties
下载并解压后，在config目录下可以看到一个server.properties文件，我们需要配置一下几个参数：
#broker的编号，必须是唯一的，相当于主键
broker.id=0
#每个broker监...]]></description><category></category></item><item><title><![CDATA[Flume实战案例之日志采集]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104466924</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104466924</guid><author>gates0087</author><pubDate>Sun, 23 Feb 2020 22:23:09 +0800</pubDate><description><![CDATA[目标
将A服务器上的日志实时采集到B服务器
技术选型

配置文件
A服务器Flume配置文件：exec_memory_avro.conf
exec_memory_avro.sources = exec_source
exec_memory_avro.sinks = avro_sink
exec_memory_avro.channels = memory_channel

exec_memory_a...]]></description><category></category></item><item><title><![CDATA[大数据存储格式和压缩格式的比较]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104363347</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104363347</guid><author>gates0087</author><pubDate>Mon, 17 Feb 2020 19:57:04 +0800</pubDate><description><![CDATA[存储格式
众所周知，大数据有两种存储格式：行存储、列存储，下面我们就来比较一下这两种存储格式的区别。首先来看一下两种格式的数据排列方式：
行存储数据排列

列存储数据排列

性能比较
两种存储格式都有各自的优缺点：行存储的写入是一次性完成，消耗的时间比列存储少，并且能够保证数据的完整性，缺点是数据读取过程中会产生冗余数据，如果只有少量数据，此影响可以忽略；数量大可能会影响到数据的处理效率。列存储在...]]></description><category></category></item><item><title><![CDATA[Yarn的两种deploy-mode模式]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104335609</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104335609</guid><author>gates0087</author><pubDate>Sat, 15 Feb 2020 22:43:21 +0800</pubDate><description><![CDATA[区别
yarn 有两种模式，分别是 client 和 cluster，那么它们有什么区别呢？


Driver的运行位置：
client：Driver运行在Client端（即提交作业的机器）；
cluster：Driver运行在ApplicationMaster中；


客户端是否能退出
client：因为client会和请求到的Container进行通信来完成作业的调制和执行，所以不能退出；
c...]]></description><category></category></item><item><title><![CDATA[使用Zeppelin访问Mysql数据实现可视化]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104327609</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104327609</guid><author>gates0087</author><pubDate>Sat, 15 Feb 2020 14:52:08 +0800</pubDate><description><![CDATA[下载
官网地址 需要科学上网
目录

下载解压后可以看到以下目录结构

2.修改配置

我们进入到conf目录下，复制zeppelin-env.sh.template文件命名为zeppelin-env.sh$ cp zeppelin-env.sh.template zeppelin-env.sh
$ cp vim zeppelin-env.sh

配置以下三个属性

启动
进入bin目录下，执行命...]]></description><category></category></item><item><title><![CDATA[Spark SQL操作外部数据源之Hive]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104227869</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104227869</guid><author>gates0087</author><pubDate>Sat, 08 Feb 2020 20:27:27 +0800</pubDate><description><![CDATA[贴个图记录一下



]]></description><category></category></item><item><title><![CDATA[Spark SQL的执行计划]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104174418</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104174418</guid><author>gates0087</author><pubDate>Tue, 04 Feb 2020 20:22:36 +0800</pubDate><description><![CDATA[Spark SQL的架构

实例分析
spark-sql&gt; explain extended select * from emp e inner join dept d on e.deptno = d.deptno where e.deptno &gt; 10;
20/02/04 20:16:31 INFO CodeGenerator: Code generated in 22.286318...]]></description><category></category></item><item><title><![CDATA[Spark Standlone模式环境搭建]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104152365</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104152365</guid><author>gates0087</author><pubDate>Mon, 03 Feb 2020 10:41:29 +0800</pubDate><description><![CDATA[设置配置文件$SPARK_HOME/conf/spark-env.sh
$ cd $SPARK_HOME/conf
$ cp spark-env.sh.template spark-env.sh
$ vim spark-env.sh

打开后搜索standalone关键字，如图所示：

添加以下内容，保存后退出
SPARK_MASTER_HOST=hlsijx
SPARK_WORKER_COR...]]></description><category></category></item><item><title><![CDATA[编译Spack源码]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104145108</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104145108</guid><author>gates0087</author><pubDate>Sun, 02 Feb 2020 15:42:08 +0800</pubDate><description><![CDATA[版本说明
Hadoop：2.6.0-cdh5.15.1
JDK：1.8.0
Spark：2.4.4
Maven：Spark源码内置，路径：spark-2.4.4/build/mvn
Spark默认版本说明
从spark-2.4.4/pom.xml文件中我们可以看到，默认使用的是Hadoop2.6.5，这个小版本和我们当前的2.6.0-cdh5.15.1还是存在差异的，所以需要用-Dhadoop.v...]]></description><category></category></item><item><title><![CDATA[MapJoin和ReduceJoin实现案例]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104143520</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104143520</guid><author>gates0087</author><pubDate>Sun, 02 Feb 2020 13:41:48 +0800</pubDate><description><![CDATA[MapJoin
适用场景：
一张大表和一张小表
小表的定义：在Hive中，是由hive.mapjoin.smalltable.filesize参数决定的，该参数的默认值为10M。
特点：
在Map端完成Join，没有Shuffle的过程，因此效率比ReduceJoin更高， 是Hive中默认的实现方式。
实现原理：
将小表数据放入内存中，遍历大表数据的时候从缓存中取出小表数据进行关联。
代码实现：...]]></description><category></category></item><item><title><![CDATA[Hadoop集群部署]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104115380</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104115380</guid><author>gates0087</author><pubDate>Thu, 30 Jan 2020 16:35:37 +0800</pubDate><description><![CDATA[集群规划
HDFS需要部署NameNode和DataNode
YARN需要部署ResourceManager和NodeManager
假设现在有三台服务器，规划方式如下：
hadoop000	192.168.199.234

NameNode
DataNode
ResourceManager
NodeManager

hadoop001	192.168.199.235

NameNode
Data...]]></description><category></category></item><item><title><![CDATA[Hive实战案例]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104114501</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104114501</guid><author>gates0087</author><pubDate>Thu, 30 Jan 2020 14:27:48 +0800</pubDate><description><![CDATA[离线作业执行流程

通过MapReduce进行数据清洗，得到ETL数据
创建Hive表，加载ETL数据
进行各种维度的统计，并写入到Hive表中
将Hive表中的数据导出到MySql（optional，利用Sqoop框架可完成该功能）

目前第一步已经执行完成，路径在 /etl/part-r-00000 数据格式如下：




time
url
referer
ip
ua
province
pag...]]></description><category></category></item><item><title><![CDATA[Hive基本语法]]></title><link>https://blog.youkuaiyun.com/gates0087/article/details/104109508</link><guid>https://blog.youkuaiyun.com/gates0087/article/details/104109508</guid><author>gates0087</author><pubDate>Wed, 29 Jan 2020 21:01:32 +0800</pubDate><description><![CDATA[DDL


创建数据库
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)];

Hive存储在HDFS上的路径：
可以通过hive-s...]]></description><category></category></item></channel></rss>