- 博客(40)
- 收藏
- 关注
转载 ETL--Flume的优化
载自品友互动:http://www.ipinyou.com.cn/technicalnews/201112/Technical_6.htmlETL(Extraction, Transformation, and Load)是基于日志数据挖掘中的重要环节。现在Hadoop用于日志ETL的工具主要有Facebook的Scribe,Apache的Chukwa和Cloudera的Flume等等。从容...
2018-12-08 18:53:00 351
翻译 分布式消息队列
1. 我们为什么要用消息队列呢? 我们使用消息队列最多的应用场景就是解耦、异步、削峰解耦是什么? 这就是传统模式的缺点:系统之间的耦合性太强了,就像上图一样!A系统在代码中直接调用B系统和C系统的代码!,但是如果在D系统接入的时候!,系统A就需要重新修改代码!太繁琐了!中间件模式的优点:...
2018-07-10 17:25:52 2263
翻译 Kafka的分区策略
在kafka中,每个topic一般会有很多个Partitions。为了使我们能够及时的消费消息! 我们也可能启动多个Consumer去消费分区,而每个Consumer同样会启动一个或者是多个streams去分别消费Topic里面的数据。我们又知道,在Kafka中存在着Consumer Group的概念,也就是在group.id 一样的Consumer,这些Consumer属于同一个Con...
2018-07-02 21:16:11 13873 2
翻译 Spark SQL的底层执行流程
说到Spark SQL ,我们不得不提到它的优化器(Catalyst),Catalyst是Spark sql的核心,它是针对于Spark SQL语句执行过程中的查询优化框架。所以在想了解Spark SQL的执行流程的时候,理解一下Catalyst的工作流程是很有必要的! 了解Catalyst的话! 一张图解释一下它的全流程。其中黑色方框为Catalyst的工作流程。 SQL语句首相通过Pa...
2018-07-02 09:46:10 6623 1
原创 关于一些简单HQL语句的总结
//创建一个普通表 , 并且用默认的分割字段 /001 在shell中ctrl+v然后ctrl+a create table tableName(id int,name string,age int);//建表语法create [external] table [if not exists] table_name(filed_name field_type,filed_name field_ty...
2018-06-13 21:55:40 943
原创 决策树中的CART树
1、cart树的介绍 : Classification and Regression Trees (CART): (L. Breiman, J. Friedman, R.Olshen, C. Stone) cart模型是一种决策树模型,它既可以用于分类,也可以用于回归,其学习可以分为两步: (1)决策树生成:用训练数据生成决策树,生成树尽可能大 (2)决策树...
2018-04-25 18:06:57 1768
原创 什么是决策树?决策树的构建
什么是决策树? 其实决策树采用的是if else 的思想! 在我们经常不停的敲if, else if, else的时候,其实就已经在用到决策树的思想了。只是你有没有想过,有这么多条件,用哪个条件特征先做if,哪个条件特征后做if比较优呢?怎么准确的定量选择这个标准就是决策树机器学习算法的关键了。策树就像是我们现实生活中的树一样! 有根(根节点)、有叶子(叶子节点)。树的最顶层是根结点...
2018-04-25 17:24:51 903
关于MapReduce的调优
一、关于硬件方面的调优 : 主要使用的硬件 : CPU+memory 如果当前进程是进行存储的 , 对CPU和内存要求并不是很高。如果当前进程是进行计算的,那么对CPU和memory的要求都是很高的 硬件的主要配置有 :memory 当CPU不够的话 : 程序执行运算会慢一点,当内存不够的 : 会导致heap溢出,GC。因为在内存不够的时...
2018-04-22 15:58:47 1314
原创 关于Hive的一些优化
关于Hive的优化(仅供参考) : 1、关于join中 出现数据倾斜的操作 : 这里我们需要设置两个参数 : 1.1、hive.optimize.skewjoin=true; 解释 : 如果join中出现了数据倾斜,应该设置成true。 1.2、set hive.skewjoin.key=1000000; 解释 : 这是...
2018-04-20 01:52:03 835
原创 Spark学习第二天之---共享变量Broadcast Variable(广播变量)和Accumulator(共享变量)
共享变量分为两种:Broadcast Variable(广播变量) 和 Accumulator(累加变量)什么是共享变量?默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。Braadcast Variable会将使用到的变量,仅仅为每个...
2019-01-23 16:08:09 356
原创 Spark学习第二天----Transformation和Action算子的学习
1、transformation和Action算子的介绍。transformation操作会针对已有的RDD创建一个新的RDD;而action则主要是对RDD进行最后的操作,比如遍历、reduce、保存到文件等,并且把结果返回给Driver程序。transformation的特点就是lazy(懒)特性。lazy特性指的是,如果一个Spark应用中只定义了transformation操作...
2019-01-22 09:41:24 337
原创 数据结构学习第六天---树的概念以及二叉树
1、树的概念:树(英文Tree):它是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把他叫做“树”是因为它看起来像一颗倒挂的树,也就是树根朝上,而树叶向下的,它具有以下的特点: 1、每个节点有零个或多个子节点: 2、没有父节点的节点称为根节点: 3、每一个非根节点...
2019-01-20 10:40:29 277
原创 Spark学习第一天------创建RDD的方式
1,创建RDD1.进行Spark核心编程时,首先要做的第一件事,就是创建一个初始的RDD。该RDD中,通常就代表和包含了Spark应用程序的输入源数据。然后在创建了初始的RDD之后,才可以通过Spark Core提供的transformation算子,对该RDD进行转换,来获取其他的RDD。2.Spark Core提供了三种创建RDD的方式,包括:使用程序中的集合创建RDD;使用本地文件创建...
2019-01-20 10:39:49 594
原创 数据结构学习第五天---归并排序与二分查找
1、归并排序 :归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。分阶...
2019-01-16 11:51:40 736
原创 数据结构学习第四天--希尔排序和快排
1、希尔排序 :希尔排序(Shell Sort)是插入排序的一种。也叫做缩小增量排序,是直接插入排序算法的一种改进版,是一个非稳定的排序算法.他的原理是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰好被分成一组,算法便是终止了。希尔排序的基本思想: 将数组列在一个表中并对列分别进行插入排序,重复...
2019-01-09 18:13:14 247
原创 数据结构学习第四天---栈与队列的概念
1、概念:前面我们学习了链表!链表与顺序表统称为线性表! 那么线性表中的顺序表在物理上存储的层次来说的话应该是一组连续的内存空间存储数据,链表是将元素存放在通过链接构造起来的一系列存储块中。那么我们如何利用这些数据呢?那么我们就要使用栈了! 栈(stack)是一种容器,可存放数据元素、访问元素、删除元素。它的特点是只能允许在容器的一端进行加入数据(push)和输出数据(pop)的运算。...
2019-01-02 19:43:41 157
原创 数据结构学习第三天---基本数据结构---链表的学习
1、链表的提出 :1、试想当我们的顺序表去存储的时候增加数据都需要重新申请空间!有没有一种结构可以让我们在进行扩充的时候,原有的数据不用改变!多一个数据就增加一个呢!?这样的数据就使用到了链表。链表的定义: 链表(linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(就是地址)。...
2018-12-30 11:41:59 473
原创 数据结构学习第二天---基本数据结构--顺序表(外置、内置、一体式、分离式)
1、基本顺序表与元素外置的顺序表: 一组数据相同类型的最直观的的存储:我们就按照顺序靠在一起! 这就是我们的顺序表。是指使用一组地址连续的存储单元依次存储数据元素的线性结构。自我总结话述:第一个问题:为什么下标是从0开始的呢?答:0这些下标代表的是偏移量,并非是这个数据对应的位置,当我们要查找 0下标的这个元素 的时候,代表的意思是我们不进行偏移直接查找,就是查...
2018-12-20 16:49:00 838
原创 数据结构入门学习第一天
1、算法引入 数据结构与算法 : 我们把整个写代码的过程比喻为打仗! 代码 是兵卒还有武器,那么我们便是将军,数据结构与算法就是一个我们所谓的兵法还有计谋! 例子:如果a+b+c = 1000 , 且a^2 + b^2 =c^2(勾股定理,abc为自然数),如何求出所有a、b、c的组合? 1、枚举法 (一个一个的去试一试,最复杂的方法):...
2018-12-16 16:48:11 228
原创 Linux学习之Shell基础编程
1、shell中的变量、控制、循环基本语法 什么是shell 呢? shell 就是以文件的形式批量的存储Linux命令的集合,该文件能够被Shell解释执行,这既是Shell脚本程序。 shell的第一行:指定用哪个程序来编译和执行脚本 #!/bin/bash 或者 #!/bin/sh 两者是一致的! sh 是bash 的一个软连接。 1、1 : 变量: ...
2018-12-12 17:30:48 145
原创 SQL的concat()、concat_ws()、collect_set、行转列、列转行的操作
1、首先学习一下cancat()函数: cancat()函数:用于连接两个或多个数组案例:源数据:user order_type order_number zhangsan collect 20 wangwu payment 3 zahngsan payment 5 wangwu collect...
2018-12-12 14:56:12 18936 1
原创 Linux学习之系统管理命令--以及Crontab的使用
1、系统管理命令 1、uname :查看是什么操作系统 uname -r :查看是什么内核版本。 2、cat /proc/cpuinfo :查看系统的cpu信息。 3、cat /proc/meminfo :查看内存的一些信息。 4、date -R :显示时区 date 显示当前时间 5、date -s 2018-12-09 :设置当前日志...
2018-12-10 21:18:00 140
原创 Linux命令的学习
1、基本命令 1、 [root@host-1 XXX] # : 表示当前操作为root用户,host-1为当前所操作的主机的名称, XXX 为当前所在的目录, #表示是超级管理员的操作 $:表示是普通的用户 2、useradd XXX : 创建一个名字为XXX的用户。 3、passwd XXX : 为XXX用户设置一个登陆的密码 4、su - X...
2018-12-09 17:54:46 422
原创 Python学习第十四天---json文件的简单操作
1、json文件的操作看详情案例,注意的是,在使用方法的时候!dump是往文件中写数据,dumos是写成一个字符串! 在python中的json文件的空值是None !而其他文件是Null !其他文件的布尔型开头都是小写!但是python 中json文件的开头是大写!#coding=gbkimport jsondef json_basic(): data = { ...
2018-12-07 19:30:08 213
原创 python学习第十四天---CSV文件简单处理
1、文件处理: 1.1、这里的csv文件读取处理。 csv:c表示逗号,s表示分割,v表示value ,表示逗号分隔值 tsv:表示tab键分开的值。 csv的文件是从哪里来的呢?数据库的导入导出!都可以实现!#coding=gbkimport csvfrom collections import namedtupledef csv_read(): ...
2018-12-06 23:10:49 292
原创 Python学习第十三天---函数的高级应用及装饰器
1、函数的高级应用及装饰器 1、1:函数的基础: 装饰器:概述:用于挂你和增强函数和类行为的代码!,提供了一种在函数或类定义中插入自动运行代码的机制。 特点:1、更加明确的语法 2、更好的代码可维护性 3、更好的一致性。 在前面的课程中已经讲过了!函数的基础!可以去看看! 2...
2018-12-05 18:37:04 197
原创 Python学习第十二天---并行编程
1、并行编程:概念的讲解: 首先了解一下什么是非并发编程: 程序由单个步骤序列构成。是一个包含独立子任务的程序执行性能低 概念:异步、高效,分解子任务、简化流程与逻辑。 进程 : process :就是一个程序的执行实例。每个进程都有自己的地址空间、内存、数据栈及辅助数据。 线程 :thread:同一个进程内,可被并行激活的控制流,线程共享相同上下文(可用空间,数据...
2018-12-03 23:55:48 194
原创 Python学习第十一天------系统编程
1、系统编程 1、系统工具: 概念:操作系统里面,帮我们执行的一些常见任务,在不同的操作系统中名字是不一样的。 常见的系统工具有:命令行工具、Shell脚本 、系统管理。python给我们提供了很多系统模块。我们主要学习sys、和os两个模块。 sys:提供一组功能映射Python运行时的操作系统。 os:提...
2018-12-02 23:03:08 203
原创 Python学习第十一天---正则表达式
1、正则表达式 正则表达式(Regular Expression):一种模式,描述在搜索文本时要匹配的一个或多个字符串。 典型的场景:数据验证,文本扫描、提取、替换、分割 1.语法包含: 1.1 字面值 1.1.1 普通字符: 1.1.2 需转义字符: \ ^ $ . | ? * +...
2018-12-02 20:09:13 541
原创 Python学习第十天---字符与编码
1、python中的字符串pyhton2中和python3中的字符的存储方式是存在差异的! 1、概述:str是python中最常见的类型, bytes字节类型,字节类型是不可改变的!bytesarray是字节数组,是可变的!字符串的存储机制是什么!?每个字符在内存中都会有一个代码点!都有一个字符库(字符的形式)和字符编码库(字节的形式),两者可以相互转化! 什么是编码!什么...
2018-12-02 15:37:07 204
原创 Python学习第十天-----对象持久化
1、对象持久化 1、1:对象持久化概述: 序列化:就是将我们目前的内存运行进度结果存储到一个媒介或者是硬盘上面!这就是序列化! 将存储的一些数据反序列化到内存中! 还原以前的状态!这就是反序列化! 开发中我们常见的序列化和持久化的技术有哪些呢?? 1、对于文本文件,就是以扁平文件来持久化。还有python中的pickle技术,还有shelve、数...
2018-12-02 13:58:36 452
原创 Python学习第九天
1、异常处理错误的分类分为: 1、语法错误(最简单的) ------> SyntaxError 。 这就会最常见的语法报错! 2、语义错误(5/0) 3、逻辑错误(最难排查的)------>逻辑错误不报错!但是不是自己想要的结果排除错误的方式:try excepttry:后面写的是有可能出现异常的代码!e...
2018-11-28 23:15:03 158
原创 Python学习第八天--面向对象编程
1、面向对象编程 面向对象的特征就是:1、封装 2、继承 3、多态、 接着第七天的: 在我们的类中还有一个方法就是__str__(self): return ..... 这个函数是我们在控制台写print的时候默认会调用的这个函数,如果没有这个函数print()的时候,会默认使用的__repr__ 这个方法中的return值!__repr...
2018-11-28 19:39:26 140
原创 Python学习第七天--面向对象编程
1、 包与模块管理以及面向对象初步认识 什么是模块呢? 答:把一些功能逻辑写到一个后缀名为py的文件里面,我们就成为这个文件为一个脚本,或者是一个模块。那么我们使用的原因是什么? 1、 代码重用 2、命名空间 3、实现数据的共享! 模块与模块之间是可以相互调用的!这时候我们需要使用三个关键字:1、import 关键字 , 将想要使用的模块 : import 模块名 导入...
2018-11-26 23:30:11 177
原创 Python学习第六天---函数与lambda表达式
1、函数与lambda表达式 *参数名的使用:在定义函数的时候,当我们不知道这个函数要往里面传多少个值的时候,我们就需要将参数设定为(*参数),这样在传递的时候我们可以往里面传递任意个参数,其实内置的是以一个元组的方式传递的 , 但是当我们在调用该方法往里面传值的时候,当我们想要传递一个tuple类型的时候,会发现传不进去的,我们还需要在传递的时候使用(*Tuple_name)这...
2018-11-24 23:23:53 187
原创 Python学习第五天
1、Pyhton中的迭代 面试问题:python中哪些对象可以使用for循环?或者说可以遍历? 答:可d迭代的对象,或者是实现了迭代器协议的对象都是可以被循环遍历的! 在对象的内部有一个方法,__next__() 前后双下划线,可以迭代的对象、能够使用for遍历的,这个对象肯定实现了迭代协议,实现了迭代协议的特点是内部实现了__next__() 方法, 调用__next...
2018-11-24 00:33:36 142
原创 Python学习第四天
1、表达式与if语句 赋值语句: x = 5 : = 是赋值 。 相对其他语言相对方便一些。(x , y) = (1 , 10) , 也可以去掉括号,直接给元组赋值 只要两边的数量是相等的,赋值的话很简单,那要是两个变量不相等的话,相对麻烦一些。a,b,c = 'uke' 输出的是abc对应一个字符。 a,b,c = 'vincent' 。这样直接赋值...
2018-11-23 00:15:04 108
原创 Python学习第三天---字典表、元组、文件的学习
1、字典表dict。 字典表在其他的语言中就是hash表!其实是一样的道理:先学以下基本操作。 字典表声明的时候使用的是花括号,d = {‘键’:值 , 键:值,....} ,或者合适d = dict{键 = 值, 键 = 值, 。。。}这就是字典表简单的声明,而且在查看的时候你会发现他是无序的,主要是字典表会根据这键对应的hash以后产生的...
2018-11-21 22:59:42 149
原创 Python学习第二天----字符串和列表
1、数值 和字符串的讲解 1.1、数值 有int 、 float、Decimal(更精确的小数)、Fraction(分数) 整数int是不带小数的 age = 20 浮点型是float,是表示小数的 f = 3.14 , f = 0.3 , f = .3 ,第二个和第三...
2018-11-21 00:56:38 591
原创 Python学习第一天
1,python的语言不能直接运行在操作系统之上。必须需要一个环境。 为什么使用Python? 1,软件质量 2,开发效率(代码量少) 3,可移植性(扩平台,一次编写,到处运行) 4,库支持丰富 5,组件集成比较方便Python的缺点:执行速度比不上一些编译类的语言(汇编,二进制语言)Pyhon的优势:面向对象以及函数式编程,也支持面向过程易于...
2018-11-20 01:16:22 147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人