java大数据
文章平均质量分 51
这里分享大数据开发常用框架的知识,同时记录一些个人认为比较重要的笔记
hidecode
hidecode爱分享一些javaEE和大数据的技术
展开
-
SQL优化总结,分页优化、关联优化、count(*)优化等
1、分页查询优化这种改写得满 足以下两个条件:主键自增且连续 结果是按照主键排序的连续主键排序的分页查询:select * from employees limit 90000,5;该 SQL 表示查询从第 90001开始的五行数据,没添加单独 order by,表示通过主键排序。我们再看表 employees ,因 为主键是自增并且连续的,所以可以改写成按照主键去查询从第 90001开始的五行数据该 SQL 表示查询从第 90001开始的五行数据,没添加单独 order by,表示通过原创 2021-05-26 22:41:34 · 1100 阅读 · 2 评论 -
如何配置项目中的线程池?监控线程池?
在我的项目有一个需求是导出报表中需要大量的IO操作,所以配置了2*NCPU的线程池数量。new ThreadPoolExecutor(corePoolSize, Runtime.getRuntime().availableProcessors() * 2, keepAliveTime,milliseconds,runnableTaskQueue, handler);要想合理地配置线程池,就必须首先分析任务特性,可以从以下几个角度来分析。任务的性质:CPU密集型任务、IO密集型任务和混合型任务原创 2021-05-26 18:37:38 · 457 阅读 · 1 评论 -
contains unrecognized parameters: [ccs_minimize_roundtrips], [ignore_throttled]]]
ElasticSearch版本和springboot不兼容问题导致:contains unrecognized parameters: [ccs_minimize_roundtrips], [ignore_throttled]]]修改对应版本:成功启动原创 2021-05-13 16:05:55 · 7758 阅读 · 0 评论 -
复习RabbitMQ消息队列,顺序消费,保证消息不丢,不重复消费,消息失败,推和拉的使用
1 MQ有什么用?消息队列有很多使用场景,比较常见的有3个:解耦、异步、削峰。1、解耦:传统各个模块之间都要时刻关注其他模块的是否更改或者是否挂掉等等,使用消息队列,可以避免模块之间直接调将所需共享的数据放在消息队列中,对于新增业务模块,只要对该类消息感兴趣,即可订阅该类消息2、异步:不需要立即处理消息,,在之后需要的时候再慢慢处理。3、削峰:访问量骤增时,消息队列的容量可以配置的很大,如果采用磁盘存储消息,则几乎等于“无限”容量,这样一来,高峰期的消息可以被积压起来,在随后的时间内进行平滑的处理完原创 2021-03-16 17:24:00 · 1446 阅读 · 0 评论 -
详谈JUC之可重入锁、LockSupport、AQS
1、题目说明 1、Synchronized 相关问题 Synchronized 用过吗,其原理是什么?你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁什么是可重入性,为什么说Synchronized 是可重入锁?JVM对Java的原生锁做了哪些优化?为什么说Synchronized是非公平锁?什么是锁消除和锁粗化?为什么说Synchronized是一个悲观锁?乐观锁的实现原理又是什么?什么是CAS,它有什么优点和缺点?乐观锁一定就是好的吗? 2、可重入锁 Reentran原创 2021-02-18 10:13:28 · 493 阅读 · 0 评论 -
Mysql查询截取分析(查询优化,慢查询日志,Show profiles,全局查询日志)
第 3 章 查询截取分析 1、查询优化 1.1、MySQL 优化原则 mysql 的调优大纲 慢查询的开启并捕获explain+慢SQL分析show profile查询SQL在Mysql服务器里面的执行细节和生命周期情况SQL数据库服务器的参数调优 永远小表驱动大表,类似嵌套循环 Nested Loop ...原创 2021-02-14 11:52:49 · 257 阅读 · 0 评论 -
Mysql索引优化分析(超详细)
第 2 章 索引优化分析 1、慢 SQL 性能下降、 SQL 慢、执行时间长、等待时间长的原因分析 查询语句写的烂索引失效: 单值索引:在user表中给name属性建个索引,create index idx_user_name on user(name)复合索引:在user表中给name、email属性建个索引,...原创 2021-02-14 11:50:09 · 592 阅读 · 0 评论 -
快速入门RabbitMQ(详细)第二篇:RabbitMQ五种工作模式的使用及总结
4. RabbitMQ工作模式4.1. Work queues工作队列模式Work Queues 与入门程序的 简单模式 相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度。4.1.2. 代码Work Queues 与入门程序的 简单模式 的代码是几乎一样的;可以完全复制,并复制多一个消费者进行多个消费者同时消费消息的测试。1)生产者import com.lxs.rabbitmq.util.Connecti原创 2021-01-28 17:22:00 · 384 阅读 · 0 评论 -
通俗易懂的ElasticSearch基础概念
2.1 什么是ElasticSearchElaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。3.ElasticSearch相关概念(术语)3.1 概述Elasticsearch是面向文档(document原创 2021-01-14 17:25:12 · 395 阅读 · 0 评论 -
Linux常用命令及jdk安装,tomcat安装,防火墙,修改主机名及ip地址教程
Linux常用指令查看目录ls 查看目录内容 ll 查看详细信息创建目录mkdir :创建目录 mkdir -p 创建目录以及子目录,多个目录同时创建切换目录cd 切换目录cd … 要加空格cd …/xxx 进入上一级目录的子目录创建文件touch :创建一个空白的普通文件写入内容echo :把内容重定向到指定的文件中 ,有则打开,无则创建查看文件内容cat :查看文件内容more :分页查看文件内容,按空格键换页复制 剪切cp :复制mv :剪切、重命名(剪切的文件 放在原创 2020-10-31 13:00:36 · 219 阅读 · 0 评论 -
Ajax基本使用及原理
什么是 AJAX 请求:Asynchronous异步 JavaScript 和 XMLAJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下1.3 Ajax的工作原理Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。浏览器的Ajax交互方式javaScript 原生 Ajax 请求<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht原创 2020-10-19 20:12:21 · 207 阅读 · 1 评论 -
云短信使用——阿里云短信使用步骤
云短信使用阿里云短信使用步骤:《1》点击进入阿里云免费试用 , 然后登陆账号。《2》 如图选择短信0元试用 (已经领取过的,直接走第三步即可。)《3》点击进入阿里云短信官网 , 登陆状态下点击免费开通 (已开通的文字会替换为控制台 , 点击效果一样)《4》选择国内消息《5》创建短信签名《6》创建短信模板《7》创建子账户秘钥鼠标移至右上角账户名称 选择accesskeys选择开始使用子用户AccessKey输入登陆名称和显示名原创 2020-10-17 17:08:18 · 3266 阅读 · 3 评论 -
Servlet详解工作原理及使用方法 配置
1. 什么是Servlet(1) Servlet是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,生成动态Web内容。(2) Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。(3) Servlet工作模式:① 客户端发送请求至服务器② 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器③ 服务器将响应返回客户端2原创 2020-10-15 18:52:32 · 2145 阅读 · 0 评论 -
hive排序 分区 分桶 函数 行专列
排序1.1 Order By 全局排序关注点: 只有一个reducer,也就是只有一个分区.1.2 Sort By Reducer内部排序/区内排序关注点: 有多个reducer,也就是有多个分区注意点: 有多个reducer,单独使用sort by, 数据会被随机分到每个reducer中,在每个reducer中sort by会将数据排序。 insert overwrite local directory '/opt/module/hive/datas/sort-result/'.原创 2020-10-15 16:45:40 · 220 阅读 · 0 评论 -
Kafka基础架构和topic操作
1.前置知识:1.1. Zookeeper1.2. FlumeKafka是一个分布式的基于发布/订阅模式的消息队列2.Kafka基础架构关键点:2.1. Kafka集群kafka集群可以有N台机器,每台都称之为broker , 每台机器都有自己的id,因此kafka集群中的N机器为: broker1 broker2 broker3 …2.2. Topickafka集群中可以创建N个Topic每个topic可以有多个分区(partition)每个topic的每个分区可以有多个副本(r原创 2020-08-09 12:07:16 · 372 阅读 · 0 评论 -
Flume重点知识记录
Flume是分布式,高可靠,高可用的 , 用于海量日志的采集、聚合、传输的框架.Flume的架构:Agent: jvm进程.Source : 对接日志的来源(采集)Channel: 用于Source到Sink的缓冲.Sink: 对接日志的去向Source的类型netcat source : 从端口采集日志数据exec source : 执行linux命令. 一般都是 tail -F , 从某个文件中采集日志数据spooling Directory Source* : ..原创 2020-08-08 10:08:05 · 244 阅读 · 0 评论 -
hive排序,分区表,分桶表,hive函数
1 排序1.1 Order By 全局排序关注点: 只有一个reducer,也就是只有一个分区.1.2 Sort By Reducer内部排序/区内排序关注点: 有多个reducer,也就是有多个分区注意点: 有多个reducer,单独使用sort by, 数据会被随机分到每个reducer中,在每个reducer中sort by会将数据排序。 insert overwrite local directory '/opt/module/hive/datas/sort-resul原创 2020-08-01 22:30:50 · 301 阅读 · 0 评论 -
hive常用函数大全
常用日期函数unix_timestamp:返回当前或指定时间的时间戳 from_unixtime:将时间戳转为日期格式current_date:当前日期current_timestamp:当前的日期加时间to_date:抽取日期部分year:获取年month:获取月day:获取日hour:获取时minute:获取分second:获取秒weekofyear:当前时间是一年中的第几周dayofmonth:当前时间是一个月中的第几天months_between: 两个日期间的月份ad原创 2020-08-01 16:07:02 · 142 阅读 · 0 评论 -
hive常见问题,hive的DDL,DML,查询
1.hive问题总结:1.1 使用HA集群集群一定要正常启动 zk start-dfs.sh start-yarn.sh内存问题:修改yarn调度器的配置capacity-scheduler.xml: <property> <name>yarn.scheduler.capacity.maximum-am-resource-percent</name> <value>1</value> </property原创 2020-08-01 00:32:48 · 478 阅读 · 0 评论 -
Hive的安装和配置,访问hive,hive数据类型,hive的DDL建库建表语句
Hive:前置 知识: (2) SQL技能: MySQL (3) Hadoop框架: HDFS + MapReduce2. Hive是什么Hive是FaceBook开源的海量结构化数据的分析框架.Hive的本质是将结构化的数据映射成一张表,最终表被翻译为MR程序.底层还是通过MR作为计算引擎,HDFS作为存储,Yarn作为资源调度.3. Hive的架构:Hive计算的数据存储在HDFSHive的元数据信息(表的信息)存储在第三方的数据库中,默认使用的derby,我们会换成mysql.4原创 2020-07-29 09:40:30 · 187 阅读 · 0 评论 -
hive环境搭建error: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)Vat org.apache.hadoop.conf.Conf原创 2020-07-27 20:08:35 · 395 阅读 · 0 评论 -
Hadoop HA自动故障转移搭建
1. 所需知识:HadoopZookeeper2. 目前Hadoop集群存在的问题:2.1 如果NameNode故障后,应该怎么办?Prior to Hadoop 2.0.0, the NameNode was a single point of failure (SPOF) in an HDFS cluster.Each cluster had a single NameNode, and if that machine or process became unavailable,th原创 2020-07-27 12:29:57 · 439 阅读 · 0 评论 -
zookeeper基本API操作和leader选举原理
1.Zookeeper的启动zk服务器的启动,状态,停止zkServer.sh start | status | stopzk服务的进程: QuorumPeerMainzk客户端的启动:zkCli.sh 默认连接当前机器的zk服务zkCli.sh -server host:port 连接指定host的zk服务zk客户端的停止:quitzk客户端的进程: ZooKeeperMain2. Zookeeper Znode类型:2.1 持久节点: 客户端与zk服务原创 2020-07-25 10:34:16 · 256 阅读 · 1 评论 -
MapReduce源码调试job,maptask,shuffle,reducetask
1. OutputFormat 数据输出相关方法getRecordWriter(): 获取RecordWriter对象,负责数据的写出操作.checkOutputSpecs(): 检查输出路径子抽象类 FileOutputFormatcheckOutputSpecs(): 对该方法做了具体的实现.相关异常: Output directory " + outDir + " already exists"具体实现类TextOutputFormat hadoop默认使用的Line原创 2020-07-24 23:45:55 · 243 阅读 · 0 评论 -
MapReduce排序,分区,分组总结
1. 分区1.1 自定义分区器 1) 自定义分区器继承 Partitioner类,并重写getPartition方法 2) 在driver类中设置使用 job.setPartitionerClass(PhoneNumPartitioner.class); 3) 设置reduce的个数 正常情况下,根据分区器业务来决定设置多少个,说白了就是分区器的逻辑会生成多少个分区,则设置的多少个reduce1.2 分区使用的注意事项: 1). reduce个数的设置 如果不设置,red原创 2020-07-22 22:28:04 · 1931 阅读 · 0 评论 -
MapReduce原理解读
1. Hadoop序列化1.1 什么是序列化及反序列化? 序列化: 将内存中的对象以字节序列的方式写到文件中 反序列化: 将文件中的字节序列读取到内存,并构造成对应的对象. 1.2 为什么需要有序列化和反序列化? 对象中的数据需要持久化 或者 网路中传输等 ...1.3 java中如何实现序列化和反序列化? 实现序列化接口: Serializable , 提供序列化标识号: serialVersionUID 对象流: ObjectInputStream原创 2020-07-22 00:19:03 · 216 阅读 · 0 评论 -
MapReduce的概念和使用
1.MapReduce的核心思想:1.1 先分(map)后合(reduce)1.2 MapReduce核心思想初认识:1)首先待计算的数据会先生成切片(逻辑上对数据进行划分) , 生成的切片个数对应着要启动多少个MapTask进行Map阶段的计算. 2) 多个MapTask是并行运行的,互不相干.3) 在每个MapTask中对数据的处理要考虑到很多细节, 是否有分区, 如何排序, 数据如何写磁盘等..4) 多个MapTask计算完成后,每个MapTask都会有输出的数据5) 会根据分原创 2020-07-19 00:24:11 · 432 阅读 · 1 评论 -
NameNode 和 SecondaryNamenode 的工作机制
1. 配置hadoop的windows依赖1.1 将windows依赖 hadoop-3.1.0 拷贝到一个固定的位置. 例如: E:\hadoop\hadoop-3.1.01.2 配置环境变量 1) 新建变量 HADOOP_HOME=E:\hadoop\hadoop-3.1.0 2) 修改变量 path=......(不要改不要删已有内容);%HADOOP_HOME%\bin2. NameNode 和 SecondaryNamenode 的工作机制:原创 2020-07-15 12:06:57 · 207 阅读 · 0 评论 -
HDFS数据流原理,节点距离,机架感知
数据流原理源码解释副本存储节点选择原理For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on the local machine if the writer is on a datanode, otherwise on a random datanode, another replica on a node in a different (re原创 2020-07-15 11:58:47 · 297 阅读 · 0 评论 -
完全分布式搭建-历史服务器-日志聚集-时间同步-HDFS Shell
1. 配置文件的格式: : xml文件中的注释格式<configuration> : xml文件中的标签、标记、元素.... <property> : 用来表示一个配置项 <name></name> : 表示配置项的名称 <value></value>: 表示配置项的值 </property> </configuration>2. SSH 免密登录2.1原创 2020-07-15 11:51:52 · 279 阅读 · 0 评论 -
hadoop完全分布式搭建于常见问题解析
1. Hadoop如何识别是Linux路径还是HDFS路径就是基于 core-site.xml中的fs.defaultFS的配置. <property> <name>fs.defaultFS</name> <value>hdfs://hadoop101:9820</value> </property>1.1 Hadoop的fs.defaultFs的默认配置是: file:/原创 2020-07-12 15:50:15 · 1182 阅读 · 0 评论 -
Hadoop环境准备和三种运行模式的测试
Hadoop环境的准备:1. 准备模板机(最小化安装)1.1 安装必要的组件epel-release psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop1.2 修改/etc/hosts文件192.168.202.101 hadoop101…1.3 设置防火墙不自启systemctl stop firewalldsystemctl disable firewalld1.4 创建jia原创 2020-07-10 11:53:51 · 275 阅读 · 0 评论 -
Hadoop的组成——大数据生态
Hadoop的组成:hadoop 1.x : HDFS(存) + MapReduce(算+资源(内存、CPU、磁盘、网络…)调度)hadoop 2.x/3.x : HDFS(存) + MapReduce(算) + Yarn(资源调度)HDFS的架构:HDFS: Hadoop分布式文件系统, 文件系统是用于对文件进行存储和管理。分布式可以理解为由多台机器共同构成一个完整的文件系统。NameNode(nn): 负责管理HDFS中所有文件的元数据信息.元数据: 用于描述真实数据的数据就是所原创 2020-07-09 00:17:26 · 291 阅读 · 0 评论