<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[learner_up的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/learner_up</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; learner_up]]></copyright><item><title><![CDATA[大数据面经持续更新]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106338163</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106338163</guid><author>learner_up</author><pubDate>Mon, 16 Aug 2021 15:36:07 +0800</pubDate><description><![CDATA[1.hive 数据格式之间的区别

2.spark 与MR 的区别

例如：select count(cost),id from tb.在spark 与MR的区别

3.sparkStreaming 如何保证消费kafka 数据时的一致性

4.SQL 求每个年龄成绩最高的学生前十位

5.何为dsp,ssp,adx,msdk




...]]></description><category></category></item><item><title><![CDATA[spark structuredstreaming 多流 写入kafka]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/114989968</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/114989968</guid><author>learner_up</author><pubDate>Thu, 18 Mar 2021 21:03:27 +0800</pubDate><description><![CDATA[需求：

存在一张离线规则表A，A 中存在两列 gid(规则id),gsql（规则sql） ，一份实时数据，搜索出实时数据中符合规则的数据

A 中数据格式如下：

gid
			gsql
		202
			column0=0.0 and column6&gt;0
		201
			column0=0.0 and column7&gt;10.0
		







实时数据格式如下

timestamp
			tagvalue
		2021-03-18 20:11:53
			0.0,0.0,0....]]></description><category></category></item><item><title><![CDATA[impala 自定义函数]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/110239445</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/110239445</guid><author>learner_up</author><pubDate>Fri, 27 Nov 2020 18:15:03 +0800</pubDate><description><![CDATA[需求：实现与oracle 过滤方法相同的功能

oracle 过滤方法：


  FUNCTION F_CHANGE_CHR(V_NAME VARCHAR2) RETURN VARCHAR2 IS
    RESULT VARCHAR2(200);
  BEGIN
    RESULT := REGEXP_REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLAC]]></description><category></category></item><item><title><![CDATA[JavaScript 基础知识总结]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106855000</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106855000</guid><author>learner_up</author><pubDate>Wed, 12 Aug 2020 18:36:07 +0800</pubDate><description><![CDATA[1.js面向对象学习

js对象中的prototype属性:

用于给js中的特定类声明一个通用的变量或者函数。即用类名.prototype.声明的属性或者方法存在于每一个该类的对象中。

该属性存在于每一个构造器中
...]]></description><category></category></item><item><title><![CDATA[Centos  设置静态ip 并且联网]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106379212</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106379212</guid><author>learner_up</author><pubDate>Wed, 27 May 2020 13:21:08 +0800</pubDate><description><![CDATA[1.对于安装完成的机器，选择机器中的设置，选择网络模式



2.本人采用的是net模式，在虚拟网络编辑器中选择更改设置，选择NAT,勾选将主机虚拟适配器连接到此网络。如果不选这项，在真机的网络适配器中你将找不到vmware net8。

在子网ip中写入你想要的ip和子网掩码后，点击NAT设置，写入网关ip(网关ip最后一位要是.2)



3.进入 vim /etc/sysconfig/network-scripts/ifcfg-eth0。添加DNS、IPADDR、GATEWAY，NETMASK，NA.]]></description><category></category></item><item><title><![CDATA[hadoop windows安装]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106303317</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106303317</guid><author>learner_up</author><pubDate>Sat, 23 May 2020 18:19:20 +0800</pubDate><description><![CDATA[jdk 安装

注意，jdk的安装目录一定不要带空格。如果带了空格，在后面的hadoop,spark安装时会导致他们不识别jdk环境。出现错误。当然，是否带空格对javac,java -version 这类命令没有影响。



如果已经安装完成并且已经带了空格，那么


C:\Program Files\Java\jdk1.8.0_121

变成

C:\Progra~1\Java\jdk1.8.0_121

重开cmd，能够看见启动完成





hadoop 安装

hadoop 所有版本

1.选..]]></description><category></category></item><item><title><![CDATA[HashMap（红黑树，线程不安全）详解]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106188381</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106188381</guid><author>learner_up</author><pubDate>Thu, 21 May 2020 19:19:23 +0800</pubDate><description><![CDATA[何为hashmap

利用hash表原理进行数据存储的集合。线程不安全。

jdk1.7采用数组加链表进行存储，当遇到冲突时，利用链表存储冲突的数据。利用头插法操作链表，hashmap进行数据查询的时间复杂度取决于链表长度，时间复杂度为O（n）。在高并发的情况下会出现循环链表死循环和数据丢失。

jdk1.8采用数组加链表加红黑树进行存储，当遇到冲突时，当链表长度大于8（TREEIFY_THRESHOLD）时会把链表存储转换为红黑树进行存储，利用尾插法操作链表，hashmap进行数据查询的时间复杂度取决于红]]></description><category></category></item><item><title><![CDATA[hadoop 之hdfs知识详细整理]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106154575</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106154575</guid><author>learner_up</author><pubDate>Sun, 17 May 2020 18:55:07 +0800</pubDate><description><![CDATA[hadoop四大组件

hdfs:分布式文件管理系统

mapreduce：分布式的离线并行计算框架

yarn：作业调度与集群资源管理系统

comment：支持其他模块的工具模块



HDFS（Hadoop Distributed File System）

初步认知

1.一个文件系统，可以用于存储文件，通过目录树定位文件

2.由很多服务器共同实现文件存储功能

hdfs 适合一次写入，多次读出的场景，且不支持文件修改，只能追加

hdfs不适合用在：要求低时间延迟数据访问的应用，存储大量的小文.]]></description><category></category></item><item><title><![CDATA[hadoop shuffle 过程理解]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106112984</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106112984</guid><author>learner_up</author><pubDate>Fri, 15 May 2020 11:20:50 +0800</pubDate><description><![CDATA[1.shuffle 基本认识

何为shuffle：map端的数据传递给reduce端的流程。总体来说即为将map端的输出数据进行分区，排序，缓存然后分发给reduce端，然在reduce端进行归并，分组

shulle 过程：

官网图：



流程简述：
1.map task 根据分片信息从文件中读入数据

2.maptask 调用map 方法进行业务逻辑运算

3.一个maptask 对应一个缓存区，在缓存过程中会进行分区、排序、溢写、归并排序（多个溢写文件变成一个）

4.如果存在combiner，]]></description><category></category></item><item><title><![CDATA[拉勾数据结构课程之归并排序]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106062943</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106062943</guid><author>learner_up</author><pubDate>Mon, 11 May 2020 21:44:19 +0800</pubDate><description><![CDATA[归并排序原理：

一开始先把数组从中间划分成两个子数组，一直递归的把子数组划分成更小的子数组，直到子数组里面只有一个元素才开始排序。

排序的方法就是按照大小顺序合并两个元素，接着依次按照递归的返回顺序，不断地合并排好序的子数组，直到最后把整个数组的顺序排好。

归并 排序合并：

合并函数实现的其实就是如何把两个有序的数组合并成一个数组

代码一：

比较常见的有序数组合并代码，也比较好理解


public  void merge(int[] nums,int low,int mid,int h...]]></description><category></category></item><item><title><![CDATA[拉勾数据结构课之快速排序算法]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106057633</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106057633</guid><author>learner_up</author><pubDate>Mon, 11 May 2020 17:50:29 +0800</pubDate><description><![CDATA[快速排序算法：

实现代码一：


 /*快速排序
    以第一个数为基准点，把大于基准点的放在基准点右边，小于基准点的放在基准点左边。
    再把左边的当作一个新的数组1，右边的当作一个新数组2，分别重新选取新的数组1，2的基准点不断执行小于基准点的放左边，大于基准点的放右边
   不断划分左右数组序列，直到左右数组序列只剩一个数
    实现方法：
    定义两个哨兵i，j，j每次先从后往前找到第一个小于基准点的数,如果此时i，j,没有相遇，i在 j找到数后从前往后找到第一个大于基准点的数
   ]]></description><category></category></item><item><title><![CDATA[yarn 工作机制原理浅析]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106046623</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106046623</guid><author>learner_up</author><pubDate>Mon, 11 May 2020 10:35:07 +0800</pubDate><description><![CDATA[Yarn 概述：

一个资源调度平台，负责为运算程序提供服务器资源。其上可运行各类分布式运算程序。

基本概念：

1.yarn 并不清楚用户提交的程序的运行机制

2.yarn 只负责运算资源的调度

3.yarn 中的主管角色叫ResourceManager

4.yarn 中具体提供运算资源的角色为NodeManager

yarn 主要组件：ResourceManager、NodeManager。其中NodeManager中包含ApplicationMaster、container

RM主要作用.]]></description><category></category></item><item><title><![CDATA[shell 编程实例之shell 常规用法及shell 函数]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106033198</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106033198</guid><author>learner_up</author><pubDate>Sun, 10 May 2020 11:05:26 +0800</pubDate><description><![CDATA[本实例主要实现了远程拉取日志,主要通过编写小时拉取日志函数，实现按小时拉取和按天拉取


#!/bin/bash
#shell 中需要的配置文件的目录
source $DIR/../conf/shell_env.conf
#  ${#WORKROOT}获得WORKROOT字符串长度
if [ ${#WORKROOT} -lt 6 ]; then
    exit 1
fi
# $# 获得参数个数 
if [ $# -ne 3 ];then
    exit 1
fi

day=$1
hour=$2
get_]]></description><category></category></item><item><title><![CDATA[kafka及kafka 面试题学习]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/85071569</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/85071569</guid><author>learner_up</author><pubDate>Sat, 09 May 2020 19:47:24 +0800</pubDate><description><![CDATA[消息队列的介绍：

消息传递通常由两种模式，queuing（队列）和publish-subscribe （发布-订阅）

queuing：每个Consumer从消息队列中取走一个消息

pub-scrib:消息被广播到每个Consumer

Kafka通过提供了一个对Consumer的抽象来同时实现这两种模式-ConsumerGroup。Consumer实例需要给自己指定一个ConsumerGro...]]></description><category></category></item><item><title><![CDATA[Flume基础入门]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106013598</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106013598</guid><author>learner_up</author><pubDate>Sat, 09 May 2020 12:55:49 +0800</pubDate><description><![CDATA[flume 核心概念

Client：Client生产数据，运行在一个独立的线程

agent：java 进程，运行在日志收集节点上（服务器节点），包含source、channel、sink三个核心组件

source：从Client收集数据，可以处理各种类型各种格式的日志数据。数据封装到事件（event） 里被传递给channel



channel：缓存收集来的数据，保存由Source组件传递过来的Event



sink：从channel中取出数据，发送到目的地。目的地包括hdfs、logger、]]></description><category></category></item><item><title><![CDATA[hive 错误记录]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/85107066</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/85107066</guid><author>learner_up</author><pubDate>Sat, 09 May 2020 09:18:27 +0800</pubDate><description><![CDATA[本博客用于记录在工作中遇到的错误，以作备忘，如有错误，欢迎指正。谢谢！

1.SemanticException [Error 10146]: Cannot truncate non-managed table test_null.


truncate table test_null;//test_null是一个外部表

truncate 不能删除外部表数据。原因：内部表数据由hive自身管理，...]]></description><category></category></item><item><title><![CDATA[Top N 问题(MR,Hive,Mysql)]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/106001846</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/106001846</guid><author>learner_up</author><pubDate>Sat, 09 May 2020 08:58:53 +0800</pubDate><description><![CDATA[前言：

仅仅针对权威指南的吐槽，可跳过。说到这个问题实在是让人崩溃，开始看hadoop权威指南中文第四版中的9.2.4案例，求每年的最高温，要求年份按照升序，温度降序。针对组合键告诉我自定义分区只能保证每一个 reduce 接受一个年份的所有记录，而在一个分区之内，reduce 仍是通过建进行分组的分区，所以应该自定义分组。但是自定义分组前后结果配图竟然完全一样！？这是什么迷惑行为。此外，针对分区分组之后reduce 方法中直接使用context.write(key,NullWriteable.get()]]></description><category></category></item><item><title><![CDATA[连接多对多问题]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/86539581</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/86539581</guid><author>learner_up</author><pubDate>Fri, 05 Apr 2019 17:18:12 +0800</pubDate><description><![CDATA[需求：

针对同一个广告位拆分出deeplink数据与非deeplink数据

错误代码:


 select ${day},
      case when tb3.adslot_type=1 then '横幅'when tb3.adslot_type=2 then '插屏' when tb3.adslot_type=3 then '开屏' when tb3.adslot_type=4 then...]]></description><category></category></item><item><title><![CDATA[Java json 字符串处理]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/86525242</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/86525242</guid><author>learner_up</author><pubDate>Fri, 18 Jan 2019 14:29:08 +0800</pubDate><description><![CDATA[json 字符串介绍：

示例：


"adslot":{"id":"3169","bidfloor":10.0,"bidfloorcur":"CNY","count":"1","instl":0,
"banner":{"w":1080,"h":1920,"pos":0,"battr"：[]},
"nativ":null,"video":null,"is_splash_screen":1,
"bi...]]></description><category></category></item><item><title><![CDATA[java 爬虫之使用jsoup爬取页面]]></title><link>https://blog.youkuaiyun.com/learner_up/article/details/86521322</link><guid>https://blog.youkuaiyun.com/learner_up/article/details/86521322</guid><author>learner_up</author><pubDate>Thu, 17 Jan 2019 14:15:47 +0800</pubDate><description><![CDATA[需求:

爬取出所有号段，并找到他们对应的运营商和所属地。

添加依赖：


       &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.jsoup&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;jsoup&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;...]]></description><category></category></item></channel></rss>