自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Sqoop抽取Postgresql数据到HDFS和Hive时数据量增多

1、现象:postgresql源表数据量:抽取到HDFS上和Hive之后数据量:2、原因:使用sqoop从pg库导出数据至HDFS或Hive时,如果数据中包含Hive指定的列分隔符,如”\001”或”\t”,那么在Hive中就会导致数据错位;如果数据中包含换行符”\n”,那么就会导致原先的一行数据,在Hive中变成了两行或多行数据,导致数据量增多。正常的:3、解决:在sqoop执行import导入命令时添加参数–hive-drop-import-delims,作用是在导入时从字符串字

2021-08-27 16:36:50 1124

原创 Name node is in safe mode.

之前在抽取pg库数据时任务失败,报错:com.aliyun.emr.flow.agent.common.exceptions.EmrFlowException:###[E30001,STORAGE]: Failed to access the storage, cause: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /emr-flow/emr-header-1.cluster-23

2021-08-27 16:31:33 461

原创 is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used......

0、任务执行报错截图:1、错误分析:显示物理内存和虚拟内存的占用情况Container [pid=24845,containerID=container_1625047493764_0479_01_000001] is running beyond physical memory limits. Current usage: 1.0 GB of 1 GB physical memory used; 6.6 GB of 4.9 TB virtual memory used. Killing contai

2021-08-27 16:25:25 2694

原创 HDFS数据导入Hive表报错

1、报错:Failed with exception java.io.IOException:java.lang.RuntimeException: hdfs://emr-header-1.cluster-212710:9000/warehouse/hdcdt/ods/ods_act_activity_info/dt=2020-12-10/part-m-00000 is not a Parquet file. expected magic number at tail [80, 65, 82, 49] b

2021-08-27 16:10:55 1870

原创 MySQL数据库中文显示成问号的解决方案

问题现象插入到MySQL数据库的中文数据都显示为一个个的问号“?”原因定位一开始还以为是SecureCRT没有设置编码的原因,于是设置字符编码为UTF-8:还是不行,于是又把centos7设置为中文版本:结果还是不行,MySQL数据库还是显示的中文为一个个问号。解决办法初步判定是编码的问题。我们利用命令查看编码情况:mysql> show variables like'character_set_%';+-----------------------

2020-09-24 21:41:40 10466 1

原创 zookeeper无法启动,报“Unable to load database on disk”

问题背景:在三台虚拟机上都装了zookeeper服务,由于昨晚虚拟机在强制关机之前Zookeeper服务没有正常关闭,导致今天三台虚拟机上的第二台虚拟机(node02)上的Zookeeper服务不能正常启动,进程没有起来:原因定位:在node02机器上查看Zookeeper服务启动的日志,显示报错ERROR [main:QuorumPeer@577] - Unable to load database on disk问题解决:在该node02节点上将zookeeper以下目录中的vers

2020-09-08 10:59:13 2879

原创 Linux下PostgreSQL安装部署详细步骤

目录一、安装环境二、pg数据库安装包下载三、安装依赖包四、安装postgres五、创建用户组postgres并创建用户postgres六、创建postgresql数据库的数据主目录并修改文件所有者七、配置环境变量八、切换用户到postgres并使用initdb初使用化数据库九、配置服务十、设置PostgreSQL开机自启动十一、开始测试一、安装环境postgresql-11.1 CentOS-6.4 注意:确认linux系统可以正常连接网络,因为在后.

2020-09-04 14:59:47 33069 38

原创 工作流调度器Azkaban的基本架构、运行模式、安装部署和使用案例详解

目录一、准备工作二、Azkaban介绍1. 为什么需要工作流调度系统2. Azkaban介绍三、Azkaban的基本架构四、Azkaban的三种运行模式五、Azkaban的安装部署1. Azkaban的编译2. Azkaban两个服务模式安装六、Azkaban使用场景案例1. Command类型单一job示例2. Command类型多job工作流flow3. HDFS操作任务4. MAPREDUCE任务5. HIVE脚本任务6. Azkaban

2020-09-03 15:25:58 1022

转载 Sqoop常用命令及参数

目录一、常用命令列举二、命令&参数详解1、公用参数:数据库连接2、公用参数:import3、公用参数:export4、公用参数:hive5、命令&参数:import6、命令&参数:export7、命令&参数:codegen8、命令&参数:create-hive-table9、命令&参数:eval10、命令&参数:import-all-tables11、命令&参数:job12、命令&

2020-09-01 18:20:51 2534

原创 Sqoop安装部署和数据的导入导出案例详解

目录一、概述二、Sqoop的工作机制三、Sqoop1与Sqoop2架构对比四、Sqoop安装部署五、Sqoop的数据导入1. 列举出所有的数据库2. 准备表数据3. 导入数据库表数据到HDFS4. 导入到HDFS指定目录5. 导入到HDFS指定目录并指定字段之间的分隔符6. 导入关系表到Hive7. 导入关系表到Hive并自动创建Hive表8. 将MySQL表数据导入到HBase当中去9. 导入表数据子集10. SQL语句查找导入HDFS11.

2020-09-01 18:05:19 508 1

原创 Phoenix构建HBase二级索引案例实战

目录一、为什么要使用二级索引?二、全局索引和本地索引三、可变索引和不可变索引四、配置HBase支持Phoenix二级索引五、实战5.1 在phoenix中创建表5.2 导入测试数据5.3 Global Indexing的二级索引测试5.4 Local Indexing的二级索引测试5.5 如何确保query查询使用Index5.6 索引重建5.7 删除索引六、索引性能调优一、为什么要使用二级索引?对于HBase而言,如果想精确地定位到某行记录,唯一

2020-08-28 16:06:47 395 1

原创 Phoenix介绍和安装部署

目录一、Phoenix简介二、Phoenix安装部署1、下载安装包2、上传解压3、修改配置4、验证是否成功5、Phoenix使用1)批处理方式2)命令行方式3)GUI方式4)JDBC调用方式一、Phoenix简介 HBase 提供很方便的shell脚本以及java API等方式对Hbase进行操作,但是对于很对已经习惯了关系型数据库操作的开发来说,有一定的学习成本,如果可以像操作MySQL等一样通过sql实现对HBase的操作,那么很大程度降低...

2020-08-28 15:24:49 1234

原创 Flume自定义Sink实现将数据写入到MySQL表中

目录需求说明代码开发步骤第一步:创建mysql数据库表第二步:定义mysqlSink类第三步:代码打包上传第四步:开发flume的配置文件第五步:启动flume第六步:创建文件验证数据进入mysql需求说明 官方提供的sink类型已经很多,但是有时候并不能满足实际开发当中的需求,此时我们就需要根据实际需求自定义某些sink。如:需要把接受到的数据按照规则进行过滤之后写入到某张mysql表中,所以此时需要我们自己实现MySQLSink。 官方也提供了自定义s

2020-08-27 17:40:20 1774

原创 Flume自定义Source实现从MySQL数据库获取数据

目录需求说明代码开发步骤第一步:创建mysql数据库表第二步:创建maven工程,添加依赖第三步:添加配置文件第四步:代码开发1. 定义查询mysql的工具类2. 自定义mysqlSource类第五步:打包上传到flume的lib目录下第六步:开发flume的配置文件第七步:启动flume官方提供的source类型已经很多,但是有时候并不能满足实际开发当中的需求,此时我们就需要根据实际需求自定义某些source。如:实时监控MySQL,从MySQL中获取数

2020-08-27 17:31:43 1108 1

原创 Flume综合案例之自定义拦截器使用

目录案例需求实现步骤第一步:创建maven java工程,导入jar包第二步:自定义flume的拦截器第三步:打包上传服务器第四步:开发flume的配置文件第五步:上传测试数据第六步:node03启动flume并查看结果在前面的文章中Flume拦截器(interceptor)详解和静态拦截器综合案例实现对拦截器做了介绍,本文再结合具体案例对自定义拦截的使用作进一步介绍。案例需求在数据采集之后,通过flume的拦截器,实现不需要的数据过滤掉,并将指定的第一个字段..

2020-08-27 16:02:01 1003

原创 Flume拦截器(interceptor)详解和静态拦截器综合案例实现

目录一、Flume拦截器(interceptor)介绍二、Flume内置的拦截器1、时间戳拦截器2、主机拦截器3、静态拦截器4、正则过滤拦截器三、静态拦截器综合案例实现1. 案例场景2. 场景分析3. 数据流程处理分析4. 实现一、Flume拦截器(interceptor)介绍 拦截器是简单的插件式组件,设置在source和channel之间。source接收到的事件event,在写入channel之前,拦截器都可以进行转换或者删除这些事件。...

2020-08-27 15:32:02 4476

原创 Flume负载均衡load balancer案例实现

目录Load balancing Sink Processor介绍负载均衡案例实现第一步:开发node01服务器的flume配置第二步:开发node02、node03服务器的flume配置第三步:准备启动flume服务Load balancing Sink Processor介绍Flume中的Sink Processors,顾名思义,就是沉槽处理器,也就是数据向哪里流,怎么流由处理器控制。以sinkgroup的形式出现。简单的说就是一个source 对应一个Sinkgroups,

2020-08-27 15:03:57 631

原创 高可用Flum-NG配置Failover故障转移案例

目录1. 角色分配2. node01安装配置flume与拷贝文件脚本3. node02与node03配置flume collection4. 顺序启动命令5. 测试FAILOVER高可用的Flume NG集群,架构图如下所示:图中所示,Agent1数据分别流入到Collector1和Collector2,Flume NG本身提供了Failover机制,可以自动切换和恢复。在上图中,有2个产生日志服务器分布在不同的机房,要把所有的日志都收集到一个集群中存储。下面我们开发配置Fl

2020-08-27 14:44:23 200

原创 HBase表的Rowkey设计和热点问题

目录Rowkey设计三原则1 rowkey长度原则2 rowkey散列原则3 rowkey唯一原则HBase表的热点1 什么是热点2 热点的解决方案2.1 预分区2.2 加盐2.3 哈希2.4 反转Rowkey设计三原则1 rowkey长度原则 rowkey是一个二进制码流,可以是任意字符串,最大长度64kb,实际应用中一般为10-100bytes,以byte[]形式保存,一般设计成定长。 建议尽可能短;但是也不能太短,否则rowkey前缀重

2020-08-25 15:54:06 361

原创 HBase集成Hive详解

目录一、HBase与Hive的对比二、HBase整合Hive配置三、需求一:将Hive表当中分析的结果保存到HBase表四、需求二:创建Hive外部表,映射HBase当中已有的表模型Hive提供了与HBase的集成,使得能够在HBase表上使用hive sql 语句进行查询、插入操作以及进行Join和Union等复杂查询,同时也可以将hive表中的数据映射到Hbase中。一、HBase与Hive的对比Hive 数据仓库 Hive的本质其实就相当于将HDFS中已经存储的文

2020-08-25 12:56:29 449 1

原创 HBase BulkLoad批量写入数据实战

目录一、HBase BulkLoad介绍1、前言2、为什么要用bulkload方式导入?3、bulkload的实现原理二、HBase BulkLoad批量写入数据实战1、开发生成HFile文件的代码2、打成jar包提交到集群中运行3、观察HDFS上输出的结果4、加载HFile文件到hbase表中5、总结一、HBase BulkLoad介绍1、前言在前面的文章中我们介绍了HBASE的存储机制,HBASE存储数据其底层使用的是HDFS来作为存储介质,HBASE

2020-08-25 11:28:20 1044

原创 HBase过滤器查询

目录1、过滤器2、比较过滤器使用3、专用过滤器使用4、多过滤器综合查询FilterList1、过滤器过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端过滤器的类型很多,但是可以分为两大类 比较过滤器 专用过滤器 2、比较过滤器使用 HBase过滤器的比较运算符: LESS <LESS_OR_EQUAL <=EQUAL =NOT_EQUAL <>GREATER_OR_EQUAL >=

2020-08-22 15:52:09 1414

原创 Kudu的架构原理、底层数据模型和读写流程详解

目录一、Apache Kudu 介绍1. 背景介绍2. kudu 是什么3. kudu 应用场景二、Apache Kudu 架构1. Table2. Tablet3. Tablet Server4. Master Server三、Apache Kudu 原理1. table 与 schema2. kudu 底层数据模型3. tablet 发现过程4. kudu 写流程5. kudu 读流程6. kudu 更新流程...

2020-08-20 17:03:31 2821

原创 HBase shell 命令基本操作

目录HBase shell 命令基本操作1 进入HBase客户端命令操作界面2 help 帮助命令3 list 查看有哪些表4 create 创建表5 put 插入数据操作6 查询数据操作7 更新数据操作8 删除数据以及删除表操作9 统计一张表有多少行数据HBase的高级shell管理命令1 status2 whoami3 list4 count5 describe6 exists7 is_enabled、is_disabled8

2020-08-20 14:59:22 505

原创 一张图轻松搞懂Hive中的join(内连接、左外连接、右外连接、满外连接)

join语句1 等值 joinHive支持通常的SQL JOIN语句,但是只支持等值连接,==不支持非等值连接==。案例实操select * from stu left join score on stu.id = score.s_id;根据学生和成绩表,查询学生姓名对应的成绩2 表的别名好处 使用别名可以简化查询。 使用表名前缀可以提高执行效率。 案例实操:合并老师与课程表-- hive当中创建course表并加载数据create table ..

2020-08-19 14:45:34 7720 3

原创 Hive中的lateral view 、explode、reflect、行转列、列转行、窗口函数与分析函数使用与区别详解

目录一、使用explode函数将hive表中的Map和Array字段数据进行拆分二、使用explode函数拆分json字符串数据三、配合LATERAL VIEW使用四、列转行五、行转列六、reflect函数七、窗口函数与分析函数1、创建hive表并加载数据2、窗口函数3、OVER从句4、分析函数5、增强的聚合Cube和Grouping和Rollup6、使用cube和ROLLUP根据GROUP BY的维度的所有组合进行聚合。一、使用explode函...

2020-08-19 13:10:56 6256

原创 Hive中常用函数介绍和使用说明(非常全面和详细,值得收藏~)

目录一、关系运算二、数学运算三、逻辑运算四、数值计算五、日期函数六、条件函数七、字符串函数八、集合统计函数九、复合类型构建操作十、复杂类型访问操作十一、复杂类型长度统计函数一、关系运算1、等值比较: =语法:A=B操作类型:所有基本类型描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSE hive> select 1 from tableName where 1=1; 2、不等值比较: <>语法

2020-08-19 11:14:40 2623 1

原创 Hive中常用的企业级调优手段

目录一、Fetch抓取二、本地模式三、表的优化1、小表和大表 join2、大表 join 大表1)空 key 过滤2)空 key 转换3、map join4、group By5、count(distinct)6、笛卡尔积四、使用分区剪裁、列剪裁五、并行执行六、严格模式七、JVM重用八、推测执行九、压缩十、使用EXPLAIN(执行计划)十一、数据倾斜1、合理设置Map数2、小文件合并3、复杂文件增加Map数4、合理设置

2020-08-18 12:03:16 321

原创 Hive中的数据导入和导出、分区表和分桶表的使用与区别详解

目录一、Hive数据导入二、Hive数据导出三、Hive的分区表1.1 为什么要分区?1.2 外部分区表综合练习四、Hive的分桶表1.1 分桶表原理1.2 作用1.3 案例演示:创建分桶表五、分区表和分桶表的区别一、Hive数据导入1 直接向表中插入数据(强烈不推荐使用)hive (myhive)> create table score3 like score;hive (myhive)> insert into table score3

2020-08-17 10:33:59 2665

原创 Hive中的DDL操作详解(库和表的创建删除、内部表和外部表的使用区别)

目录Hive的DDL操作1 数据库DDL操作1.1 创建数据库1.2 显示所有数据库1.3 查询数据库1.4 查看数据库详情1.5 切换当前数据库1.6 删除数据库2 表DDL操作2.1 建表语法介绍2.2 创建内部表2.3 创建外部表2.4 内部表与外部表的互相转换2.5 内部表与外部表的区别2.6 内部表与外部表的使用时机2.7 hive的分区表外部分区表综合练习Hive的DDL操作1 数据库DDL操作1.1 创建数据库

2020-08-13 14:45:07 865

原创 数据仓库介绍和Hive的优缺点、架构原理、交互方式以及数据类型详解

目录1. 数据仓库1.1 数据仓库的基本概念1.2 数据仓库的主要特征1.3 数据仓库与数据库区别1.4 数据仓库分层架构2. Hive2.1 Hive的概念2.2 Hive与数据库的区别2.3 Hive的优缺点2.4 Hive架构原理3. Hive的交互方式3.1 Hive交互shell3.2 Hive JDBC服务3.3 Hive的命令4. Hive的数据类型4.1 基本数据类型4.2 复合数据类型1. 数据仓库1.1 数据仓库

2020-08-13 11:44:25 1286

原创 Hive安装部署详细步骤

目录1、安装前准备:2、Hive安装部署2.1 先决条件2.2 准备安装包2.3 解压2.4 修改配置文件2.5 拷贝mysql驱动包2.6 配置Hive环境变量2.7 验证安装1、安装前准备:安装好对应版本的hadoop集群(node01、node02、node03),并启动hadoop的HDFS以及YARN服务 安装了MySQL服务,并启动MySQL的服务。如果没有安装,可以参考:安装MySQL2、Hive安装部署注意:hive就是一个构建数据仓库的工

2020-08-12 12:19:47 1912

原创 Centos7安装MySQL5.7版本详细步骤

目录1、安装前准备:2. 安装mysql2.1 下载并安装mysql官方的yum源2.2 安装mysql3. 设置mysql3.1 启动mysql服务3.2 修改密码4. mysql的卸载4.1 停止mysql服务4.2 列出已安装的mysql相关的包4.3 卸载mysql包4.4 删除mysql残留文件1、安装前准备:准备一台CentOS 7的服务器 CentOS 7中切换到root用户,安装mysql 在CentOS 7中默认安装有Mari

2020-08-12 10:30:42 1237

原创 5节点Hadoop-2.6.0-cdh5.14.2 HA集群搭建详细步骤

目录一、集群规划二、五节点Hadoop HA搭建1. 虚拟机环境准备2. 安装ZooKeeper集群3. 五节点Hadoop HA搭建3.1 解压hadoop压缩包3.2 修改hadoop-env.sh3.3 修改core-site.xml3.4 修改hdfs-site.xml3.5 修改mapred-site.xml3.6 修改yarn-site.xml3.7 修改slaves3.8 远程拷贝hadoop文件夹3.9 修改两个RM的yarn-site

2020-08-11 17:15:05 1013

原创 Hadoop高可用(HA机制)详解

目录一、ZooKeeper监听器二、HDFS HA原理1、元数据同步2、主备切换在前面的文章Zookeeper(2)基础架构与内部原理解析(数据存储、watch机制、监听器、选举机制)中有详细介绍分布式协调框架Zookeeper的相关组件和原理,本文结合Zookeeper当中的监听器再来进一步介绍HDFS的HA方案。一、ZooKeeper监听器关于ZooKeeper监听器有三个重要的逻辑: 注册:客户端向ZooKeeper集群注册监听器 监听事件:监听器负责监听.

2020-08-11 15:16:18 2897

原创 Hadoop中的计数器(累加器)

1、什么是计数器?计数器是收集作业统计信息的有效手段之一,用于质量控制或应用级统计。计数器还可辅助诊断系统故障。如果需要将日志信息传输到map 或reduce 任务, 更好的方法通常是看能否用一个计数器值来记录某一特定事件的发生。对于大型分布式作业而言,使用计数器更为方便。除了因为获取计数器值比输出日志更方便,还有根据计数器值统计特定事件的发生次数要比分析一堆日志文件容易得多。2、Hadoop内置计数器列表MapReduce任务计数器 org.apache.hadoop.mapreduce

2020-08-10 17:32:52 1127

原创 Hadoop中的文件压缩和压缩算法配置详解

在MapReduce的Shuffle阶段,可以看到数据通过大量的拷贝,从map阶段输出的数据,都要通过网络拷贝,发送到reduce阶段,这一过程中,涉及到大量的网络IO,如果数据能够进行压缩,那么数据的发送量就会少得多,那么如何配置hadoop的文件压缩呢,以及hadoop当中的文件压缩支持哪些压缩算法呢?1、hadoop当中支持的压缩算法文件压缩有两大好处,节约磁盘空间,加速数据在网络和磁盘上的传输前面我们的hadoop的版本经过我们重新编译之后,我们可以看到我们的hadoop已经支持所有的压

2020-08-10 17:19:43 824

原创 Hadoop中的序列化和反序列化

什么是序列化和反序列化?序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。Hadoop中的序列化和Java中的序列化有什么不同?Java 的序列化(Serializable)是一个重量级序列化框架,一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系…),不便于在网络中高效传输;所以,hadoop 自己开发了一套序列化机制(.

2020-08-10 16:59:07 1073

原创 一文搞定MapReduce中的自定义InputFormat、自定义分区、自定义排序、自定义Combine、自定义分组、自定义OutputFormat

目录一、自定义InputFormat二、自定义分区三、自定义排序四、自定义Combine五、自定义分组六、自定义OutputFormat一、自定义InputFormatmapreduce框架当中已经给我们提供了很多的文件输入类,用于处理文件数据的输入,如下图所示:当然,如果内部提供的文件数据类还不够用的话,我们也可以通过自定义InputFormat来实现文件数据的输入。案例实操1、需求现在有大量的小文件,我们通过自定义InputFormat实现将小文件全部

2020-08-10 16:01:21 548 1

原创 关于idea经常出现下载不了jar包的问题(这次总算找到办法了)

记得之前有一次在使用CDH版本Hadoop的过程中,采用IDEA编程时有几个jar包死活下载不下来。原因:由于cdh版本的所有的软件涉及==版权==的问题,所以并没有将所有的jar包托管到maven仓库当中去,而是托管在了CDH自己的服务器上面,所以我们默认去maven的仓库下载不到,需要自己手动的添加repository去CDH仓库进行下载。而我这里下载不下来,是因为一方面虽然已经在创建的Maven工程的pom.xml文件中配置了以下的CDH仓库地址: <repositori

2020-08-07 17:54:02 8121

空空如也

空空如也

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

TA关注的人

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