自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 es性能优化

目录es性能优化写入性能优化增加refresh的时间间隔默认1s就会触发一次Refresh,然后Refresh会把内存中的数据刷新到操作系统的文件缓存系统中(buffer ——> OS cache)。每次索引的refresh会产生一个新的segment段,这会导致频繁的segment merge行为。一般在查询实时性要求不高的场景下可改为30s,甚至是“-1”(关闭refresh)。入库完之后修改回默认值是1s即可,形如:refresh参数设置Curl -XPUT "localhost:9

2020-12-04 10:56:02 1187

原创 数据仓库理论

数仓概述数据仓库的概念原先为“商业数据仓库”。本质上,数据仓库是一种从操作性系统到决策支持环境的数据流架构模型,而数仓概念也是为了解决和这个数据流相关的各种问题,主要是解决多重数据复制带来的高成本问题。在没有数据仓库的时代,需要大量的冗余数据来支撑多个决策支持环境。Inmon将数据仓库描述为一个面向主题的、集成的、随时间变化的、非易失的数据集合,用于支持管理者的决策过程。数据仓库的数据是面向主题的传统的操作型系统是围绕组织的功能性应用进行组织的,而数据仓库是面向主题的。主题是一个抽象概念,简单的说就

2020-09-21 00:50:19 214

原创 拉链表案例简介

user_hisuseridusernamephonestart_dateend_date1001zhangsan130666666662020-09-019999-12-311002lisi130555555552020-09-019999-12-311003wangwu130777777772020-09-019999-12-31user_updateuseridusernamephone1001zhangs

2020-09-14 13:43:25 440

原创 分布式计算模型MapReduce

MapReduce基本使用MapReduce编程规范用户编写的程序分成三个部分:Mapper、Reducer 和 Driver。1、编写Mapper类(1)用户自定义的Mapper要继承框架提供的Mapper类。(2)Mapper的输入数据是KV键值对的形式(KV的类型可自定义)。(3)对数据的处理逻辑写在Mapper类中map() 方法中。(4)Mapper的输出数据是KV键值对的形式(KV的类型可自定义)。(5)map() 方法(maptask进程)每一个<K,V>数据执行一

2020-09-04 17:39:05 232

原创 答题日志练习

1.hdfs dfs -mkdir -p /app/data/examhdfs dfs -put /root/data/answer_question.log /app/data/exam2.def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("exam").setMaster("local[*]") val sc = new SparkContext(conf) val rdd...

2020-09-02 18:41:42 355

原创 HBase基础加进阶

HBase安装见hbase文章HBase架构原理HBase结构HBase架构比较复杂,也比较难理解HBase是Master/slaves架构,从安装环境能看出,HBase分布式环境安装成功后,有一个HMaster,多个HResgionServer进程,HBase架构如图:HBase是由Client、Zookeeper、HMaster、HRegionServer、HDFS等组件组成,组件的相关功能:1、Client:客户端,可以是HBase Shell、Java API客户端、RestAPI等

2020-08-26 08:30:33 281

原创 Redis数据库

目录Redis安装Redis数据类型String(字符串)hash(哈希)List(列表)Set(集合)java连接Redisspark连接RedisPython连接RedisRedis安装安装redisredis是基于c语言编译的wget http://download.redis.io/releases/redis-4.0.6.tar.gztar -zxf redis-4.0.6.tar.gzyum install -y gcccd redis-4.0.6make MALLOC=libc

2020-08-25 19:28:09 126

原创 Python基础及函数

内置函数内置函数无需导包即可使用的函数不同版本的Python内置函数可能略有不同之前已经接触过的内置函数type()、dir()、input()、print()、id()内置函数和使用方法参考文档https://docs.python.org/zh-cn/3/library/functions.html自定义函数定义函数def func_name(参数列表): 函数体 [return/yield函数返回值]Python函数的特点函数参数类型多样允许嵌套函数无需声明函数返回值

2020-08-25 19:12:17 197

原创 斐波拉契蛇和你好中国

目录斐波拉契蛇用python解答结果你好中国用python解答结果斐波拉契蛇用python解答import numpy as npimport pandas as pd# n 矩阵n*n 斐波那契蛇def makeSnake(n): snakeArr = np.zeros((n,n)) # 制作一个point和方向控制变量 direction xPos = yPos = 0 direction = 1 # 1右2下3左4上 # 获取fibona

2020-08-24 18:16:46 152

原创 Python环境搭建及Python数据类型

导入Pandas与Numpyimport numpy as npimport pandas as pds = pd.Series([1,2,3,np.nan,5,6,7])

2020-08-21 17:44:03 205

原创 Apache Spark基础及架构

认识SparkApache Spark是大数据领域最活跃的项目之一,其活跃度目前远超Hadoop。特点是快速、易用、通用及多种运行模式。1、快速Spark是面向内存的大数据处理引擎,这使得Spark能够为多个不同数据源的数据提供近乎实时的处理性能,是用于需要多次操作特定数据集的应用场景。面向磁盘的MapReduce受限于磁盘读/写性能和网络I/O性能的约束,在处理迭代计算、实时计算、交互式数据查询等方面并不高效,但是这些却在图计算、数据挖掘和机器学习等相关应用领域中非常常见。针对这一不足,将数据存储

2020-08-17 02:06:59 284

原创 基于Spark Streaming的流处理和分析

Spark Streaming原理批处理针对有界的、大量的、持久化的静态数据,流处理针对无界的、小量的(每次处理)、持续实时快速生产的数据。应该说批处理系统强调的是计算能力,流处理系统更要求吞吐量(单位时间内处理请求数量)、实时性(至少秒级)。两者之间的关系如下图:目前来看,各类大数据平台都在往批流统一方向发展。无论是有界的历史数据流还是无界的实时数据流,都采用一套底层API解决。以Spark为例,RDD是Spark Core的核心抽象,DStream是Spark Streaming的提供的高级别抽象

2020-08-11 19:59:03 1010

原创 基于Spark GraphX的图形数据分析

为什么需要图计算?许多大数据以大规模图或网络的形式呈现许多非图结构的大数据,常会被转换为图模型进行分析图数据结构很好的表达了数据之间的关联性图(Graph)的基本概念图是由顶点集合(vertex)及顶点间关系集合(边edge)组成的一种网状数据结构通常表示为二元组:Graph =(V,E)可以对事物之间的关系建模应用场景在地图应用中寻找最短路径社交网络关系网页间超链接关系图的术语顶点(Vertex)边(Edge)Graph = (V,E)集合V={v1,v2,v3}集合E=

2020-08-10 13:45:29 451

原创 Apache Spark分布式计算原理

RDD依赖与DAG原理Spark根据计算逻辑中的RDD的转换与动作生成RDD的依赖关系,同时这个计算链也形成了逻辑上的DAGRDD的转换以WordCount为例,分析一下RDD的转换细节val lines = sc.textFile("/data/words.txt")val count = lines.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)count.collect1、首先从

2020-08-07 13:34:07 249

原创 Kafka核心原理

Kafka架构设计安装KafkazkServer.sh starttar -zxf kafka_2.11-2.0.0.tgzmv kafka_2.11-2.0.0 soft/kafka211cd soft/kafka211/config/vi server.properties如果是分布式环境则需要修改broker.id的编号不能相同log.dir是存储数据的位置需要指定(不是日志)Zookeeper.connect=你的zookeeper的IP:2182(多个用逗号隔开)vi /etc

2020-08-06 20:20:08 312

原创 Flume自定义拦截器Interceptors

用java实现一个自定义拦截器将上述图片的性别男设置为1,女设置为0,其他默认为2java自定义拦截器pom:添加flume-ng-core依赖CustomInterceptor类:import org.apache.flume.Context;import org.apache.flume.Event;import org.apache.flume.interceptor.Interceptor;import java.util.List;public class CustomIn

2020-08-06 19:28:19 224

原创 Flume日志收集

Apache Flume简介Flume用于将多种来源的日志以流的方式传输至Hadoop或者其他目的地一种可靠、可用的高效分布式数据收集服务Flume拥有基于数据流上的简单灵活架构,支持容错、故障转移与恢复由Cloudera 2009年捐赠给Apache,现为Apache顶级项目Flume架构Client:客户端,数据产生的地方,如Web服务器Event:事件,指通过Agent传输的单个数据包,如日志数据通常对应一行数据Agent:代理,一个独立的JVM进程Flume以一个或多个Agent部

2020-08-04 20:20:19 234

原创 Scala

Scala简介Scala是一种基于JVM的多范式编程语言,这里的范式可以理解为一种编程风格,比如面向对象编程就是一种范式。常见范式包括:面向过程、面向对象、泛型以及函数式编程Scala的特点静态类型Scala的变量声明后不允许改变类型,换句话说所有变量和表达式的类型在编译时就已经完全确定。这一点和Java是一样的,反过来说像Python则是动态类型语言。静态类型语言对IDE比较友好,IDE可以做到很好的代码感知能力,所以静态类型语言在开发大型复杂系统时更加效率。静态类型语言可读性较好,多数静态类

2020-08-04 08:30:28 249

原创 Spark SQL精华及与Hive的集成

SQL on HadoopSQL是一种传统的用来进行数据分析的标准Hive是原始的SQL-on-Hadoop解决方案Impala:和Hive一样,提供了一种可以针对已有Hadoop数据编写SQL查询的方法Presto:类似于Impala,未被主要供应商支持Shark:Spark SQL的前身,设计目标是作为Hive的一个补充Phoenix:基于HBase的开源SQL查询引擎Spark SQL前身Spark的初衷:让Hive运行在Spark之上是对Hive的改造,继承了大量Hive代码,给优

2020-07-30 18:26:42 236

原创 Apache Spark分布式计算原理

Spark WordCount原理为什么需要划分Stage数据本地化移动计算,而不是移动数据保证一个Stage内不会发生数据移动根据是否发生了数据移动判断是否划分了阶段Spark Shuffle过程在分区之间重新分配数据父RDD中同一分区中的数据按照算子要求重新进入子RDD的不同分区中中间结果写入磁盘由子RDD拉取数据,而不是由父RDD推送默认情况下,Shuffle不会改变分区数量...

2020-07-28 18:59:32 226

原创 Spark基础及架构

为什么使用SparkMapReduce编程模型的局限性繁杂只有Map和Reduce两个操作,复杂的逻辑需要大量的样板代码处理效率低:Map中间结果写磁盘,Reduce写HDFS,多个Map通过HDFS交换数据任务调度与启动开销大不适合迭代处理、交互式处理和流式处理Spark是类Hadoop MapReduce的通用并行框架Job中间输出结果可以保存在内存,不在需要读写HDFS比MapReduce平均快10倍以上Spark优势速度快基于内存数据处理,比MR快10

2020-07-21 19:38:47 175

原创 Scala扩展

match表达式类似于Java switch语句能处理所有类型不需要break能够生成值val firstArg = if(args.length > 0) args(0) else ""firstArg match { case "salt" => println("pepper") case "chips" => println("salsa") case "eggs" => println("bacon") case _ => println("huh

2020-07-16 18:52:10 92

原创 Scala面向对象编程

Scala面向对象基本概念类(class)类通过class关键字定义类通过new关键字创建实例类拥有成员变量和方法类的成员默认为public,也支持private、protected类中无法定义静态成员变量和方法类无需明确定义构造方法,通过构造参数列表声明为类的一部分类成员访问修饰符JavaModifierClassPackageSubclassWorldpublicYYYYprotectedYYYNdefaultYYNN

2020-07-15 19:35:33 187

原创 Scala函数

目录Java Lambda表达式内置四大函数式接口Scala函数参数传递举例命名参数参数缺省值匿名函数高阶函数中置表达式练习函数嵌套练习柯里化隐式参数隐式函数闭包Java Lambda表达式函数式接口一种只含有一个抽象方法声明的接口可以使用匿名内部类来实例化函数式接口的对象通过Lambda表达式可以进一步简化代码内置四大函数式接口消费接口:Consumer供给型接口:Supplier断言型接口:Predicate函数型接口:Function<T,R>Scala函数函数是S

2020-07-15 16:06:42 251

原创 分布式应用协调服务Zookeeper

Zookeeper特点和数据结构Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目Zookeeper=文件系统+通知机制Zookeeper从设计模式上来看是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册一旦数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式特点Zookeeper:一个领导者(leader

2020-07-07 17:16:46 183

原创 hadoop、zookeeper完全分布式、高可用环境搭建

完全分布式集群准备准备3台客户机客户机要关闭防火墙、静态ip、主机映射、主机名称,主机名称分别为hadoop2,hadoop3,hadoop4安装jdk,配置环境变量配置ssh,免密登录拷贝密钥的时候需要拷贝9次配置时间同步集群规划hadoop2hadoop3hadoop4HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNodeYARNNodeManagerResourceManager N

2020-07-07 16:32:38 283 1

原创 用java和scala代码实现快速排序、选择排序、冒泡排序

目录排序方法代码java实现排序生成随机数组冒泡排序选择排序快速排序测试Scala排序生成随机数组冒泡排序选择排序快速排序排序方法代码java实现排序生成随机数组public static int[] arr; // 生成随机数组 public static int[] getRandomArr(int size) { arr = new int[size]; Random random = new Random(); for (in

2020-07-01 20:16:52 229

原创 Scala基础

目录Scala简介安装scalascala开发环境scala交互式编程scala初体验Scala概述Scala变量与常量变量常量类型别名Scala数据类型Scala数据类型层次结构Scala循环控制for循环中断for循环过滤for循环返回值Scala数组Scala元组元祖的函数Scala简介Scala源自JavaScala构建在JVM之上Scala与Java兼容、互通Scala的优势多范式编程:面向对象编程、函数式编程表达能力强、代码精简大数据与ScalaSpark采用Scala语言设

2020-06-30 20:23:15 226

原创 Apache Sqoop介绍及数据迁移

目录Sqoop安装sqoop从RDB导入数据到HDFS导入表到HDFS通过Where语句过滤导入表通过columns过滤导入表通过query方式导入数据使用Sqoop增量导入数据导入文件格式从RDB导入数据到Hive直接导入数据到Hive导入数据到hive分区从RDB导入数据到HBase导入MySQL数据到HBase导出HDFS数据到MySQLHBase数据导入到HiveSqoopSqoop是一个用于在Hadoop和关系数据库之间传输数据的工具将数据从RDBMS导入到HDFSHDFS、Hive、HB

2020-06-29 14:28:26 238

原创 案例:抽象工厂DatabaseFactory,实现mysql和hbase数据和java的交互读写方法封装(23种设计模式之一)

目录图示AbstractDatabaseFactory类DatabaseReaderAndWrite类MySqlDatabaseFactory类:HbaseDatabasefactory类Builderfactory类Configuration类HbaseRWHandler类MySqlRWHandler类测试结果图示AbstractDatabaseFactory类/** * 这是一个抽象工厂 */public abstract class AbstractDatabaseFactory<

2020-06-23 19:59:11 351

原创 用java代码实现和hbase的交互

hbase和mysql数据的交互windows系统可以识别linux打开C:\Windows\System32\drivers\etc\hosts 设置权限为可编辑在末尾添上hostname和ip地址如:192.168.56.100 xuxuhadoop端口:9000,hive端口:10000,java代码的交互建立新表idea:public class MyHbase { public static void main(String[] args) throws Except

2020-06-23 10:50:35 663

原创 java调用mysql存储过程和mysql函数

delimiter $ 改变mysql结束符号创建存储过程create procedure proc_demo(in usid integer)begin delete from customs where userid=usid;call proc_demo(2);创建函数create function func_sum(num1 int,num2 int) returns int begin declare res int;set res=num1+num2; return res;

2020-06-22 00:12:38 438

原创 hbase

安装hbase把安装包拖进linux里面的opt目录下########## 安装hbase ##########// 解压安装包tar -zxf hbase-1.2.0-cdh5.14.2.tar.gz // 移动解压完成后的安装包mv hbase-1.2.0-cdh5.14.2 soft/hbase120cd /opt/soft/hbase120/confvi hbase-env.sh 1.export JAVA_HOME=/usr/local/softwave/jdk1.8.0_

2020-06-22 00:05:48 252

原创 UDF、UDAF、UDTF

UDF概念:User Defined Function 用户自定义函数是一个例程,它接受参数、执行操作并返回该操作的结果。根据定义,结果可以是标量值(单个)或表。UDF 的类型:UDF 主要有 3 种类型(SQL Server Management Studio 把内联表值函数与多语句表值函数放到了一个组中):UDF:自定义标准函数UDAF:自定义聚合函数UDTF:自定义表生成函数UDF开发步骤继承UDF类或GenericUDF类重写evaluate()方法并实现函数逻辑public

2020-06-22 00:00:25 377

原创 项目实战:电子商务消费行为分析

消费行为分析运行zeppelin需求概述环境设置-zeppelin数据结构customer表transaction表store表review表检查行数和header行上传数据到hdfs创建适当的外部表来保存数据数据获取查看并了解数据数据清洗建新表插入清洗后的数据基于hive的数据分析运行zeppelin需求概述对某零售企业最近1年门店收集的数据进行数据分析潜在客户画像用户消费统计门店的资源利用率消费的特征人群定位数据的可视化展现环境设置-zeppelin数据结构customer表l

2020-06-16 19:19:03 1735

原创 hive函数及性能优化

select concat('abc','cd','fff') | abccdfffselect instr('abcdabcd','cd') | 3select length('cd','abcdabcd',4) | 6select locate('cd','abcdabcd',4) | 7select upper('abcdef') ABCDEFselect lower('ABCDef') abcdefselect reg

2020-06-16 00:09:11 255

原创 Apache Hive高级查询

hive查询select 基础select 1;------> 1select explode(split('aa,bb',','));CTE和嵌套查询with…as…语法有效加快运行速度进阶语句列匹配正则表达式select `^o.*` from offers; 列名不是o开头的都列出来虚拟列关联查询指对多表进行联合查询join用于将两个或多个表中的行组合在一起查询类似于sql join,但是hive仅支持等值连接内连接:inner join

2020-06-12 08:28:55 217

原创 hive表格概念

hivehive概念hive的优势和特点数据库和数据仓库区别安装zookeeper安装hive修改mysql登录密码数据库????数据表hive建表语句????hive和MapReducehive元数据管理hive元数据结构数据类型----复杂数据类型数据分层hive概念基于hadoop的数据仓库解决方案将结构化的数据文件映射为数据库表提供类sql的查询语言HQL(Hive Query Language)Hive让更多的人使用HadoopHive成为Apache顶级项目Hive始于2007年

2020-06-09 20:24:54 514

原创 hadoop读取两张表的案例

实现读取两张表到同一个文件夹里,在d盘下创建两张表,例如我创建了一张abc.txt的表和ccc.csv的表,放在同一个文件夹source1下,csv文件默认用“,”隔开。表中数据类型如下。两张表连接排序展示WritableComparable继承自Writable和java.lang.Comparable接口,是一个Writable也是一个Comparable,也就是说,既可以序列化,也可以比较!再看看它的实现类,发现BooleanWritable, BytesWritable, ByteWrit

2020-06-08 14:24:30 214

原创 mapreduce实现wordcount

mapreduce实现wordcount文件分割 splitting小区分词 map小分区聚合 combine数据迁移,拉数据 shuffle总计 reduce步骤首先,把一篇文章分开成为很多片,给分片标号1,2,3号,分别对3片进行分词,Map实现,按照每个英文单词进行拆分,每出现一个就标个1,不管是否重复,combine进行小分片聚合,把重复的英文单词出现的次数聚合到一起,每个片内不再有重复的英文单词,但是1,2,3之间会有重复单词,shuffle对所有分片的单词进行统计,把重复的放在

2020-06-04 17:17:58 266

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除