自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 MAVEN手动导包,解决依赖报错

1.定位问题定位缺失的jar包2.找到对应的jar包到网上找到对应的jar包,down下来可以参考一下几个网址https://mvnrepository.com/https://public.nexus.pentaho.org/3.导入jar包下载之后,cmd(win+R 输入cmd)格式进入该jar包目录下运行mvn install:install-file -Dfile=jar包的路径 -DgroupId=gruopId中的内容 -DartifactId=actifactId的内容

2021-08-30 09:54:12 667

原创 hive小文件过多问题解决

起因数据中台当前有一张流水类表,存在3200个分区,230w个数据文件,150亿条数据,导致该表查询起来及其麻烦,更令人糟心的是,业务人员不懂查询方式,经常有人使用select *的方式查询该表,导致hiveserver2经常炸掉,极大影响集群的使用,因此,我们决定处理掉这个问题。我们来看下是什么原因导致这个问题首先,文件数量和大小会影响Mapper任务的数量,所以小文件越多,mapper任务越多,每个mapper任务会启动一个JVM,所以这些任务初始化和运行会消耗大量资源。而且在NameNode中每

2021-01-18 21:06:40 1542 4

原创 hive整库迁移shell代码

最近在做集群迁移工作,旧生产平台的hive数仓需要迁移到新的平台,因此,需要将hive所有生产库的表都新建一份,手动传太麻烦,搞了个shell脚本读取,读取结果基本可用,就是每个DDL语句最后的location需要用notepadd++的正则匹配的方式干掉,算是个小瑕疵吧,代码如下: #!/bin/bash#填写库名DATABASE=$1#获取表名hive -e "use $DATABASE;show tables;" >> tableName.txt###############

2021-01-15 14:04:28 252

原创 Hive 查询结果和insert结果不一致问题排查

Hive 查询结果和insert结果不一致问题排查 1.起因​ 由于公司业务需要,在做近半年业务数据回补的时候,发现存在部分分区数据不符合业务需要,于是,很想当然的重跑脚本,结果发现该部分数据无法正确过滤; 2.问题描述​ 在对某张表进行操作的时候,发现where条件后面的 xx is not null 条件不能生效,即 我采用 select的方式能够得到正确的结果,但是,insert时产生的结果却不一致。 3.解决过程​ 在发现该问题后,首先觉得是is n...

2020-06-19 17:15:43 2979 7

原创 DataWorks之专有网络中的MongoDB数据源打通

DataWorks之专有网络中的MongoDB数据源打通问题:解决方案:执行步骤:1.说明2.添加服务器3.安装Agent并初始化4.配置数据源5.测试运行Q&A:参考链接:问题:根据业务需求,Dataworks需要接入专有网络下的MongoDB数据源,步骤较经典网络有所不同;解决方案:1.专有网络的MongoDB是不支持测试联通性的;2.VPC环境的需要添加连接串模式数据源类型...

2020-06-11 09:42:20 933

原创 对谓词下推的一点看法

谓词下推 1. 谓词下推概念谓词下推原本是一个关系型数据库中的词语,优化关系 SQL 查询的一项基本技术是,将外层查询块的 WHERE 子句中的谓词移入所包含的较低层查询块(例如视图),从而能够提早进行数据过滤以及有可能更好地利用索引。 2. Hive谓词下推(Predicate pushdown):Hive谓词下推这个词是从关系型数据库借鉴来的,即使对Hive对来说相当于谓词上推。谓词下推的基本思想:尽可能早的处理表达式(expressions),默认产生的执行计...

2020-06-11 09:28:30 1443

原创 安装redis出错 /bin/sh: cc: command not found

环境CentOS6.5Redis3.2.10过程在安装Redis时,发现报错原因是缺少gcc环境,导致编译出错,应该先安装好gcc环境,再进行编译[root@es02 redis-3.2.10]# yum install -y gcc-c++安装完成gcc环境后,再进行编译[root@es02 redis-3.2.10]# make居然还有问题经过网上各种查询,原来是之...

2019-05-02 17:49:42 2670 1

原创 mysql一些优化方案

1.合理使用索引  索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下:  ●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。  ●在频繁进行排序或分组(即进行groupby或orderby操作)的列上建立索引。  ●在条件...

2019-04-23 12:57:41 95

原创 使用非等值自连接实现类窗口排序函数

前言在使用Hive的时候,我们经常使用窗口函数来实现对查询内容的排序操作,其中经常使用Rank() OVER() ,DENSE_RANK() 等,但是,在mysql中,8.0以下版本并不支持窗口函数的使用,因此,为了实现类似的效果,我们可以使用非等值自连接(真的很实用)来进行查询。数据准备CREATE TABLE Products(name VARCHAR(16) PRIMARY KEY,...

2019-03-24 17:48:08 231 1

原创 reduce 如何知道要从哪台机器取得map输出?

map任务成功后,它们会使用心跳机制通知它们的application master。因此,对于指定作业,application master 知道map输出和主机位置之间的映射关系。reduce中的一个线程定期询问master以便于获取map输出主机的位置,直到获得所有输出位置。由于第一个reducer可能失败,因此主机并没有在第一个reducer检索到map输出时就立即从磁盘上删除它们。相反,...

2019-03-04 23:18:39 922

原创 详解MapReduce:shuffle过程

MapReduce确保每个Reducer的输入都是按键排序的,系统执行排序,将map输出作为输入传给Reducer的过程被称为shuffle。MAP端map函数开始产生输出时,并不是简单地将它写到磁盘上。这个过程更复杂,它利用缓冲的方式写到内存并出于效率的目的进行预排序。每个map任务都有一个环形缓冲区用于存储任务输出。在默认情况下,缓冲区的大小为100MB,这个值可以通过mapreduce...

2019-03-04 23:13:52 391

原创 yum安装mongodb报错

今天在尝试yum安装mongodb时,发现了问题:这是因为你以前用的是CENTOS现在是redhat 红帽的yum安装软件的时候要验证的看是不是红帽的软件,是红帽的软件可以安装不是就失败.因此,我们需要将gpgcheck=1改成gpgcheck=0即可。gpgcheck=1表示需要验证,0表示不需要验证。成功!...

2019-01-22 11:02:10 421

原创 KILL掉当前Hive任务

在运行hive任务时,第7个job任务启动后一直不动,感觉是除了问题于是准备kill掉hive任务使用hadoop job -list来列出当前hadoop正在执行的jobs然后使用hadoop job -kill job_1546932571227_0082来杀死该job任务,成功...

2019-01-10 22:48:48 9536

原创 解决错误:Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDODataStoreException: You have an error in your SQL syntax; check the manual that c...

2019-01-08 21:59:14 19910

原创 HiveQL优化

HiveQL优化根据网上的资料,简单的总结了一些HQL的优化方案。1.列裁剪Hive在读数据的时候,可以只读取查询中所需要用到的列,而忽略了其他列,例如,若有以下查询:SELECT name,age FROM stu WHERE grade = '一年级'在实施此项查询中,stu表有5列(name,age,gender,num,grade),Hive只读取查询逻辑中真正需要的三列...

2018-12-31 18:07:24 353

原创 简单总结了一下py基础函数部分

所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用函数的使用包含两个步骤:定义函数 —— 封装 独立的功能调用函数 —— 享受 封装 的成果函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用演练步骤新建 04_函数 项目复制之前完成的 乘法表 文件修改文件,增加函数定义 multiple_table():新建另...

2018-12-29 09:02:00 290

原创 解决问题:java.lang.NumberFormatException:For input string: "null"

今天中午,在做数据清洗的时候,发现了这个数据格式错误,几次更改还是报错,最后发现,这里的“null”,其实就是“null”字符串,而不是String中的空值null。因为这个数据是从mysql中传上来的,所以一直在看mysql中的数据,觉得是null,不是“null”,但是从mysql传到HDFS上时,它已经被转化成“null”了,所以,如果想要继续使用,就应该把判断条件改成判断字符串int...

2018-12-18 17:11:04 10102

原创 ES学习:ElasticSearch 6.2安装教程

环境:CentOS 7.xJDK 1.8ElasticSearch 5.2安装步骤:1.配置JDK1)使用tar -xvf 命令解压jdk压缩包2)配置环境变量在/etc/profile 中添加以下属性export JAVA_HOME=/usr/local/jdk1.8.0_101export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAV...

2018-12-16 16:53:17 787

原创 从浅入深带你了解MapReduce编程模型(MapReduce基础解析)

1.MapReduce概念MapReduce是一个分布式计算框架,它被设计用于并行计算海量数据。第一个提出该技术框架的是Google公司,而Google的灵感则来自于函数式编程语言,如LISP,Scheme,ML等。Map:过滤一些原始数据Reduce:处理这些数据,得到我们想要的结果当你向MapReduce框架提交一个计算作业时,它会首先把计算作业拆分成若干个Map任务,然后分配到不同的...

2018-12-02 22:19:00 1203

原创 简单教你写xsync和xcall的脚本

xsync配置xsync脚本基于rsync工具,rsync 远程同步工具,主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点,它只是拷贝文件不同的部分,因而减少了网络负担。rsync -rvl $pdir/$fname $user@hadoop$host:$pdir常用参数:-r, –recursive 对子目录以递归模式处理-R, –relative 使用相对路径信...

2018-11-27 22:29:20 1804 1

原创 Linux配置免密登录的一些事

SSH免密登录要进行免密登录,首先得得到密钥对ssh-keygen -t rsa进入 /.ssh 目录authorized_keys : 存放远程免密登录的公钥,通过这个文件记录所有公钥id_rsa: 生成的私钥id_rsa.pub: 生成的公钥通过 ssh-copy-id 方式,ssh-copy-id -i /.ssh/id_rsa.pub 目标主机之后就可...

2018-11-27 22:26:25 240

原创 关于Dstream的转化操作的详细解释

众所周知,在SparkCore中,RDD支持Transform和Action两种类型的算子操作,同样的,作为代表了一系列连续 RDD序列的DStream,同样也有相应的操作,如下图所示:在此,我着重讲一下Dstream的转化操作。DStream的转化操作可以分为无状态(stateless)和有状态(stateful)两种。无状态转化操作无状态的转化操作,就是把简单的RDD转化操作应用到...

2018-11-22 20:44:12 5485 2

原创 向HBASE传输数据时出现:java.io.IOException: 远程主机强迫关闭了一个现有的连接 错误

18/11/21 22:31:01 INFO ClientCnxn: Opening socket connection to server 192.168.85.133/192.168.85.133:2181. Will not attempt to authenticate using SASL (unknown error)18/11/21 22:31:01 INFO ClientCnxn...

2018-11-21 22:52:29 3684

原创 区分Scala中的class,Object,Trait

Class               在scala中,类名可以和对象名为同一个名字,该对象成为该类的伴生对象,类和伴生对象可以相互访问他们的私有属性,但是他们必须在同一个源文件中。类只会被编译,不能直接被执行,类的申明和主构造器在一起被申明,在一个类中,主构造器只有一个,所以必须在内部申明主构造器或者是其他申明主构造器的辅构造器,主构造器都会执行类定义中的所有语句。scala对每个字段都...

2018-11-16 22:45:34 375

原创 Scala的主构造器与从构造器

构造器 Scala中的构造器相较于Java比较特殊,分为两种:主构造器,从构造器。主构造器是和类中字段和方法的定义混合在一起的。在scala中,不需要像Java一样需要在类中定义一个与类名相同的方法来当作构造器。主构造器的参数列表写在类名的后面,而构造器的内容,则直接写在类定义里面,所以说,一个scala类中,除了方法和字段的定义以外的代码,全都是主...

2018-11-16 22:43:31 329

原创 Scala的Reduce方法

2018-11-16 22:41:13 1643

原创 Scala小记(一)

1.只要函数不是递归的,我们就不需要写返回值,但递归函数必须要写返回值2.for循环中 添加if守卫 加不加分号,意义不变3.val x@y=1 ===> x:Int =1 y:Int =1 ,别问为什么,不知道4.在使用val 定义数组的时候,如果没有赋初值,则需要用val a = new Array类型如果要给数组赋初值,则不需要用newval a = Array(...

2018-11-16 22:40:33 120

转载 Zmodem协议

Zmodem:无论有xshell还是secureCRT连接linux的时。默认都用一个zmodem可以帮助window和linux之间传输文件很方便和实用的工具。不过默认是无法使用的 需要安装lrzsz软件直接云安装就可以了 yum install lrzsz安装完之后,如果windows要给linux传文件。只需要点住文件,拖动到xshen窗口即可传输如果linux要给windo...

2018-11-16 22:32:19 2105

原创 Linux小记之ssh和scp

SSH免密登录ssh-keygen -t rsa进入 /.ssh 目录authorized_keys : 存放远程免密登录的公钥,通过这个文件记录所有公钥id_rsa: 生成的私钥id_rsa.pub: 生成的公钥通过 ssh-copy-id 方式,ssh-copy-id -i /.ssh/id_rsa.pub 目标主机之后就可以用 ssh 主机名/IP 远程登...

2018-11-16 22:31:32 161

原创 Spark SQL and DataFrame小记

一、Spark SQL1.易整合2.统一的数据访问方式3.兼容HIve4.标准的数据连接二、DataFrames定义:与RDD类似,DataFrame也是一个分布式数据容器,然而Dataframe更像传统数据库的二维表格,除了数据意外,还记录着数据的结构信息,即schema。同时,与HIve类似,DataFrame也支持嵌套数据类型(struct、array 和map)。从API的易...

2018-11-16 22:28:27 138

原创 Kafka小记(二)

一、Kafka分区和消费者的关系Kafka分区继承了一个接口,实现的是PartitionAssignor,这个接口下面有两个类,RoundRobinAssignor和RangeAssignor两种算法实现第一种轮循方法更优二、文件的存储机制存储机制图三、文件的传输机制传输机制图四、Spark Streaming简介DStream 是一个数据抽象在内部,一个DStream是...

2018-11-16 22:11:03 103

Spark01 基础解析

Spark01 基础解析

2018-11-23

GeoHash核心原理解析

GeoHash将二维的经纬度转换成字符串

2018-11-21

空空如也

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

TA关注的人

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