自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 资源 (1)
  • 收藏
  • 关注

原创 hadoop集群配置ssh免密登录的方法

SSH无密登录配置1)配置ssh(1)基本语法ssh另一台电脑的ip地址(2)ssh连接时出现Host key verification failed的解决方法[user1@hadoop102 ~]$ ssh hadoop103出现:The authenticity of host '192.168.1.103 (192.168.1.103)' can't be established.RSA key fingerprint is cf:1e:de:d7:d0:4c:2d:98:60:b

2020-11-15 13:11:52 649

原创 hive使用时,表格元数据中文出现乱码的情况解决方法

问题提出:hive的元数据保存在Mysql中,使用的是latin1编码方式,如果添加列名的解释为中文会造成乱码的问题.解决方法一:读取时将元数据库的metastore编码方法给为UTF-8,结果:会造成hive无法读取元数据的问题,不能影响到元数据其他字段的编码格式解决方法二:单独修改中文注释的字段,修改的sql如下:#修改字段注释字符集alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;

2020-10-30 18:55:57 585

原创 hive数仓中数据的终点站-可视化报表和即席查询

可视化报表-SupersetApache Superset是一个开源的、现代的、轻量级BI分析工具,能够对接多种数据源、拥有丰富的图标展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用。1.0Superset安装方法Superset是由Python语言编写的Web应用,要求Python3.6的环境。1.1 安装Minicondaconda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同Python版本的软件包及其依赖,并能够在不同的Python环境之间切换,Anaconda包括C

2020-10-24 08:14:08 1219

原创 hive在数仓ODS层到DWD层建模方法

数仓建模的原因:当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。二者的主要区别对比如下表所示。创建数仓主要完成OLAP的业务需求,将原始数据导入到ODS层之后,就需要将原

2020-10-22 15:57:53 5011

原创 hive在数仓项目中的表格设计

数仓基本机构如下:在对数仓的分层表格设计中,根据不同的业务需求会使用到不同表格写入方式:ODS 层1 特殊表(只导入一次)有些表格的内容通常不会进行进行变化,在数仓中采用特殊表的模式,只在数仓建造初始化的时候导入一次,之后不再进行内容导入:例如省份表和地区表 省份表(特殊)drop table if exists ods_base_province;create external table ods_base_province ( `id` bigint COMMENT '编号

2020-10-22 10:30:00 674

原创 hive中union出现的类型问题

错误信息:FAILED: SemanticException Schema of both sides of union should match: Column create_date is of type string on first table and type date on second table. Cannot tell the position of null AST.出现原因:使用日期函数进行计算时,结果数据为日期类型,不能与字符串直接进行union解决办法:使用格式化

2020-10-20 19:26:16 2210

原创 presto-cli 查询hive数据报错:Catalog ‘hive‘ does not exist

错误描述使用prsto-cli进行hive查询时,报错Catalog ‘hive‘ does not exist同时可视化界面无法查找到hive的catalog错误原因在presto/etc目录下,没有把hive.properties放入到catalog目录下

2020-10-08 11:03:51 2169 1

原创 解决一个使用DataGrip连接hive使用一段时间hiveserver2报oom错误的问题

报错日志:情景描述:使用hive版本 3.1.2使用一段查询语句之后,会卡在DataGrip的自动同步上面:问题解释:新版本的hive启动的时候,默认申请的jvm堆内存大小为256M,jvm堆内存申请的太小,导致后期开启本地模式,执行复杂的sql时经常会报错:java.lang.OutOfMemoryError: Java heap space,因此最好提前调整一下HADOOP_HEAPSIZE这个参数。解决方法:(1) 修改$HIVE_HOME/conf下的hive-env.sh.tem

2020-10-08 09:26:01 1467

原创 Hadoop高可用中NN连接不上JN的问题

自动故障转移配置好以后,然后使用start-dfs.sh群起脚本启动hdfs集群,有可能会遇到NameNode起来一会后,进程自动关闭的问题。查看NameNode日志,报错信息如下:2020-08-17 10:11:40,658 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: hadoop104/192.168.6.104:8485. Already tried 0 time(s); retry policy is RetryU

2020-09-23 14:40:35 839

原创 hadoop的NameNode故障处理

NameNode故障后,可以采用如下两种方法恢复数据。+1)将SecondaryNameNode中数据拷贝到NameNode存储数据的目录;(1)kill -9 NameNode进程(2)删除NameNode存储的数据(/opt/module/hadoop-3.1.3/data/tmp/dfs/name)[user1@hadoop102 hadoop-3.1.3]$ rm -rf /opt/module/hadoop-3.1.3/data/dfs/name/*(3)拷贝SecondaryName

2020-09-23 11:58:48 488

原创 IDEA添加代码模板避免重复代码的编写

在setting中点击Editor下的live templates:点击加号选择1:之后在上方输出模板指令,下方输入代码即可:

2020-09-22 18:25:42 143

原创 Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.4.6:compile (default) on project spar

scala代码打包是报错:Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.4.6:compile (default) on project spark_wordcount: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)查询网站说是版本错误,确认了一下版本没有错误.之后查看报错出现的

2020-09-21 20:19:41 1914

原创 SparkSubmit 进程无法使用kill -9 杀死的解决办法

在使用spark时,出现了SparkSubmit进程杀死的问题,原因是进程存在父进程.解决办法,杀死对应的父进程:此时输入kill -9 2284,之后:可以看到SparkSubmit 已经被杀死

2020-09-21 18:22:18 2287 1

原创 scala集合常用函数

基本属性和常用操作val list = List(23, 54, 68, 91, 15) val set = Set(1,2,3,4,5,6) // (1)获取集合长度 println(list.length) // (2)获取集合大小 println(list.size) println(set.size) // (3)循环遍历 for( elem <- list ) print(elem + "\t")

2020-09-18 18:39:12 157

原创 scala不同集合的常用方法

在操作集合的时候,不可变用符号,可变用方法不可变集合继承图:可变集合继承图:不可变数组// 1. 创建一个不可变数组 // 1) new val arr1: Array[Int] = new Array[Int](5) // 2) 用伴生对象的apply方法 val arr2: Array[Int] = Array(1,2,3,4,5) println("===========================") // 2. 访问数组中元素,做

2020-09-18 18:20:03 122

原创 大数据相关常用端口号整理

hadoop默认端口号 hadoop2.x hadoop3.x访问HDFS端口 50070 9870访问MR执行情况端口 8088 8088 历史服务器 19888 19888 客户端访问集群端口 9000 8020zookeeper默认端口号代码访问client的端口号: 2181leader和flower通信的端口号: 2888选举leader时通信的端口号: 3888其他服务与监控中心通信端口: 7070...

2020-09-09 20:45:37 916

原创 linux常用信息

vim编辑器一般模式:编辑模式:指令模式:vim的模式切换:修改网络配置(1)查看当前网络ip[root@hadoop100 桌面]# ifconfig(2) 查看IP配置文件[root@hadoop100 桌面]# vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet" #网络类型(通常是Ethemet)PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO=

2020-09-09 19:02:21 173

原创 linux找回root密码的一种方法

1)重启Linux,见到下图,通过键盘上下方向键选择第一个2)按e,出现如图5-9所示的界面3)定位到LANG=zh_CN.UTF-8,后面追加 init=/bin/sh, 如图5-10所示4)键盘ctrl+x进行引导启动,进入如下界面,如图5-11所示4) 挂载根目录 ,如图5-126) 选择要修改密码的用户名,passwd root, 然后输入两次一致的密码,依次回车。注意: 输入密码不显示,一定要确认输入正确.7) 更新系统信息 touch /.autorelabel ,如图

2020-09-09 19:00:00 159

原创 log4j2.xml 常用配置

<?xml version="1.0" encoding="UTF-8"?><Configuration status="error" strict="true" name="XMLConfig"> <Appenders> <!-- 类型名为Console,名称为必须属性 --> <Appender type="Console" name="STDOUT"> <!-- 布局为P

2020-09-08 18:24:39 239

原创 flume一个聚合的配置文件记录

flume1-logger-flume.conf# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1# Describe/configure the sourcea1.sources.r1.type = execa1.sources.r1.command = tail -F /opt/module/group.loga1.sources.r1.shell = /bin/bash -c.

2020-08-27 15:52:58 129

原创 flume一个负载均衡和故障转移的配置文件记录

Flume-1:flume-file-flume.conf:a1.sources = r1a1.channels = c1a1.sinks = k1 k2a1.sinkgroups = g1#配置sink processora1.sinkgroups.g1.processor.type = failover#配置sink优先级a1.sinkgroups.g1.processor.priority.k1 = 5a1.sinkgroups.g1.processor.priority.k2 .

2020-08-27 12:37:29 149

原创 flume一个复制和多路复用的配置文件记录

Flume-1:flume-file-flume.conf:a1.sources = r1a1.channels = c1 c2a1.sinks = k1 k2# 配置一个选择器为复制a1.sources.r1.selector.type = replicating#配置sourcesa1.sources.r1.type = execa1.sources.r1.command = tail -F /opt/module/hive/logs/hive.loga1.sources.r.

2020-08-27 11:50:14 203

原创 Flume常用组件配置记录

Flume基础架构1.1 AgentAgent是一个JVM进程,它以事件的形式将数据从源头送至目的。Agent主要有3个部分组成,Source、Channel、Sink。官网示例的配置:Source 使用了netcat,sink使用了 logger,channel 使用 memory。# example.conf: A single-node Flume configuration# Name the components on this agenta1.sources = r1a1.s

2020-08-26 08:14:48 205

原创 Hive 常用指令记录

一、Hive基本概念1.1 hive是什么hive是基于hadoop的一个数仓分析工具,hive可以将hdfs上存储的结构化的数据,映射成一张表,然后让用户写HQL(类SQL)来分析数据 tel up down1383838438 1345 15671383838439 5345 15671383838440 1241 165771383838441

2020-08-24 18:35:48 349

原创 Hive自定义UDF 函数,以自定义函数 my_len (将传入基本数据类型的参数转化为字符串,输出字符串的长度)

Hive中需要根据需求自定义UDF函数,以自定义函数 my_len (将传入基本数据类型的参数转化为字符串,输出字符串的长度)hive(default)> select my_len("abcd");41)创建一个Maven工程Hive2)导入依赖<dependencies> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec

2020-08-21 21:29:14 592

原创 MapReduce常用优化方法

MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。1.数据输入输入大量的小文件会造成性能变差。解决方法:1)采用CombineTextInputFormat作为输入格式化,将小文件整合成大文件;2)在进行程序之后,先跑一次MapReduce将文件整合成一个文件3)打开jvm复用模式也能提高处理小文件的性能。2.Map阶段优化1)减少溢写(spill)次数:通过调整mapreduce.task.io.sort.mb及ma

2020-08-21 18:48:44 549

原创 Zookeeper监听器原理和选举机制

Stat结构体的组成: (1)czxid-创建节点的事务zxid 每次修改ZooKeeper状态都会收到一个zxid形式的时间戳,也就是ZooKeeper事务ID。 事务ID是ZooKeeper中所有修改总的次序。每个修改都有唯一的zxid,如果zxid1小于zxid2,那么zxid1在zxid2之前发生。 (2)ctime - znode被创建的毫秒数(从1970年开始) (3)mzxid - znode最后更新的事务zxid (4)mtime - znode最后修改的毫秒数(从1970年开始

2020-08-17 19:31:18 240

原创 CentOS7.5离线安装MySql5.7

卸载冲突1)检查当前系统是否安装过Mysql[user1@hadoop102 ~]$ rpm -qa|grep mariadbmariadb-libs-5.5.56-2.el7.x86_64 //如果存在通过如下命令卸载[user1@hadoop102 ~]$ sudo rpm -e --nodeps mariadb-libs //用此命令卸载mariadb2)将MySQL安装包拷贝到/opt/software目录下包名mysql-5.7.28-1.el7.x86_64.rpm-bun

2020-08-17 18:33:25 262

原创 hadoop中使用到的压缩配置信息

五种压缩格式对应的编码器DEFLATE : org.apache.hadoop.io.compress.DefaultCodecgzip : org.apache.hadoop.io.compress.GzipCodecbzip2 : org.apache.hadoop.io.compress.BZip2CodecLZO : com.hadoop.compression.lzo.LzopCodecSnappy : org.apache.hadoop.io.compress.SnappyCode

2020-08-14 20:16:54 187

原创 yarn添加多队列容量调度器的配置文件

查找hadoop安装目录下的etc/hadoop/capacity-scheduler.xml文件,修改如下配置<!-- 指定多队列,增加hive队列 --><property> <name>yarn.scheduler.capacity.root.queues</name> <value>default,hive</value> <description> The queues at

2020-08-14 20:06:09 436

原创 hadoop原理记录-MapReduce

MapReduce概述MapReduce是一个分布式运算程序的编程框架,MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。MapReduce优缺点优点1)MapReduce 易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。也就是说你写一个分布式程序,跟写一个简单的串行程序是一模一样的。就是因为这个特点使得MapReduce编程变得非常流行。2)良好的扩展性

2020-08-13 10:48:40 401

原创 hadoop原理记录-HDFS读写数据

HDFS读数据流程1.客户端请求下载文件客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。2.返回目标文件的元数据挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。3.客户端请求读数据block1DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。4.传输数据客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。H

2020-08-12 20:19:12 130

原创 错误记录:java.lang.Exception: Method isAll should have no parameters

进行模块测试时报错:java.lang.Exception: Method isAll should have no parameters.原因:在使用junit进行模块测试时,需要使用内部的其他方法,错误的将@Test注解添加到不需要运行的方法上,去掉isAll上的注解之后解决。...

2020-08-07 20:01:15 869

原创 Mysql基础学习笔记:常用指令

常用命令1、进入 mysql, 在命令行中输入: mysql –uroot –p#### (其中:####表示密码)2、查看 mysql 中有哪些个数据库: show databases; (2)3、使用一个数据库: use 数据库名称; (3. atguigu)4、新建一个数据库: create database 数据库名 (1. atguigu)5、查看指定的数据库中有哪些数据表: show tables; (4, 6, 9)6、建表:7、查看表的结构:desc 表名 (7)8、丢弃

2020-07-26 21:33:08 121

原创 Java基础学习笔记:第十二章 反射的使用

1 反射的理解反射的概述java给我们提供了一套api(java.lang.reflect),程序员可以使用这套api实现:动态的获取内存中的运行时类;动态的创建运行时类的对象;动态的调用运行时类中的指定结构:属性、方法反射的应用Java反射机制提供的功能:在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具有的成员变量和方法在运行时获取泛型信息在运行时调用任意一个对象的成员变量和方法在运行时处理注解生成动态代理相关apijava.la

2020-07-23 10:19:54 236

原创 Java基础学习笔记:第十一章(下) 线程与进程

基于同步机制的延展问题1 死锁/** 线程的同步机制带来的问题:死锁* *1. 不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁* *2. 出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续* *3. 我们在编程程序时,要避免出现死锁!!* */public class DeadLockTest { public static void main(String[] args) { St

2020-07-22 21:15:51 93

原创 Java基础学习笔记:第十一章(上) 线程与进程

程序、进程、线程程序:(program)是为完成特定任务、用某种语言编写的一组指令的集合。一段静态代码的集合。如下的每一个红框都可以理解为一个程序进程:(process)是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程。如下的每一个都是一个进程线程:(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。如下的每一个红框都是一个线程:进程和线程的说明:一、进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域二、线程作为调度和执行的

2020-07-22 20:48:19 156

原创 Java基础学习笔记:第十章 IO流

Java IO原理IO流用来处理设备之间的数据传输。Java程序中,对于数据的输入/输出操作以”流(stream)” 的方式进行。是指从源节点到目标节点的数据流动源节点和目标节点可以是文件、网络、内存、键盘、显示器等等。java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。流的分类按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)按数据流的流向不同分为:输入流,输出流读文件步骤无论是文本文件还是二进制文件,当需要读取文件数

2020-07-20 21:05:44 252

原创 Java基础学习笔记:第九章 泛型

为什么要有泛型(Generic)?解决元素存储的安全性问题解决获取数据元素时,需要类型强转的问题泛型,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化时只要指定好需要的具体的类型即可。Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁、健壮。使用泛型1.泛型的声明 interface List<T

2020-07-20 20:27:32 220

原创 Java基础学习笔记:第八章 Java集合

Java 集合概述Java 集合可分为 Collection 和 Map 两种体系Collection接口:表示不按添加顺序存放对象的集合,集合内元素可以重复,即“无序可重复”集合Set:元素无序、不可重复的集合 ---类似高中的“集合”List:元素有序,可重复的集合 ---”动态”数组Map接口:具有映射关系“key-value对”的集合Collection 接口Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集

2020-07-20 20:05:25 140

renren-fast-vue前端代码.zip

之后对该页面功能的实现,只编写后端部分,按照给出的接口文档进行编写。前端资源直接下载放入renren-fast-vue中即可

2020-06-04

空空如也

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

TA关注的人

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