大数据
文章平均质量分 57
从基础开始,从0到1的入门技术
不言尘世
全栈java学习
展开
-
hive常用命令总结(亲测有效)
气死,这是第二遍总结了,第一遍刚总结完,就被臭宝给直接退出了,无语,再来一次。首先简单的说一下hive是个什么东西,能用来在做什么。hive其实就是一个数据库,在大数据时代,常用来构建数据仓库。简称数仓,当然,我以前也做过数据仓库的项目,但是都是用oracle来写的。既然是数据库,那么也离不开sql,hive中的sql又叫hql,所以排除API编写和底层原理的话,学习起来的学习成本不是很高。那么就再总结一次hive常用命令吧,之余hive的性能调优,之前也写了一部分,有兴趣的伙伴可以去瞅瞅哈。就从最简单原创 2021-05-31 23:07:26 · 2458 阅读 · 0 评论 -
hive性能调优(亲测有效)
今天总结一下有关hive的性能调优,一下测试在本地环境,单节点模式(非高可用)进行测试,影响因素也可能和个人电脑配置有关,但是经过一系列配置,性能还是提升了不少。 关于hive调优,首先要对hive运行原理有了解。通晓原理,从根本进行调优。 hive的基本运行原理:HQL——> Job——> Map/Reduce。 通过以上基本原理,我们可以从以下三个方面进行调优,HQL语句调优,job任务调优,map/reduce阶段调优。重点说一下job和map/reduce优化。1 JOB优化.原创 2021-05-10 22:03:23 · 1671 阅读 · 0 评论 -
oracle 从一个用户数据拷贝到另一个用户中
1、登录scott用户。2、给baisystem用户赋予查询emp表的权限:grant select on emp to system;3、登录system用户。4、执行以下语句:creat table emp as select * from scott.emp;亲测有效哦原创 2020-07-31 15:48:54 · 1458 阅读 · 0 评论 -
Cognos Framework manager 配置oracle数据源失败UDA-SQL-0532
最近在做BI Cognos报表系统,装了一下这个环境,不是很顺利,遇到了很多问题,今天来总结一下:第一个问题:因为Cognos 只支持32位的Oracle客户端,所以将64位的Oracle客户端换成32位的第二个问题:当换成32位的Oracle客户端时,报错如下:将Oracle客户端的tnsnames.oRA文件添加如下配置:最好将服务器端的相同文件默认配置即可。之前我也配过服务器端的tnsnames.oRA文件。但是还是失败的。以上就是我装Cognos遇到的问题,希望有用...原创 2020-07-12 22:35:15 · 738 阅读 · 0 评论 -
spark submit参数调优
在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致...转载 2020-06-20 20:09:14 · 244 阅读 · 0 评论 -
mapreduce的工作流程
MapReduce 就是将输入进行分片,交给不同的 Map 任务进行处理,然后由 Reduce 任务合并成最终的解。MapReduce 的实际处理过程可以分解为 Input、Map、Sort、Combine、Partition、Reduce、Output 等阶段,具体的工作流程如图 1 所示。在 Input 阶段,框架根据数据的存储位置,把数据分成多个分片(Splk),在多个结点上并行处理。Map 任务通常运行在数据存储的结点上,也就是说,框架是根据数据分片的位置来启动 Map 任务的,而不是把数据原创 2020-06-16 21:17:03 · 874 阅读 · 0 评论 -
OLAP和OLTP的区别
当今的数据处理大致可以分成两大类**:联机事务处理 OLTP(on-line transactionprocessing)、联机分析处理 OLAP(On-Line Analytical Processing)**。OLTP 是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP 是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。二者的主要区别对比如下表所示。...原创 2020-06-12 20:07:48 · 450 阅读 · 1 评论 -
kafka如何保证数据不丢失
Guide哥2020年03月16日阅读 4974关注面试官问我如何保证Kafka不丢失消息?我哭了!kafka如何保证不丢消息ps:这篇文章自我感觉说的很大白话了!希望你们看过了之后能有收获。不了解 Kafka 的朋友建议先看一看我的下面这几篇文章,第一篇一定要看,其他的可以按需学习。入门篇!大白话带你认识 Kafka!5分钟带你体验一把 KafkaKafka系列第三篇!10 分钟学会如何在 Spring Boot 程序中使用 Kafka 作为消息队列?生产者丢失消息的情况生产者(Prod转载 2020-06-10 20:46:59 · 656 阅读 · 0 评论 -
ansible命令详解
1.comand模块 (默认模块)用于在远程主机(被管理的主机)上执行某个命令注:A. 不能变量$HOME和操作等"<",">","|",";“和”&"#在默认家目录下创建一个 ansible.txt的文件[root@cdhnode1 ~]# ansible all -m command -a " touch ansible.txt "#指定切换到/home/zx目录下,再创建一个ansible.txt的文件[root@cdhnode1 ~]# ansibl原创 2020-06-07 12:57:07 · 2132 阅读 · 0 评论 -
MySQL索引与查询优化
目录About MySQLWhy MySQLMySQL IndexWhy Index索引是如何工作的如何使用创建索引查看索引删除索引索引的使用原则写操作比较频繁的列慎重加索引索引越多占用磁盘空间越大不要为输出列加索引考虑维度优势对短小的值加索引为字符串前缀加索引复合索引的左侧索引索引加锁覆盖索引聚簇索引选择合适的索引类型查询优化建议使用explain分析查询语句select_typetypeKeypossible_keysre.转载 2020-06-06 12:06:25 · 132 阅读 · 2 评论 -
HBase之Rowkey设计总结
HBase之Rowkey设计总结及易观方舟实战篇 ...转载 2020-06-05 15:41:36 · 568 阅读 · 0 评论 -
kafka分区分配策略
1 Range在 Kafka内部存在两种默认的分区分配策略:Range和 RoundRobin。Range是默认策略。Range是对每个Topic而言的(即一个Topic一个Topic分),首先对同一个Topic里面的分区按照序号进行排序,并对消费者按照字母顺序进行排序。然后用Partitions分区的个数除以消费者线程的总数来决定每个消费者线程消费几个分区。如果除不尽,那么前面几个消费者线程将会多消费一个分区。例如:我们有10个分区,两个消费者(C1,C2),3个消费者线程,10 / 3 = 3而且原创 2020-06-05 09:59:23 · 456 阅读 · 0 评论 -
Hive文件格式(表stored as 的五种类型)
Hive文件格式(表stored as 的五种类型) ...转载 2020-05-31 16:36:58 · 1173 阅读 · 0 评论 -
数据仓库建模
1 ODS 层 层(1)保持数据原貌不做任何修改,起到备份数据的作用。(2)数据采用压缩,减少磁盘存储空间(例如:原始数据 100G,可以压缩到 10G 左右)(3)创建分区表,防止后续的全表扫描2 DWD 层DWD 层需构建维度模型,一般采用星型模型,呈现的状态一般为星座模型。维度建模一般按照以下四个步骤:选择业务过程 → 声明粒度 → 确认维度 → 确认事实** (1 )选择业务过程**在业务系统中,挑选我们感兴趣的业务线,比如下单业务,支付业务,退款业务,物流业务,一条业务线对应一原创 2020-05-30 20:16:54 · 498 阅读 · 0 评论 -
数据仓库之维度表和事实表
1 维度表维度表:一般是对事实的 描述信息。每一张维表对应现实世界中的一个对象或者概念。例如:用户、商品、日期、地区等。维表的特征: 维表的范围很宽(具有多个属性、列比较多) 跟事实表相比,行数相对较小:通常< 10 万条 内容相对固定:编码表时间维度表:2 事实表事实表中的 每行数据代表一个业务事件(下单、支付、退款、评价等)。“事实”这个术语表示的是业务事件的 度量值(可统计次数、个数、件数、金额等),例如,订单事件中的下单金额。每一个事实表的行包括:具有可加性原创 2020-05-30 20:03:57 · 10448 阅读 · 0 评论 -
HIVE中get_json_object与json_tuple使用
HIVE中get_json_object与json_tuple使用 ...转载 2020-05-29 16:18:34 · 399 阅读 · 0 评论 -
数据仓库之数仓分层
1 为什么要分层1.1 把复杂问题简单化,将复杂的任务分解成多层来完成,每一层只处理简单的任务,方便定位问题。1.2 减少重复开发:规范数据分层,通过中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性。1.3 隔离原始数据: 不论是数据的异常还是数据的敏感性,使真实数据与统计数据解耦开2 数据集市与数据仓库概念2.1 数据集市(Data Market),现在市面上的公司和书籍对数据集市有不同的概念。数据集市侧是一种微型的数据仓库,它通常有更少的数据,更少的主题区域,以及更少的历史原创 2020-05-28 21:38:28 · 1759 阅读 · 1 评论 -
Flume采集数据到hdfs,文件开头有乱码
今天遇到这样的一个问题,flume拉取kafka数据,下沉到hdfs中,然后存取到hive中。是可以存进去的,但是执行查询语句。出现下面这样的代码或者存进去后,查询出现下面这样的问题SEQ!org.apache.hadoop.io.LongWritable"org.apache.hadoop.io.BytesWritable��6Xz�i���;�z 后来查询资料说,flume采集数据下沉到hdfs,有默认的文件格式,hdfs.fileType默认为SequenceFile,将其改为DataSt原创 2020-05-28 16:00:58 · 702 阅读 · 0 评论 -
Spark连接数据库(查询,将数据插入数据库)
1 需要的maven包: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency>2 代码import java.sql.{Connection, DriverManager原创 2020-05-27 21:58:49 · 665 阅读 · 1 评论 -
Flume内存优化
1)问题描述:如果启动消费Flume抛出如下异常ERROR hdfs.HDFSEventSink: process failedjava.lang.OutOfMemoryError: GC overhead limit exceeded2)解决方案步骤:(1)在hadoop102服务器的/opt/module/flume/conf/flume-env.sh文件中增加如下配置export JAVA_OPTS="-Xms100m -Xmx2000m -Dcom.sun.management.jmxr原创 2020-05-26 09:06:27 · 1323 阅读 · 0 评论 -
kafka 压力测试
1)Kafka压测用Kafka官方自带的脚本,对Kafka进行压测。Kafka压测时,可以查看到哪个地方出现了瓶颈(CPU,内存,网络IO)。一般都是网络IO达到瓶颈。kafka-consumer-perf-test.shkafka-producer-perf-test.sh2)Kafka Producer压力测试(1)在/opt/module/kafka/bin目录下面有这两个文件。我们来测试一下[atguigu@hadoop102 kafka]$ bin/kafka-producer-pe原创 2020-05-25 13:40:44 · 312 阅读 · 0 评论 -
Spark 数据保存与读取
Spark的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:Text文件、Json文件、Csv文件、Sequence文件以及Object文件;文件系统分为:本地文件系统、HDFS、HBASE以及数据库。1 文件类数据读取与保存1)数据读取:textFile(String) sc.textFile("hdfs://clusterldg:8020/user/sheng/spark/spart.txt").count()res38: Long = 5scala>原创 2020-05-21 16:00:57 · 434 阅读 · 0 评论 -
Spark 键值对RDD数据分区器
Spark目前支持Hash分区和Range分区,用户也可以自定义分区,Hash分区为当前的默认分区,Spark中分区器直接决定了RDD中分区的个数、RDD中每条数据经过Shuffle过程属于哪个分区和Reduce的个数注意:(1)只有Key-Value类型的RDD才有分区器的,非Key-Value类型的RDD分区器的值是None(2)每个RDD的分区ID范围:0~numPartitions-1,决定这个值是属于那个分区的。1 获取RDD分区可以通过使用RDD的partitioner 属性来获取 R原创 2020-05-21 15:37:12 · 203 阅读 · 0 评论 -
spark RDD缓存机制
RDD通过persist方法或cache方法可以将前面的计算结果缓存,默认情况下 persist() 会把数据以序列化的形式缓存在 JVM 的堆空间中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供后面重用通过查看源码发现cache最终也是调用了persist方法,默认的存储级别都是仅在内存存储一份,Spark的存储级别还有好多种,存储级别在object StorageLevel中定义的。在存储级别的末尾加上“_2”来把持久化数据存为原创 2020-05-21 15:20:37 · 522 阅读 · 0 评论 -
Hbase通过命令将数据批量导入的方法
Hbase通过命令将数据批量导入的方法 ...转载 2020-05-20 16:33:40 · 1280 阅读 · 0 评论 -
Kafka Stream数据清洗案例(亲测有效)
0)需求:实时处理单词带有”>>>”前缀的内容。例如输入”atguigu>>>ximenqing”,最终处理成“ximenqing”1)需求分析:2)案例实操需要的maven包:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.ap原创 2020-05-20 16:03:14 · 1133 阅读 · 0 评论 -
Flume配置文件总结
组件命名一:单个source和sink用这个# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1 组件命名二:单个source,多个sink用这个,当然有副本和负载均衡等模式# Name the components on this agenta1.sources = r1a1.sinks = k1 k2a1.channels = c1 c2# 将数据流复制给多个channel 副本,还有负载均转载 2020-05-20 09:28:46 · 370 阅读 · 0 评论 -
Flume NG高可用集群搭建(亲测有效)
高可用架构图结构分配agent1配置(flume-client.conf):#agent1 nameagent1.channels = c1agent1.sources = r1agent1.sinks = k1 k2#set gruopagent1.sinkgroups = g1#set channelagent1.channels.c1.type = memoryagent1.channels.c1.capacity = 1000agent1.channels.c1.tran转载 2020-05-19 21:36:59 · 821 阅读 · 0 评论 -
Hive参数调优
1. Map相关参数set mapred.max.split.size = 256000000 ; //最大分割set mapred.min.split.size=1 ; //最小分割set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; //Map端输入、合并文件之后按照block的大小分割(默认)set hive.input.format=org.apache.hadoop.hive.ql.io.Hiv转载 2020-05-16 16:21:19 · 278 阅读 · 0 评论 -
hive优化之调整mapreduce数目
hive优化之调整mapreduce数目 ...转载 2020-05-16 15:52:58 · 406 阅读 · 0 评论 -
Hive数据导入导出(亲测有效)
1 数据导入1.1 向表中加载数据1.语法hive> load data [local] inpath '/opt/module/datas/student.txt' overwrite | into table student [partition (partcol1=val1,…)];(1)load data:表示加载数据(2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表(3)inpath:表示加载数据的路径(4)overwrite:表示覆盖表中已有原创 2020-05-16 14:49:22 · 406 阅读 · 1 评论 -
hive 查询后信息显示配置
1 在hive-site.xml文件中添加如下配置信息,就可以实现显示当前数据库,以及查询表的头信息配置。<property> <name>hive.cli.print.header</name> <value>true</value></property><property> <name>hive.cli.print.current.db</name> <value>t原创 2020-05-15 12:25:05 · 681 阅读 · 0 评论 -
Hadoop的性能优化
**Hadoop参数优化的3个原则 (1)增大作业的并行程度,如增加Map任务的数量 (2)保证任务执行时有足够的资源 (3)满足前两个的情况下,尽可能为shuffle阶段提供资源【以上适用于大部分分布式计算的框架】1. Hadoop客户端的概念Hadoop是主从架构,具体存储和计算由从节负责,主节点负责调度、元数据存储、资源管理。一般讲提交计算任务的工作放在主节点完成。实际上在集群中的任意一个节...转载 2020-05-12 13:41:20 · 1393 阅读 · 0 评论 -
spark——RDD依赖关系
今天来讲一下RDD中的依赖关系1 LineageRDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage(血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。(1)读取一个HDFS文件并将其中内容映射成一个个元组scala> v...原创 2020-03-27 12:59:12 · 228 阅读 · 0 评论 -
RDD的动作 Action
一下整理了一些比较常用的Actionpackage com.shengimport org.apache.spark.{SparkConf, SparkContext}object Spark_Anction { def main(args: Array[String]): Unit = { Action10() } /*reduce(func)案例 1....原创 2020-03-27 12:44:01 · 223 阅读 · 0 评论 -
RDD的转换
RDD整体上分为Value类型和Key-Value类型1 Value类型 //Rdd的转化 def Test:Unit={ //1 创建配置文件对象 val conf: SparkConf = new SparkConf().setAppName("rdd_create").setMaster("local[*]") //创建sparkcontext上下文 ...原创 2020-03-26 21:02:21 · 805 阅读 · 0 评论 -
Spark在Windows本地读取Hdfs上的文件
今天搞了好几个小时做测试,在IDEA中去操作集群中的spark,可是集群一直链接不上,一下是解决问题的方案需要满足的条件:(1)需要访问hdfs的路径:即可以配置core-site.xml,hdfs-site.xml文件(2)设置访问hdfs上的用户: System.setProperty(“HADOOP_USER_NAME”,“hdfs”)(3)Spark程序中的Master设置在本地即...原创 2020-03-25 16:38:50 · 825 阅读 · 1 评论 -
简单的数据清洗 日志文件(mapreduce)
在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。1 需求去除日志中字段长度小于等于11的日志。(1)输入数据194.237.142.21 - - [18/Sep/2013:06:49:18 +0000] “GET /wp-content/uploads/2013/07/rst...原创 2020-03-21 13:48:23 · 1199 阅读 · 0 评论 -
大数据面试题(史上最全)
最近花了好几天的时间整理的hadoop面试题,内容如下:网盘链接如下:链接:https://pan.baidu.com/s/10sNW6XucCNfvXkzewZKB-Q提取码:nt6c过期请加个人微信获取最新链接:...原创 2020-03-06 14:23:21 · 818 阅读 · 1 评论 -
Hadoop之HDFS常见面试题
大数据面试题+一:HDFS面试题1. HDFS的写流程1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。2)NameNode返回是否可以上传。3)客户端请求第一个 Block上传到哪几个DataNode服务器上。4)NameNode返回3个DataNode节点,分别为dn1、dn2、dn...原创 2020-03-01 14:17:43 · 3773 阅读 · 0 评论