- 博客(91)
- 收藏
- 关注
原创 大数据(二十七):Sqoop常用命令和公用参数
一、常用命令列举 命令 类 说明 import ImportTool 将数据导入到集群 export ExportTool 将集群数据导出 codegen CodeGenTool ...
2018-10-19 13:36:25
240
原创 大数据(二十六):Sqoop的import、export命令和命令脚本
一、sqoop导入命令(import) 在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据。1.在MySql中新建一张表并插入一些数据create database company;create table company.staff(id int(4) primary key not null aut...
2018-10-18 14:19:59
1670
原创 大数据(二十五):Sqoop的介绍和安装
一、Sqoop简介 Sqoop是一种旨在有效的Hadoop和关系型数据库等结构化数据存储之间传输大量数据的工具。Sqoop的原理就是将导入或者导出命令翻译成mapreduce程序来实现。在翻译出的mapreduce中主要就是对inputformat和OutputFormat进行定制。 二、下载并解压Sqoop1.下载地址http://mirrors.hust.edu...
2018-10-16 15:18:13
199
原创 大数据(二十四):数据倾斜优化、并行执行、严格模式、JVM重用、执行计划
一、数据倾斜优化1.合理设置Map数量 1.通常情况下,作业会通过input的目录产生一个或者多个map任务 主要的决定因素有:input的文件总个数,input的文件大小,集群设置的文件块大小。 2.Map并非越多越好 如果一个任务有很多小文件,则每个小文件也会被当做一个块,用一个map任务来完成,而一个map任务启动和初始化的...
2018-10-09 15:15:52
592
原创 大数据(二十三):hive优化、表优化
一、Fetch抓取 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如,select * from employees;在这种情况下,Hive可以简单读取employee对应的存储目录下的文件,然后输出查询结果到控制台。 在hive-default.xml.template文件中hive.fetch.task.conversi...
2018-10-08 16:14:08
391
原创 大数据(二十二):hive分桶及抽样查询、自定义函数、压缩与存储
一、分桶及抽样查询1.分桶表数据存储 分区针对的是数据存储路径(HDFS中表现出来的便是文件夹),分桶针对的是数据文件。分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区,特别是当数据要确定合适的划分大小的时候,分区便不再合适。分桶是将数据集分解成更容易管理的若干部分的技术。2.先创建分桶表,通过直接导入数据的方式插入数据创建分桶表...
2018-09-27 16:12:14
700
原创 大数据(二十一):hive查询语句
一、查询语句1.基本语法SELECT [ALL|DISTINCT] select_expr,select_expr,...FROM table_reference[WHERE where_condition][GROUP BY col_list][ORDER BY col_list][CLUSTER BY col_list|[DISTRIBUTE BY col_list][SO...
2018-09-26 15:29:49
610
原创 J.U.C源码分析:CountDownLatch
CountDownLoad是在并发编程中使用较多的一个类,可以完成多个线程之间的相互等待和协作,源码内容不多但功能强大且使用场景复杂多样。 源码中对CountDownLoad功能的定义非常简单:A synchronization aid that allows one or more threads to wait until a set of operat...
2018-09-25 17:06:20
220
原创 大数据(二十):hive分区表、修改表语句与数据的导入导出
一、分区表 分区表实际上就是对应一个HDFS文件系统上的一个独立的文件夹,该文件夹下是该分区所有的数据文件,hive中的分区就是分目录,把一个大的数据集更具业务需求分割成小的数据集。在查询时通过where子句中的表达式选择查询所需要的指定分区,这样查询效率会提高很多。1.创建分区表create table dept_partition(deptno int,dnam...
2018-09-25 14:40:43
859
原创 大数据(十九):hive数据库基本操作与表分类
一、创建数据库1.创建一个数据,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.dbcreate database db_hive;2.避免创建的数据库已经存在,增加if not existscreate database if not exists db_hive; 若果数据库不存在则创建3.创建一个数据库,指定数据库在HDFS上放...
2018-09-21 14:44:30
503
原创 大数据(十八):Hive元数据配置、常见属性配置、数据类型与数据转换
一、Hive元数据配置到MySQL当中 为什么要把Hive的元数据配置到MySql中?我们可以使用多个客户端连接linux系统并且都尝试启动Hive,可以发现在启动第二个Hive客户端的时候发生报错了。 那是应为在默认的情况下,Hive元数据被保存在内嵌的Derby数据库中,只允许一个会话的连接。在开发的时候多人使用这个Hive的将会变得非常恶心。我们通过将元数...
2018-09-20 16:55:27
1748
原创 大数据(十七):Hive简介、安装与基本操作
一、简介 Hive由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类Sql查询的功能。hive本质是将HQL转化为MapReduce的程序 hive处理的数据存储在HDFS hive分析数据低层的实现是MapReduce 执行程序运行在YARN上 ...
2018-09-19 14:44:59
1671
原创 大数据(十六):Yarn的工作机制、资源调度器、任务的推测执行机制
一、Yarn概述 Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作程序上的应用程序。 二、Yarn基本架构 Yarn主要由ResourceManager、NodeManager、ApplicationMater和Container等组件构成 三、Ya...
2018-09-14 14:03:43
1320
原创 大数据(十五):Hadoop数据压缩与压缩/解压缩实例
一、数据压缩1.概论 压缩技术能够有效减少低层存储系统(HDFS)读写字节。压缩提高了网络带宽和磁盘空间的效率。在Hadoop下,尤其是数据规模很大和工作负载密集的情况下。使用数据压缩闲的非常重要。在这种情况下,I/O操作和网络数据传输要花大量的时间。还有,shuffle与merge过程同样也面临着巨大的I/O压力。 磁盘I/O和网络带宽是Hadoop的宝贵...
2018-09-13 16:17:29
1543
原创 大数据(十四):多job串联与ReduceTask工作机制
一、多job串联实例(倒索引排序)1.需求查询每个单词分别在每个文件中出现的个数 预期第一次输出(表示单词分别在个个文件中出现的次数)apple--a.txt 3apple--b.txt 1apple--c.txt 1grape--a.txt 4grape--b.txt 3grape--c.txt 1pear--a.txt 1pear--b.txt ...
2018-09-13 13:12:38
326
原创 大数据(十三):MapJoin(DistributedCache分布式缓存)、数据清理实例与计数器应用
一、在map端表合并(DistributedCache分布式缓存)1.适用场景 适合用于关联表中有小表的情形。 可以将小表分发到所有的map节点,这样,map节点就可以在本地对自己所读到的大表数据进行合并并输出最终结果,可以大大提高合并操作的并发速度,加快处理速度。2.程序分析 加载缓存数据:job.addCacheFile(new URI("fi...
2018-09-12 14:11:09
671
原创 大数据(十二):自定义OutputFormat与ReduceJoin合并(数据倾斜)
一、OutputFormat接口 OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口。1.文本输出TextOutPutFormat 默认的输出格式是TextOutputFormat,它把每条记录写为文本行。他的键和值可以是任意类型,会通过toString()方法吧他们转换为在字符串。...
2018-09-11 14:59:41
271
原创 大数据(十一):Shuffle机制(Combiner合并、辅助排序(分组)GroupingComparator)与小文件处理实战(自定义InputFormat)
这章主要是大数据(九)和大数据(十)的补充如果是学习大数据的请仔细阅读之前的文章大数据(九):https://blog.csdn.net/qq_34886352/article/details/82461919大数据(十):https://blog.csdn.net/qq_34886352/article/details/82498134一、Combiner合并1.Combin...
2018-09-10 16:17:21
797
原创 大数据(十):MapTask工作机制与Shuffle机制(partitioner输出分区、WritableComparable排序)
一、MapTask工作机制 Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。 Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用Output...
2018-09-07 16:12:11
1228
原创 大数据(九):MapReduce工作机制和切片机制理论
这篇内容为理论,具体的实现实战:大数据(十一):https://blog.csdn.net/qq_34886352/article/details/82591296一、MapReduce工作机制上面的流畅是整个MapReduce最全的工作流程,但是shuffle过程只是从第7步开始到第16结束,具体shuffle过程如下: MapTask收集我们的map()方法输出的KV...
2018-09-06 15:24:17
1201
1
原创 大数据(八):MapReduce入门与简单实现
一、MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。 二、MapReduce优缺点优点: MapReduce易于编程。它简单的实现...
2018-09-05 16:44:21
681
原创 大数据(七):DataNode工作机制
一、DataNode工作机制 一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,快数据的校验和,以及时间戳 DataNode启动后向namenode注册,通过后,周期性(默认1小时)的向namenode上报所有的块信息 心跳是每3秒一次,心跳返回结果带有namenode给该datanode的命令如复制块数...
2018-09-03 16:32:47
1041
原创 大数据(六):NameNode工作机制
一、NameNode和Secondary NameNode工作机制左侧为NameNode 右侧为Secondary NameNode 1.第一阶段:namenode启动 第一次启动namenode格式化后,创建fsimage和edits文件,如果不是第一次启动,直接加载编辑日志和镜像文件到内存。 客户端对元数据镜像增删改的请求 namenode记录操作日...
2018-08-31 16:08:58
3198
原创 大数据(五):HDFS数据流深入理解
一、HDFS的写数据流程 客户端通过Distributed FileSystem模块namenode请求上传文件,namenode检查目标文件是否已存在,父目录是否存在 namenode返回是否可以上传 客户端请求第一个block上传到哪几个datanode服务器上 namenode放回3个datanode节点,分别为dn1、dn2、dn3。 客户...
2018-08-31 10:14:28
372
原创 大数据(四):通过API和IO流控制HDFS
一、获取api和配置开发环境 准备jar包 解压hadoop-2.7.2.tar.gz到非中文目录 进入share文件夹,查找所有jar包,并把jar包拷贝到_lib文件夹下 在全部jar包中查找sources.jar,并剪切到_source文件夹 在全部jar包中查找tests.jar,并剪切到_test文件夹 准备...
2018-08-30 14:01:24
381
原创 每日算法:两个排序数组的中位数
题目:给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]中位...
2018-08-28 16:34:26
364
原创 大数据(三):HDFS文件系统概述和命令行操作
一、HDFS概述 随着数据量越来越大,一个操作系统管辖的范围内存不下了,那么久分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统,HDFS只是分布式文件系统中的一种。 HDFS用于储存文件,通过目录树来定位文件;其次,它还是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。...
2018-08-28 11:41:06
360
原创 大数据(二):入门Hadoop
一、什么是大数据,什么是Hadoop 大数据:指无法再一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多元化的信息资产。 数据存储单位:bit<Byte<KB<MB<GB<TB<PB<EB<ZB<YB<BB<...
2018-08-28 11:39:57
431
原创 大数据(一):Hadoop的安装与本地模式、伪分布式模式、完全分布式模式配置
一、大数据的四个v特征 volume 体量大 variety 样式多 velocity 速度快 valueless 价值密度低 二、Hadoop四个模块 common hdfs:包括的进程nameNode+dataNode+secondaryNameNode hadoop yarn:包括的进程resourceManager...
2018-08-24 13:56:27
1095
原创 Docker容器虚拟化(四):容器数据卷与DockerFile
将运用与运行的环境打包形成容器运行,运行可以伴随着容器,担心我们对数据的要求希望是持久化的 容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然就没有了。为了能保存数据在docker中我们使用卷一、数据卷 卷就是目录或者文件,存在于一个或多个...
2018-08-21 14:20:33
1595
原创 Docker容器虚拟化(三):镜像原理与生成新镜像
一、镜像原理 镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,他包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统...
2018-08-17 16:42:23
679
原创 Docker容器虚拟化(二):简单入门和常用命令
一、Docker低层是如何工作的 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socker连接从客户端访问,守护进程从客户端接命令并管理运行在主机上的容器,容器是一个运行时环境。 docker有着比虚拟机更少的抽象层,由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程...
2018-08-16 16:19:42
411
原创 Docker容器虚拟化(一):基本概念与安装
一、Docker解决了什么问题? 一款产品从开发到上线,从操作系统,到环境运行,在到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司不得不面对的问题,特别是各版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。 Docker对此给出了一个标准化的解决方案。 环境配置如此麻烦,换一台机器,就要重来一次,费力费时。那...
2018-08-09 14:25:31
4265
原创 SpringCloud学习笔记(五):zuul路由网关和Config分布式配置中心
一、什么是Zuulzuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到剧透的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础,Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul转...
2018-08-08 14:57:08
3665
原创 SpringCloud学习笔记(四):Hystrix断路器实现服务熔断、服务降级、服务监控
一、为什么需要断路器服务雪崩:多个微服务之间调用的时候,假设微服务A调用服务B和服务C,微服务B和微服务C有又调用其他的的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒内饱和。比失败更糟糕的是,...
2018-08-07 14:23:13
1161
原创 SpringCloud学习笔记(三):Ribbon和Feign负载均衡
SpringCloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算方法,将Netflix的中间服务连接在一起。Ribbon客户端主键提供一系列完善的配置项如何连接超时,重试等,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的...
2018-08-06 16:48:38
979
原创 SpringCloud学习笔记(二):服务注册与发现Eureka
一、什么是Eureka Eureka是Netflix的一个子模块,也是核心功能之一,Eureka是一个基于Rest的服务,用于定位服务,以实现云端中间件服务发现要和故障移除。服务注册与发现对于微服务架构来说是非常重要的,由来服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper Spring...
2018-08-03 15:40:36
410
原创 SpringCloud学习笔记(一):微服务是什么?SpringCloud是什么?
一、什么是微服务 马丁福勒对微服务的概述:微服务架构一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协作、相互配合,为用户提供最终价值。服务之间采用轻量级的通讯机制互相沟通(通常是基于Http和RESful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的...
2018-07-27 14:59:14
609
原创 一次性解决权限树遍历--------权限树后台遍历的通用解决方案
一、权限树是什么在写项目的权限管理模块、用户系统的时候经常碰见类似的树结构我们一般习惯称之为权限树,权限树应用的地方有很多,比较常见的有:权限管理时候的树状图(如上图),页面左侧的一二三级的菜单,物品分类的树状菜单。在实际项目中这种权限结构,数据库设计一般是这样的:其中我们需要通过id和父id来遍历树状图,这种结构非常简单也很好理解,但对于新手编码来说就不是特别的友...
2018-07-10 13:48:17
14622
9
原创 Spring基于配置文件的方式来配置AOP
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.sp
2018-02-22 17:32:15
429
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅