自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hive函数

Hive有非常丰富的内置函数库,可以通过以下命令来查看所有的Hive自带函数:# 查看所有自带函数show functions;# 显示自带函数的用法:desc function upper;# 详细显示函数用法desc function extended upper;常用自带函数:#字符串连接函数: concat select concat('abc','def’,'gh'); # 带分隔符字符串连接函数: concat_ws select concat_ws(',',

2020-09-28 13:06:38 77

原创 Hive常用查询语句

数据源如下:学生表:sid sname birth sex01 赵雷 1990-01-01 男02 钱电 1990-12-21 男03 孙风 1990-05-20 男04 李云 1990-08-06 男05 周梅 1991-12-01 女06 吴兰 1992-03-01 女07 郑竹 1989-07-01 女08 王菊 1990-01-20 女老师表:tid tname01 张三02 李四03 王五课程表:cid cname tid01 语文 0202 数学 01

2020-09-28 09:40:55 363

原创 hive表操作

内部表操作# 创建简单入门表create table tb1(id int, name String);# 使用insert插入数据(会转化为mapreduce程序)insert into tb1(1, "zhangsan");# 创建表并指定分隔符create table if not exists tb2(id int, name String)row format delimited fields terminated by "\t";# 创建表并指定表文件的存放路径crea.

2020-09-27 20:47:13 94

原创 YARN的Job任务提交流程和任务调度

在Hadoop体系中,YARN的主要作用是资源管理和任务调度,其主要组合包括ResourceManager和NodeManager,下面来聊聊它的job任务提交流程和任务调度算法。job任务提交流程job任务的提交流程如下图:1 客户端向ResourceManager提交任务,ResourceManager会根据权限和当前集群的负载情况执行Job任务2 ResourceManager就会启动ApplicationManager来启动AppMaster,一个AppMaster对应一个Job任务

2020-09-27 12:50:20 550

原创 自定义·InputFormat实现小文件合并

我们在使用MapReduce读取文件时,一般使用的都是TextInputFormat进行读取文件,TextInputFormat是以行来读取的,读取出来的key是偏移量,value就是每一行文本。我们都知道在Hadoop中,小文件不仅影响NameNode性能,同时也影响MapReduce性能,所以我们正好可以通过自定义InputFormat来实现一下小文件的合并,同时也可以以此来了解InputFormat的某些底层原理。我们要实现文件读取的功能,不妨先看看TextInputFormat是怎么实现的。走!我

2020-09-26 20:37:07 164

原创 Hadoop HA原理

Hadoop HA集群的工作机制如下图:Hadoop HA集群总体上可以分为三部分:NameNode集群、JournalNode集群和Zookeeper集群。NameNode在某一时刻只有一个处于活跃状态,其他的都处于standby状态;JournalNode负责把edits文件传到standby的NameNode上;Zookeeper负责监控NameNode宕机情况,ZKFC(ZookeeperFailoverController)是专门监控NameNode健康的。为了同步NameNode的元数据一

2020-09-26 11:07:07 260

原创 SecondaryNameNode工作原理

fsimage和edits详解editsedits存放的是HDFS最近一段时间的修改日志,客户端对HDFS的操作首先会被记录到edits,然后namenode的元数据也会更新。fsimagefsimage是namenode元数据的备份,可以理解为是namenode的checkpoint。因为NameNode的元数据是存储在内存中的,所以每次NameNode重启或者是启动的时候都会先导入fsimage然后按照edits执行一遍,得到目前的文件系统的元数据信息。注意:上述过程中HDFS会进

2020-09-26 09:54:59 419

原创 HDFS读写文件详细过程

HDFS写文件写文件的大致过程如下图所示:HDFS写文件过程详解:1.客户端首先会向NameNode提交写文件申请2.NameNode检查用户权限和是否存在该目录文件等问题,决定是否可以上传3.NameNode返回是否可以上传4.如果NameNode返回可以上传,客户端就会向NameNode申请上传第一个block5.NameNode根据机架感知机制和DataNode空间大小等问题,返回三个(默认)DataNode地址6.客户端和返回的三台DataNode建立通信管道,本质是RPC调用,D

2020-09-26 09:53:02 557

原创 HDFS压力测试

实际生产环境当中,hadoop的环境搭建完成之后,第一件事情就是进行压力测试,测试我们 的集群的读取和写入速度,测试我们的网络带宽是否足够等一些基准测试。写入速度测试# 向HDFS文件系统中写入数据,10个文件,每个文件10MBhadoop jar /HadoopPath/share/hadoop/mapreduce/hadoopmapreduce-client-jobclient-2.7.5.jar TestDFSIO -write -nrFiles 10 fileSize 10MB# 测试

2020-09-26 09:43:18 673

原创 HDFS文件限额配置

HDFS上的配额管理针对的是某个目录而不是某个用户,添加配额管理可以更好地管理文件系统。配额管理可分为文件数量限额和目录空间大小限额,可以通过以下命令查看耨个目录的配额信息。#查看配额信息hdfs dfs -count -q -h /dir0none inf none inf 1 0 0 /dir0QUOTA REMAINING_QUATA SPACE_QUOTA SPACE_QUOTA

2020-09-26 09:42:30 822 1

原创 编译Hadoop源码包

为什么要自己编译源码包?为什么要编译源码包而不直接已经编译好的Apache安装包?因为已经编译好的Apache安装包不可以做压缩,所以要自己下载源码包编译。编译环境jdk1.7(注意:编译hadoop-2.7.x必须使用jdk1.7,否则会报错)maven3.xfindbug在线安装依赖包yum install autoconf automake libtool cmakeyum install ncurses-develyum install openssl-devel

2020-09-26 09:41:34 68

原创 MapReduce的MapJoin和ReduceJoin

先看元数据格式,有两张表商品表和订单表p开头的列代表商品ID,我们要通过商品ID实现Join操作,在MapReduce有两种方式,MapJoin和ReduceJoin:product.txtp0001,小米5,1000,2000p0002,锤子T1,1000,3000order.txt1001,20150710,p0001,21002,20150710,p0002,31003,20150710,p0001,3ReduceJoin先来看看ReduceJoin操作,数据的大致过程如下图:

2020-09-25 17:07:34 289

原创 Mapreduce的shuffle过程详解

MapReduce的shuffle过程可细分为两个过程:Map端:客户端提交Job任务后,经过一系列资源分配启动MapTask后,各个MapTask就会去HDFS通过InPutFormat拿到数据,进入MapTask任务。数据经过MapTask后会先根据Partitioner进行分区。数据经过分区后就会进入环形缓冲区,环形缓冲区大小默认为100M,也可以通过mapred-site.xml文件进行配置,当数据达到80%的时候,环形缓冲区的数据就会发生溢出,溢出的同时也会对key进行快速排序。

2020-09-25 00:13:14 1152

原创 shell编程基础

前置文件:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8SvlTqt-1600478631043)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1600437955860.png)]cut# 截取字符串 -d 指定以什么作为分隔符截取 -f 指定要截取的分区域(1,2,3 => 第1,2,3个域 1- => 1-末尾 n-m => n-m的域) -c 按字符分区域# 以空格

2020-09-19 09:25:06 103

空空如也

空空如也

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

TA关注的人

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