Hadoop
weixin_49063354
这个作者很懒,什么都没留下…
展开
-
Hadoop 初相识
1 Hadoop的优势:1)高可靠性:hadoop底层维护着多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。3)高效性:在MapReduce 的思想下,Hadoop是并行工作的,以加快任务处理速度。4)高容错性:能够自动将失败的任务重新分配。2 Hadoop的组成Hadoop 1.x的组成:1)MapReduce(计算 + 资源调度)2)HDFS(数据存储)3)Common(辅助工具)H原创 2020-09-03 22:41:41 · 97 阅读 · 0 评论 -
项目经验之基准测试
项目经验之基准测试1) 测试HDFS写性能 测试内容:向HDFS集群写14个128M的文件[xiao @hadoop102 mapreduce]$ hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -write -nrFiles 14 -fileSize 128MB2020-09-02 19:0原创 2020-09-02 19:16:21 · 279 阅读 · 0 评论 -
蚂蚁森林练习之低碳用户排名分析
蚂蚁森林练习之低碳用户排名分析 问题:查询user_low_carbon表中每日流水记录,条件为:用户在2017年,连续三天(或以上)的天数里,每天减少碳排放(low_carbon)都超过100g的用户低碳流水。需要查询返回满足以上条件的user_low_carbon表中的记录流水。例如用户u_002符合条件的记录如下,因为2017/1/2~2017/1/5连续四天的碳排放量之和都大于等于100g:user_iddata_dtlow_carbonu_0022017/1/原创 2020-08-23 23:12:48 · 575 阅读 · 0 评论 -
蚂蚁森林练习之植物申领统计
蚂蚁森林练习之植物申领统计 问题:假设2017年1月1日开始记录低碳数据(user_low_carbon),假设2017年10月1日之前满足申领条件的用户都申领了一颗p004-胡杨,剩余的能量全部用来领取“p002-沙柳” 。统计在10月1日累计申领“p002-沙柳” 排名前10的用户信息;以及他比后一名多领了几颗沙柳。得到的统计结果如下表样式:user_idplant_countless_countu_1011000100u_102900400u_10原创 2020-08-23 23:10:03 · 603 阅读 · 0 评论 -
Hive查询之自定义函数
Hive查询之自定义函数1 自定义函数流程1)Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。2)当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。3)根据用户自定义函数类别分为以下三种:(1)UDF(User-Defined-Function) 一进一出(2)UDAF(User-Defined Aggregation Funct原创 2020-08-21 21:03:14 · 985 阅读 · 0 评论 -
Hive查询之系统内置函数
Hive之系统内置函数1 系统内置函数1)查看系统自带的函数hive (default)> desc function upper; show functions;Time taken: 0.025 seconds, Fetched: 289 row(s)2)显示自带的函数的用法hive (default)> desc function upper;OKtab_nameupper(str) - Returns str with all characters changed原创 2020-08-21 18:04:17 · 999 阅读 · 0 评论 -
Hive查询系列之分区表与分桶表
Hive查询之分区表与分桶表1 分区表 分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。1.1 分区表基本操作1)引入分区表(需要根据日期对日志进行管理,通过部门信息模拟)dept_20200401.logdept_20200402.logdept_20200403.log2)原创 2020-08-21 16:33:19 · 892 阅读 · 0 评论 -
Hive查询系列之初相识
Hive查询系列之初相识1 基本查询(select……from)1.1 全表和特定列查询0)数据准备(0)原始数据dept:10 ACCOUNTING 170020 RESEARCH 180030 SALES 190040 OPERATIONS 1700emp:7369 SMITH CLERK 7902 1980-12-17 800.00 207499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 307521 WARD SALESM原创 2020-08-20 21:17:48 · 991 阅读 · 0 评论 -
Hive之DML数据操作
Hive之DML数据操作1 数据导入1.1 向表中装载数据(Load)1)语法hive (default)> load data [local] inpath '数据的path' [overwrite] into table student [partition (partcol1=val1,…)];(1)load data:表示加载数据(2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表(3)inpath:表示加载数据的路径(4)overwrite:原创 2020-08-20 19:28:01 · 125 阅读 · 0 评论 -
Hive之DDL数据
Hive之DDL数据1.1 创建数据库CREATE DATABASE [IF NOT EXISTS] database_name[COMMENT database_comment][LOCATION hdfs_path][WITH DBPROPERTIES (property_name=property_value, ...)];1)创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db。hive (default)> create dat原创 2020-08-20 10:09:42 · 122 阅读 · 0 评论 -
Hive数据类型
1 基本数据类型HIVEMySQLJAVA长度例子TINYINTTINYINTbyte1byte有符号整数2SMALINTSMALINTshort2byte有符号整数20INTINTint4byte有符号整数20BIGINTBIGINTlong8byte有符号整数20BOOLEAN无boolean布尔类型,true或者falseTRUE FALSEFLOATFLOATfloat单精度浮点数3.1415原创 2020-08-19 18:54:59 · 97 阅读 · 0 评论 -
Hive基本操作
1.Hive安装1)Hive官网地址http://hive.apache.org/2)文档查看地址https://cwiki.apache.org/confluence/display/Hive/GettingStarted3)下载地址http://archive.apache.org/dist/hive/4)github地址https://github.com/apache/hive2.MySql安装1)检查当前系统是否安装过Mysql[xiao @hadoop102 ~]$ rpm原创 2020-08-19 18:36:17 · 146 阅读 · 0 评论 -
Hadoop数据压缩
Hadoop数据压缩1 概述压缩概述: 压缩技术能够有效减少底层存储系统(HDFS)读写字节数。压缩提高了网络宽带和磁盘空间的效率。在运行MR程序时,I/O操作、网络数据传输、Shuffle 和 Merge 要花大量的时间,尤其是数据规模很大和工作负载密集的情况下,因此,使用数据压缩显得非常重要。 鉴于磁盘I/O和网络宽带时Hadoop的宝贵资源,数据压缩对于节省资源、最小化磁盘I/O和网络传输非常有帮助。可以在任意MapReduce阶段启用压缩。不过,尽管压缩和解压操作的CPU开销不高原创 2020-08-18 23:32:03 · 105 阅读 · 0 评论 -
Hadoop企业优化
1.MapReduce跑得慢的原因 MapReduce程序效率的瓶颈在于两点: (1)计算机性能:CPU,内存,磁盘健康,网络 (2)I/O操作优化: ①数据倾斜;②Map和Reduce数设置不合理;③Map运行时间太长,导致Reduce等待过久;④小文件过多;⑤大量的不可切片的超大压缩文件;⑥Split次数过多;⑦Merge次数过多等。2.MapReduce优化方法 MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜原创 2020-08-18 19:42:32 · 61 阅读 · 0 评论 -
zookeeper启动故障
前两天配置完zookeeper之后,启动时遇见了故障,查了查网上帖子,然后跟着做了,故障已经成功排除。[xiao@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh startZooKeeper JMX enabled by defaultUsing config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfgStarting zookeeper ... STARTED//显示STARTED,但是下面的jp原创 2020-08-17 19:13:33 · 701 阅读 · 0 评论 -
HDFS的数据流
HDFS的数据流1.HDFS 写数据流程1.1 刨析文件写入 (1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 (2)NameNode返回是否可以上传。 (3)客户端请求第一个 Block上传到哪几个DataNode服务器上。 (4)NameNode返回3个DataNode节点,分别为dn1、dn2、dn3。 (5)客户端通过FSDataOutputStream模块请求dn1上传原创 2020-08-17 18:34:52 · 119 阅读 · 0 评论 -
HDFS概述与Shell操作
HDFS概述与Shell操作1 HDFS概述1.1HDFS产出背景及定义1.1HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS只是分布式文件管理系统中的一种。1.2 HDFS定义 HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来原创 2020-08-14 18:57:00 · 138 阅读 · 0 评论 -
MapReduce定义与WordCount案例
Hadoop之MapReduce1.MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。2. MapReduce优缺点2.1 优点1)MapReduce易于编程 它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。也就是说你写一原创 2020-08-13 14:29:15 · 171 阅读 · 0 评论 -
MapReduce之切片
MapReduce之切片1 切片与MapTask并行度决定机制1)问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的处理速度。 思考:1G的数据,启动8个MapTask,可以提高集群的并发处理能力。那么1K的数据,也启动8个MapTask,会提高集群性能吗?MapTask并行任务是否越多越好呢?哪些因素影响了MapTask并行度?2)MapTask并行度决定机制 **数据块:**Block是HDFS物理上把数据分成一块一块。数据块是HDFS存储原创 2020-08-13 10:21:09 · 416 阅读 · 0 评论 -
Hadoop之数据清洗
Hadoop之数据清洗数据清洗(ETL) 在运行核心业务MapReduce程序之前,往往需要先对数据进行清洗,清理掉不符合用户要求的数据,清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。1)需求: (1)去除 web.log 日志中字段个数小于等于11的日志 (2)期望输出数据:每行字段长度都大于112)需求分析: 需要在Map阶段对输入的数据根据规则进行过滤清洗3)实现代码: (1)编写EtlMapper类package com.atguigu.原创 2020-08-12 21:27:29 · 2152 阅读 · 2 评论 -
Map Join与Reduce Join
Join多种应用1.Reduce Join1.1.Reduce Join工作原理 Map端的主要工作,为来之不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在Map阶段依据打标志分开),最后进行合并就OK了。1.2.Reduc Join案例实操 需求 订单数据表o原创 2020-08-12 19:50:31 · 179 阅读 · 0 评论 -
Hadoop序列化简述
Hadoop序列化简述1.序列化概述1.1 什么是序列化? 序列化就是把内存中的对象,转换成字节序列(或者其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。 反序列化就是将收到的字节序列(或者其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。1.2 为什么要序列化? 一般来说,“活的”对象值存在于内存里,关机断电就灭有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机上。然而:序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机上。1原创 2020-08-10 21:04:01 · 349 阅读 · 2 评论 -
HDFS客户端操作详解
HDFS客户端操作1.HDFS客户端环境准备:1)找到资料目录下的Windows依赖目录,打开:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oD0Mj4y7-1596801617537)(C:\Users\xiao\AppData\Roaming\Typora\typora-user-images\1596798142155.png)]2) 配置 HADOOP_HOME 环境变量:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4vt原创 2020-08-07 20:05:29 · 674 阅读 · 0 评论