- 博客(78)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 什么是数据仓库总线架构
数据仓库总线的主要目标是将复杂的数据仓库分析过程分解为各个可管理的组件,并且在这些组件之间形成良好的协作和交互,使得整个数据仓库的架构更加灵活、可扩展和易于维护。总线的主要功能是将各个组件连接起来,形成一个单一的、共享的数据传输媒介,使得各个组件互联互通,从而实现系统级别的数据共享和通信。因此,数据仓库总线的名称来源于计算机总线这一基本概念,强调了数据仓库中不同部分之间的交互、协作和共享性,旨在为数据仓库的设计和实现提供一个可扩展、开放的架构。
2023-04-25 14:08:14 350
原创 MPP与MR计算方式的区别
MPP系统通常由成百上千个节点(节点指的是一组处理器和存储器)组成,每个节点都运行数据库的一个实例,各个节点之间通过高速网络互相通信,MPP系统会将数据表分片(通过切割表中的行),这些数据片会被分配到每个节点上,每个节点都有独立的存储器。MPP系统的平行计算方式是将数据库划分为若干个子部分,设定若干个可供并行计算的操作,每个操作运行在一个节点上,从而并行地进行处理,由于MPP的数据是在不同节点分片存储,因此一般来说MPP的计算任务每一部分是和固定节点绑定的。
2023-04-23 14:34:54 414
原创 剑指 Offer 38. 字符串的排列 Scala解法
本人scala新手,在写dfs这个方法时开始不写返回值的时候一直报错,无奈随便返回了一个值,希望有大佬能告诉我下在不需要返回值的时候这里应该怎么处理?解题思路参考:剑指 Offer 38. 字符串的排列(回溯法,清晰图解)object Solution { def permutation(s: String): Array[String] = { var res = new scala.collection.mutable.ArrayBuffer[String]
2021-06-22 23:18:01 228 2
原创 从零开始搭建个人大数据集群(5)——HBASE安装
从零开始搭建个人大数据集群——环境准备篇从零开始搭建个人大数据集群(1)——zookeeper从零开始搭建个人大数据集群(2)——HDFS 从零开始搭建个人大数据集群(3)——YARN从零开始搭建个人大数据集群(4)——HIVE安装前的准备1.安装好zookeeper和hadoop2.准备好hbase-2.3.5-bin.tar.gz解压安装包cd /opt/packagestar -zxf hbase-2.3.5-bin.tar.gz -C ../appsln -s hbase-2
2021-06-08 22:13:37 632 4
原创 从零开始搭建个人大数据集群(6)——SPARK安装
从零开始搭建个人大数据集群——环境准备篇从零开始搭建个人大数据集群(1)——zookeeper从零开始搭建个人大数据集群(2)——HDFS 从零开始搭建个人大数据集群(3)——YARN从零开始搭建个人大数据集群(4)——HIVE从零开始搭建个人大数据集群(5)——HBASE安装前的准备1.安装好zookeeper和hadoop2.准备好spark-2.4.8-bin-hadoop2.7.tgz解压安装包cd /opt/packagestar -zxf spark-2.4.8-bin-h
2021-06-08 22:12:44 288 1
原创 从零开始搭建个人大数据集群(7)——KAFKA安装
从零开始搭建个人大数据集群——环境准备篇从零开始搭建个人大数据集群(1)——zookeeper从零开始搭建个人大数据集群(2)——HDFS 从零开始搭建个人大数据集群(3)——YARN从零开始搭建个人大数据集群(4)——HIVE从零开始搭建个人大数据集群(5)——HBASE从零开始搭建个人大数据集群(6)——SPARK安装前的准备1.安装好zookeeper2.准备好kafka_2.12-2.6.2.tgz解压安装包cd /opt/packagestar -zxf kafka_2.1
2021-06-08 22:11:58 159
原创 从零开始搭建个人大数据集群(9)——KAFKA管理工具安装(cmak)
从零开始搭建个人大数据集群——环境准备篇从零开始搭建个人大数据集群(1)——zookeeper从零开始搭建个人大数据集群(2)——HDFS 从零开始搭建个人大数据集群(3)——YARN从零开始搭建个人大数据集群(4)——HIVE从零开始搭建个人大数据集群(5)——HBASE从零开始搭建个人大数据集群(6)——SPARK从零开始搭建个人大数据集群(7)——KAFKA之前安装过另一个kafka可视化管理工具kafka-eagle,那个界面做的很漂亮,功能也很强大,但确实不适合在虚拟机上启动,内存
2021-06-08 22:11:16 278
原创 从零开始搭建个人大数据集群(1)——zookeeper安装
从零开始搭建个人大数据集群——环境准备篇我准备搭建的是高可用集群,所以要先安装zookeeper环境准备1.由于zookeeper的选举机制是leader选举,要求 可用节点数量 > 总节点数量/2 。注意 是 > , 不是 ≥。所以需要用三台虚拟机来装,当然内存足够任性的话选五台也不是不行,我这里就用三台,主机名分别为hd1,hd2,hd32.准备好安装包我选用的版本是apache-zookeeper-3.5.9-bin.tar.gz,下载链接:https://mirrors.tu
2021-06-08 22:08:28 300
原创 从零开始搭建个人大数据集群——环境准备篇
1.至少准备三台虚拟机(我用五台)并按如下文章做好配置服务器配置NTP时钟同步我是用hadoop用户来安装集群,如果用root用户的话可以不用管这一步Linux/CentOS 配置普通用户配置免密切换root2.所有虚拟机之间配置免密登录3.准备好存放安装包及安装软件的目录,以及存放数据的目录我存放软件包的位置是/opt/packages,安装目录是/opt/apps数据目录是/data 且/data目录的权限要设置为755,权限太大的话安装HDFS的时候会报错4.下载好各个软件包推荐在清
2021-06-08 22:07:31 517
原创 CentOS/RHEL 7.6通过RPM升级OpenSSL1.1.1k和OpenSSH 8.5p1
升级期望:解决服务器上的以下漏洞:SSL/TLS协议信息泄露漏洞(CVE-2016-2183)OpenSSH 用户枚举漏洞(CVE-2018-15919)OpenSSH 安全漏洞(CVE-2017-15906)OpenSSH 用户枚举漏洞(CVE-2018-15473) OpenSSH 命令注入漏洞(CVE-2020-15778)升级前系统环境:CentOS 7.6及RHEL 7.6openssl 1.0.2kopenssh 7.4升级后系统环境:openssl 1.1.1k.
2021-04-17 16:48:45 2025
转载 Oracle查看所有表空间的数据使用情况
SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')
2021-03-17 09:46:48 432
原创 Linux下MySQL主从架构版本升级(5.7.31->5.7.33)——冷升级
目录前言下载并上传MySQL停应用升级从库停止备份停止从MySQL继承旧版本的配置启动并升级从MySQL登录并验证slave关闭slave升级主库查看master状态修改从库配置升级成功前言做的项目上线之前做漏洞扫描,发现MySQL5.7.31有漏洞,要升级到最新版本,查了下当前最新的是5.7.33,因为是主从结构的,没有这类升级经验,就在网上找了很多帖子,清一色都是先升级从再升级主,最终切换了主从,分析之后发现这种升级方式主要是考虑到升级期间MySQL会写入数据,而我们是可以把往MySQL写数据的应用
2021-03-04 22:44:23 2116 1
原创 Linux部署MySQL主从/主备(5.7.31版本)
目录一、部署前准备1.开放3306端口或直接关闭防火墙①查看防火墙状态②开放3306端口③重新加载防火墙规则④查看已开放端口下载并上传MySQL安装包到服务器创建MySQL安装目录并解压添加MySQL用户和组二、开始部署部署主MySQL创建my.cnf文件一、部署前准备1.开放3306端口或直接关闭防火墙因为MySQL主从之间需要通信,所以必须开放各自的端口,默认情况下是3306端口①查看防火墙状态firewall-cmd --state②开放3306端口firewall-cmd --zone
2021-03-04 21:56:22 2385 4
原创 Linux多服务器文件批量同步脚本
目录安装rsync配置ips编写同步shell脚本使用方式安装rsyncyum install rsync -y配置ipsips文件内写入需要同步文件的服务器ip我装了三台Linux:node1,node2,node3,并在/etc/hosts文件中配置了IP映射,所以在ips文件中只需要写主机名就OK,各位看官不配置映射的话直接填IP地址也可这是我node1上的ips:node2node3编写同步shell脚本脚本中有一个ips变量,后面填上您存放ips的目录此shell脚本建议存
2021-03-01 22:10:31 644
原创 AIX7.2系统安装openssh7.5
目录前言备份当前版本的ssh文件创建openssh安装包目录进入目录解压开始安装前言最开始对服务器做过一次安全检查,查出openssh的scp存在高危漏洞,于是就把包含scp服务的openssh-client卸载了,后来再做安全检查的时候又查出AIX上安装的Oracle有高危漏洞需要打补丁,但是Oracle打补丁的时候会调用scp……于是在开始在网上搜怎么装,但国内能搜到的AIX相关文章都太老了,无奈之下去看了IBM官方的英文文档解决了这个问题参考文档:https://www.ibm.com/supp
2021-03-01 13:14:09 1378 5
原创 Oracle通过存储过程解析CLOB中的XML
目录仅解析XML中某个标签中的值解析XML并将值插入表中格式化日期解析XML取标签值存储过程实现插入执行仅解析XML中某个标签中的值-- Created on 2020-12-23 by 20161 declare -- Local variables here --创建xml解析器实例xmlparser.Parser xmlPar xmlparser.Parser := xmlparser.newParser; --定义DOM文档 xDoc
2020-12-23 18:05:20 1454
转载 MySQL数据同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法
Slave_SQL_Running:nostop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; start slave; show slave status\G slave_io_running:no解决方法一如果用的是虚拟机
2020-12-19 15:55:03 271 4
原创 JVM内存划分详解
本文摘抄自《深入理解Java虚拟机:JVM高级特性与最佳实践》目录程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池方法区和堆是由所有线程共享的数据区虚拟机栈、本地方法栈、程序计数器是线程隔离的数据区程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型中,字节码解释器工作时就是通过改变这个计数器的值来选择需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要这个计数器来完成。由于Java虚拟机的多线程是通过
2020-08-08 21:05:24 335
原创 Java单例模式的5种实现
这里写目录标题只适用于单线程的单例懒汉式饿汉式加同步锁使上一单例满足多线程加同步锁前后两次判断实例是否存在用静态内部类用枚举只适用于单线程的单例懒汉式把构造函数设为私有来禁止其他类创建实例,定义一个静态的Instance只在为空时创建实例,其他类通过public 的getInstance方法来获取这个唯一的实例public class Singleton1 { private static Singleton1 instance = null; private Singleton1(
2020-07-22 20:21:15 122
原创 python 从redis取出大量数据分段写入mysql(解决mysql报错OperationalError: (2006, ‘MySQL server has gone away)
本例为从redis数据库中根据keys取出values,再将values中的数据分割成多个字段后存入MySQL# 根据key模糊查询从redis中取出所有匹配的key,假设keys有上万吧,也可以更大keys = redis_util.get_conn().keys('down:*')# 定义两个指针,用来对keys列表切片start = 0end = 0while True: # 每次写入500条数据 end += 500 # 根据切片后的keys获取redis中的value valu
2020-07-10 21:25:06 487
原创 Python Linux中用火狐无头浏览器爬取网页内容
需要的包:pip install seleniumpip install lxmlpip install bs4本来一开始想用谷歌无头浏览器的,结果运行的时候一堆bug,换成火狐之后一下子就好了安装firefox:yum install firefox驱动下载地址https://github.com/mozilla/geckodriver解压后我放在了/usr/bin下,同时为其添加可执行属性from selenium import webdriverfrom bs4 im
2020-07-10 15:06:57 998
原创 Python Windows下用无头浏览器爬取网页内容(火狐+谷歌)
我个人比较推荐用火狐,因为谷歌在Linux下不好用,初始化的时候bug太多了
2020-07-08 22:39:18 1247
原创 Python异常:ImportError: cannot import name ‘XXX‘解决
1、路径问题2、命名问题3、交叉import :a,b两个python文件,在a中import b中的类,又在b中import a中的类,就会报这种异常。所以写的时候不要图省事把类都写一起
2020-07-03 10:58:59 24022 2
原创 HVE 用户自定义函数UDF实例
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;import org.apache.hadoop.hive.ql.exec.UDFArgumentException;import org.apache.hadoop.h
2020-06-20 11:53:52 381
原创 HIVE 用户自定义函数UDTF实例(实现一行数据的分割带注释)
import java.util.ArrayList;import java.util.List;import org.apache.hadoop.hive.ql.exec.UDFArgumentException;import org.apache.hadoop.hive.ql.metadata.HiveException;import org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;import org.apache.hadoop.hive
2020-06-20 11:47:41 433
原创 HIVE 用户自定义函数UDAF实例(整合SUM+AVG带注释)
import java.text.DecimalFormat;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.hive.ql.exec.UDFArgumentException;import org.apache.hadoop.hive.ql.metadata.HiveException;import org.apache.hadoop.hive.ql.parse.SemanticExceptio
2020-06-20 11:42:21 606
原创 Linux 压缩软件操作
目录tar 命令zip 命令unzip 命令tar 命令tar命令作用:打包:将一大堆文件或目录变成一个总的文件【tar命令】压缩:将一个大的文件通过一些压缩算法变成一个小文件【gzip,bzip2等】Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。tar 命令格式:tar [必要参数] [选项参数] 文档名常用必要参数:-c 建立新的压缩文件
2020-06-19 15:56:13 2389
原创 Hive 分区表导入数据与动态分区
Hive默认是 静态分区,我们在插入数据的时候要手动设置分区,如果源数据量很大的时候,那么针对一个分区就要写一个insert,比如说,有很多我们日志数据,我们要按日期作为分区字段,在插入数据的时候手动去添加分区,那样太麻烦。因此,Hive提供了动态分区,动态分区简化了我们插入数据时的繁琐操作。--设置参数动态分区--开启动态分区set hive.exec.dynamic.partition=true; --这个属性默认是strict,即限制模式,strict是避免全分区字段是动态的,必须至少
2020-06-17 21:52:58 1235
原创 hive Group操作
目录GROUPING SETS使用grouping sets加上if,case用法with cube 是group by中所有key的组合 非常多with rollup是 按右侧递减的顺序组合GROUPING SETS使用grouping sets是一种将多个group by 逻辑写在一个sql语句中的便利写法。--GROUP BY a, b 设置分组字段--GROUPING SETS ((a,b)) 分组方式SELECT a, b, SUM(c) FROM tab1 GROUP BY a, b
2020-05-31 23:48:55 908
原创 hive 表连接
目录两表join等值连接:inner join外连接:left join 、right join实现非等值连接多表join三表inner join计算新增用户计算每个国家记录数的百分比新建字典表用于join要避免的查询操作full outer joinunion的使用map端的joinHive Joinhive只支持等值连接,外连接。hive不支持非相等的join条件(通过其他方式实现,如left outer join),因为它很难在map/reduce job实现这样的条件。hive可以join两
2020-05-31 23:11:38 1461
原创 hive 桶表的使用
对于每一个表或者分区来说,可以进一步组织成 桶 ,其实就是更细粒度的数据范围。Bucket是对指定列进行 hash,然后根据hash值除以桶的个数进行求余,决定该条记录存放在哪个桶中。公式:whichBucket = hash(columnValue) % numberOfBuckets公式:要往哪个桶存 = hash(列值) % 桶的数量hive桶表最大限度的保证了每个桶中的文件中的数据量大致相同,不会造成数据倾斜。但说是不会造成数据倾斜,但这是在业务无关的情况下,只要有真实业务在,肯定会发生数
2020-05-31 17:07:20 317
原创 hive 创建分区表
创建分区表的好处是查询时,不用全表扫描,查询时只要指定分区,就可查询分区下面的数据。分区表可以是内部表,也可以是外部表。建表格式CREATE [EXTERNAL] TABLE par_test(col_name data_type …)COMMENT ‘This is the par_test table’ 说明性文字PARTITIONED BY(day STRING, hour STRING) 指定分区[ROW FORMAT DELIMITED FIELDS TERMINATE
2020-05-31 15:59:51 1063
原创 Hive 数据的导入与导出
目录数据导入load 加载数据**将hdfs中的文件load到表中****将本地文件load到表中**select加载数据动态分区**设置动态分区参数****创建原始表和分区表****开启自动分区****查询数据动态插入student_dyna表****查看分区目录:**数据导出将数据写入文件系统**将数据写入一个文件****将数据写入多个文件****从一张表中导出两个文件到不同的路径**、**通过hive -e 命令导出****hive -f sqlfile 大规模SQL**数据导入load 加载数据
2020-05-31 12:41:45 1013
原创 MapReduce编程之内连接
样例数据:1 北京2 天津3 河北4 山西5 内蒙古6 辽宁7 吉林8 黑龙江1 2010 19621 2011 20192 2010 12992 2011 13554 2010 35744 2011 35939 2010 23039 2011 2347现在我们需要做的事情是将这两份数据 进行 内连接查询 ,得到下面的结果集:1 北京 2011 20191 北京 2010 19622 天津 2
2020-05-24 14:23:30 906
原创 MapReduce编程之排重
利用reducer的输入key是已经排重过的先天特性可以进行数据的排重想对什么排重,就把它放到map的输出key上。对单词进行排重样例数据王小花 孙建国 王小花 王小花 孙建国 王小花 王小花 赵文明 赵文明 赵文明 李建军 赵文明 孙建国 王小花 王小花 李建军 李建军 王小花 赵文明 赵文明 孙建国 孙建国 李建军 李建军 王小花 王小花 孙建国 赵文明 孙建国 王小花 孙建国 孙建国 王小花 王小花 孙建国 赵文明 李建军 李建军 孙建国 王小花 赵文明 赵文明 李建军 孙建国 李建军
2020-05-24 10:38:37 178
原创 Linux Shell学习笔记(二)变量和运算符
目录变量使用位置变量使用数组的使用数组的定义数组的使用运算符的使用算数运算符比较运算符变量使用说明变量的定义与使用规则:1)变量名首字符必须为字母,名字只能用字母、数字、下滑线,不要用bash关键字。非法的名字:8var、var-82)变量定义或赋值时,变量名与值之间用等号连接:变量名=值,等号两边不能有空格,值中有空格或特殊字符需要用双引号或单引号引起来。3)使用 $变量名 或 ${变量名} 形式获取变量值sh -x sh2.sh选项参数:-n :不要执行 script,仅查询语法
2020-05-10 22:05:19 424
原创 Linux Shell学习笔记(一)shell的编写与执行
目录echo命令编写shell程序shell多命令执行;&&逻辑与||逻辑或echo命令echo是用于终端打印的最基本命令默认情况下 echo在每次调用后会添加一个换行符命令格式:echo [选项] [输出内容]选项:-e:支持反斜线控制的字符转换(见下表)-n:取消输出后 行末的换行符号(内容输出后不换行)echo输出时输出内容可以使用双引号 单引号 或者不用引号当字符串中包含特殊字符时双引号会解释特殊字符,单引号不会解释如 当字符串中有!号:[root
2020-05-10 13:26:31 372
原创 Linux 目录与文件操作
这里写目录标题创建目录 `mkdir`创建文件 `touch`移动和重命名文件复制文件 `cp`删除文件 `rm`改变文档所有权、文档权限改变文档的所有权:`chown(change own)`改变文件的所属组:`chgrp`改变文档权限 `chmod`符号类型改变文档权限数字类型改变档案权限创建目录 mkdirlinux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录...
2020-05-04 18:39:31 445
有没有大佬能帮我把注解形式的Mybatis代码换成XML形式的?
2020-02-25
使用单链表实现截取子串,输出原字符串时第一个字符没有输出是怎么回事?求 解答
2017-10-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人