自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浅汐

大数据技术交流与分享,内有大量大数据干货 1群:126181630 2群:663052251 3群:671914634 4群:707635769 5群:545916944

  • 博客(453)
  • 收藏
  • 关注

原创 SparkSQL2.4.6 报错:org/codehaus/janino/InternalCompilerException

SparkSQL中执行了Dataset的action操作出现下面的异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/janino/InternalCompilerException at org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection$.create(GenerateSafeProjection.s

2020-09-17 10:09:13 24184

原创 收集文件夹的内容到HDFS,按照时间分区

# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1 # Describe/configure the sourcea1.sources.r1.type = spooldira1.sources.r1.spoolDir = /bigdata/testdata/spool_dir # Describe the sinka1.sinks.k1.type = hdfsa1.sinks..

2020-08-27 08:28:47 46653

原创 taildir

# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1 # Describe/configure the sourcea1.sources.r1.type = TAILDIRa1.sources.r1.positionFile = /bigdata/flume-1.6.0-cdh5.16.2/taildir_position.jsona1.sources.r1.filegroups =.

2020-08-27 08:27:57 46559

原创 收集指定文件的内容到HDFS(exec-memory-hdfs)

选型:source channel sink exec memory hdfs# 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 /wangqingguo/bigdata/testda...

2020-08-27 08:27:22 46305

原创 收集文件夹的内容到HDFS(spooldir-memory-hdfs)

# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1 # Describe/configure the sourcea1.sources.r1.type = spooldira1.sources.r1.spoolDir = /bigdata/testdata/spool_dir # Describe the sinka1.sinks.k1.type = hdfsa1.sinks..

2020-08-27 08:27:04 46299

原创 编译Azkaban3.9.0

基础环境azkaban下载地址:https://github.com/azkaban/azkaban/releasesgitJDK1.8gradle-5.4下载地址:http://services.gradle.org/distributions/解压,配置本地包azkaban-3.90.0/gradle/wrapper/gradle-wrapper.propertiesdistributionUrl=https\://services.gradle.org/distribut

2020-08-17 16:22:17 58091

原创 netcat-memory-logger(仅供测试)

flume-conf.properties# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1# Describe/configure the sourcea1.sources.r1.type = netcata1.sources.r1.bind = localhosta1.sources.r1.port = 44444# Describe the sinka1.sinks.

2020-08-10 16:09:12 65715

原创 mongoDB4.x账户权限配置

创建不受限制的超级用户db.createUser({"user":"root","pwd":"root","roles":["root"]}); 创建admin超级管理用户use admin;db.createUser({user: "admin", pwd: "admin",roles: [ { role: "userAdminAnyDatabase", db: "admin"}]})修改 Mongodb 数据库配置文件auth=true重启mongo创建一个业务数据库

2020-07-31 17:42:42 70206

原创 mongoDB4.2.8备份恢复与导出导入

备份数据备份就是要保存数据的完整性,防止断电,病毒感染等等情况,使数据丢失。有必要的话,最好勤备份,防止数据丢失。创建备份目录:mkdir -p /bigdata/mongodb-4.2.8/mongodump语法:mongodump -h localhost:27017 -d dmp_phone -o /bigdata/mongodb-4.2.8/mongodump-h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017-d:

2020-07-30 15:41:37 70777

原创 MongoDB4.x优化

MongoDB架构MongoDB是典型的C/S架构,数据库存储采用主从结构,应用发起的读写请求都落在主库上,如果是写入请求,主库提交之后,还会同步写入到对应的从库上,同步的具体方式是类似OpLog,主库+从库组成了一个副本集,是MongoDB最小的部署单位。同时,MongoDB还支持较为复杂的集群方案,为用户解决元数据的高可用,业务数据的冗余和灾备(副本集来保证),动态自动分片,动态自动数据均衡等问题。典型的集群架构如下图所示:上面的图表示的集群由两个副本集,一个配置服务器,两个Mong

2020-07-30 15:34:39 70835

原创 MongoDB4.0将支持多文档事务

背景在早期,我们说的MongoDB支持事务是指针对MongoDB的单文档级别,与我们MySQL等关系型数据库中的事务是不同的,那什么是单文档事务呢?db.username.update({'name': 'helei'}, {$set: {'age': 26, 'score': 85}})上述命令对username集合中,name为helei列的行进行更新,如果age更新为26,score由于宕机或其他原因导致更新失败,那么MongoDB则会回滚这一操作。单文档ACID的实现Mongo

2020-07-30 13:55:21 71581

原创 JAVA代码实现编程式提交Spark任务

三种方法作为记录:1)直接调用SparkSubmit的main方法2)SparkLauncher类的launch方法或者startApplication方法3)使用RestSubmissionClient的run方法SparkSubmit提交任务 String[] param = { "--class", "org.apache.spark.examples.SparkPi", "--master", "local[2]", "/bigdata/spark-2.

2020-07-29 16:54:11 70841 2

原创 Livy的安装使用

Livy介绍(apache 孵化项目)官网:https://livy.incubator.apache.org/Livy是一个提供rest接口和spark集群交互的服务。它可以提交spark job或者spark一段代码,同步或者异步的返回结果;也提供sparkcontext的管理,通过restfull接口或RPC客户端库。Livy也简化了与spark与应用服务的交互,这允许通过web/mobile与spark的使用交互。其他特点还包含:长时间运行的SparkContext,允许多个spark

2020-07-29 15:32:42 70813

原创 MongoDB4.2.8增删改查

pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>user实体类import lombok.AllArgsConstructor;

2020-07-14 09:15:43 70077

原创 Java工具类

随机生成时间范围内的时间戳 public static Date randomDate(String beginDate, String endDate) { try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date start = format.parse(beginDate);// 构造开始日期 Da

2020-07-13 11:43:42 70073

原创 MongoDB高级部分

1.关联关系 嵌入式关系建模 引用式关系2.数据库引用 DBRefs(自动参考) 手动参考 3.覆盖查询(是一个查询,本质上就是直接从索引中取出数据,不会对文档进行扫描) 1)查询中的所有字段都是索引的一部分 2)查询中返回的所有字段都在同一索引中 覆盖索引的示例: 1)创建复合索引 db.users.ensureIndex({gender:1,user_name:1}) 2)覆盖索引示例 db.users.find({gender:"M"},{user_name:1,_i.

2020-07-13 10:59:47 69517

原创 MongoDB初级部分

快速入门是跨平台、文档型(对象)的数据库(NoSQL),提供高性能,高可用和易于扩展。(Mongo工作在集合和文档上的一种概念)MongoDB 和 MySQL的对应关系:db(数据库) database(数据库) collection(集合) table(表) Document(文档的数据结构和JSON基本一样,所有存储在集合中的数据都是BSON格式) BSON是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。 .

2020-07-10 17:04:33 70027

原创 记录MongoDB占用内存太大

原因:MongoDB为了优化本身的读写效率,将内存当作缓存,所以读写的次数越多,缓存就越大。默认值为 50% *(RAM - 1GB)或者 256MB,从MongoDB3.4开始,WiredTiger内部缓存默认使用默认值中较大的一个。解决办法:修改config/mongod.cfg配置dbpath=/data/app/mongodb4.2.8/data/rs1 #MongoDB数据安装目录logpath=/data/app/mongodb4.2.8/log/rs1

2020-07-08 17:49:17 70990

原创 MongoDB4.2.8副本集(复制集)环境搭建

背景1)主要为了解决SpringBoot集成MongoDB的事务问题2)实际使用还是要搭配分片以及副本集使用,不要仅使用副本集。副本集的特点1)主节点唯一主节点唯一,但是不固定(不确定的原因是:主节点挂了的话,会重新选举出一个主节点)。2)大多数原则大多数原则,即1/2原则,一个复制集集群中,如果有大于等于1/2的节点不可用的话,那么整个进群将不可写,只可读(注:实际上应该是投票权重的1/2。3)从库无法写入从库无法写入,使用root权限也不行,这一点与MySQL不同,M

2020-06-28 14:15:01 71414 1

原创 SpringBoot整合Redis消息队列

消息模型1)队列模型队列模型如图所示,它具有以下几个特点,就像我们用微信和好友(群聊除外)聊天一样,微信就是这个队列,我们可以和很多个好友聊天,但是每条消息只能发给一个好友。只有一个消费者将获得消息 生产者不需要在接收者消费该消息期间处于运行状态,接收者也同样不需要在消息发送时处于运行状态。 每一个成功处理的消息都由接收者签收2)发布/订阅模型发布/订阅模型如图所示,不用说,和订阅公众号是一样的。多个消费者可以获得消息 在发布者和订阅者之间存在时间依赖性。发布者需要建立一个t

2020-06-28 11:59:32 71310

原创 SpringBoot异步处理任务

名词解释1)同步:等用户所有操作结束后,才会返回程序的处理状态。2)异步:直接返回给用户指定的状态,同时程序在后台继续运行,用户不用等待。实现同步实现 @Autowired private TaskAsync taskAsync; /** * 同步处理的方式 */ @GetMapping("/test2") public String test2() { taskAsync.getTest2(); System.out.println(Thread.cu

2020-06-28 10:06:19 70751 1

原创 Linux以tar包方式安装MongoDB-4.2.8

下载安装包https://www.mongodb.com/download-center/community解压tar -zxvf mongodb-linux-x86_64-4.2.8.tgz创建目录,设置权限在根目录 / 下创建data/db目录,用于放置mongodb数据,并且给该目录设置权限sudo mkdir -p /data/dbsudo chown -R 自己电脑的用户名 /data 启动mongodb-4.2.8/bin/mongod客户端测试..

2020-06-16 11:34:50 70854

原创 Springboot集成MyBatis-Plus的使用

MyBatis-Plus介绍Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。官网地址:https://mp.baomidou.com/guide/quick-start.html

2020-06-15 14:11:25 70098 1

原创 Springboot定时采集Hadoop的JMX信息,定制化监控

背景:Haddop自身会定时将元数据信息保存起来,通过WebUI的方式进行展现,例如:blocks、files......,通过WebUI的方式显然是不方便随时进行查看,并且对其进行监控,所以我们要对这些关键的元数据指标进行采集、存储,然后封装成服务,进行定制化监控。实现:http://localhost:50070/jmx?qry=Hadoop:service=NameNode,name=FSNamesystem创建Springboot项目,并添加几个依赖: <

2020-06-10 16:03:05 70228

原创 SpringBoot整合websocket实现在线客服聊天

websocket最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。 浏览器和服务器只需要要做一个握手的动作,在建立连接之后,服务器可以主动传送数据给客户端,客户端也可以随时向服务器发送数据。实现功能:springboot整合websocket实现一对一,多对多聊天系统。依赖 <dependency> <groupId>com.alibaba</groupId> <

2020-06-09 15:45:17 78434 11

原创 Springboot构建多模块项目

首先新建一个springboot父项目这里不选择其他的,直接next就好了,后续需要再添加。建立完成后项目结构如下,但是这是一个父项目,做版本控制,什么都不需要,所以我们要删除如下的东西。选中的全部删除然后开始建立子模块注意这里需要选中springboot-dubbo然后右键选择其中的quickstart继续创建2个module,分别为module和server,至此多模块springboot项目创建完成。建立完成后的项目结构:父pom文.

2020-06-08 15:12:34 70652

原创 Springboot2.x使用JPA整合Redis

SpringBoot2.3,使用MySQL数据库,通过JPA实现ORM,再用Redis实现数据库的缓存。代码实现:pom.xml <!-- 集成redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redi

2020-06-08 13:18:55 70280

原创 使用ELK收集、存储、监控Nginx的日志信息

1.场景使用ELK生态栈对Nginx的日志信息进行解析、存储,并根据解析后的数据进行监控,如果日志信息有异常,会通过自定义配置的告警服务进行告警。2.架构nginx ==> filebeat ==> kafka==> logstash ==> ES ==> Kibanafilebeat:只是收集客户端(能干的很少)kafka:缓冲,削峰(测试阶段没有选择使用)logstash:解析日志字段(grok表达式)版本选择:7.4.2 3. nginx..

2020-05-29 15:16:41 70821 1

原创 Insert into select语句把生产服务器炸了

场景:使用MySQL存储千万级数据量并根据城市进行分表,从总表对分表插入数据时很慢很慢原因:在默认的事务隔离级别下:insert into t2 select * from t1加锁规则是:t2表锁,t1逐步锁(扫描一个锁一个)。解决方案:使用insert into tablA select * from tableB语句时,一定要确保tableB后面的where,...

2020-04-23 10:08:09 70221

原创 java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kerne

错误描述:  ElasticSearch集群启动错误,错误的原因是:因为Centos6不支持SecComp,而ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动解决:修改elasticsearch.yml问题解决:在所有节点的elasticsearch.yml配置文件中加入:  bootstrap.mem...

2020-04-10 18:43:24 70525

原创 限制内存使用"type":"circuit_breaking_exception","reason":"[fielddata] Data too large

关于ES内存使用的一些问题断路器indices.breaker.fielddata.limitfielddata 断路器默认设置堆的 60% 作为 fielddata 大小的上限。indices.breaker.request.limitrequest 断路器估算需要完成其他请求部分的结构大小,例如创建一个聚合桶,默认限制是堆内存的 40%。indices.breaker.tot...

2020-04-10 13:11:13 71022

原创 Elasticsearch7.0.0解决Java日期型数据的导入

第一种:使用时间戳记录时间。存入数据时,使用String转换为date然后转换为long(这里使用String是方便格式转换):public final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String str="2016-01-25 00:00:00";Date date=dateF...

2020-04-09 18:43:35 70993

原创 ElasticSearch7.0.0安装sql

切换到elasticsearch的home目录执行:bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.0.0.0/elasticsearch-sql-7.0.0.0.zip修改config/elasticsearch.yml:添加一行x...

2020-04-08 11:23:58 70997 1

原创 Logstash7.0.0同步MySQL数据到ES,并存储geo位置信息,以及支持写入分词功能

场景:1. 数据来源是python爬虫获取美团、安居客的数据,使用Java进行ETL清洗后,批量插入MySQL中,由于MySQL在千万级甚至亿级数据量的激增下,查询缓慢,以及部分功能不能支持业务的需求,比如分词。。。等2. 调研组件Hive,发现Hive对于GIS的支持并不友好,首先Hive不支持创建表时指定字段为geometry类型,这就很尴尬了,对于使用GIS函数的功能,官方并不支持,...

2020-04-08 09:20:14 70386

转载 Hive中扩展GIS函数

应用场景目前,Hive表中存在需要把经纬度转化为距离,和一些其他相关的计算函数,但是在hive中并没有集成这些函数。当然我们可以自定义UDF函数,但是现在提供一个更加简单的方法,通过源码编译的方式,集成GIS函数。环境<profile> <id>hadoop-2.7</id> <properties> ...

2020-04-08 09:08:21 70607

原创 安装logstash和logstash-input-jdbc

一.安装logstash下载:Logstash地址:https://github.com/elastic/logstash/tree/v7.0.0解压:unzip xxx.zip二.安装logstash-input-jdbc直接在logstash的安装目录bin下运行bin/logstash-plugin install logstash-input-jdbc...

2020-04-02 11:04:18 70051

原创 ElasticSearch7.0.0安装IK分词器

1.原因:为什么要在elasticsearch中要使用ik这样的中文分词呢,那是因为es提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用。就尝试安装下IK分词。2.去github下载对应的分词插件(对应ES的版本下载)https://github.com/medcl/elasticsearch-analysis-ik/releases...

2020-03-30 16:42:53 71548

原创 阿里云22端口做本地端口转发到2000

首先查看服务器网卡及ip设置:ifconfig很明显eth0为外网网卡。设置端口号转发规则:(使用22端口登陆)iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 2000 -j REDIRECT --to-port 22保存规则:[root ~]# cd /etc/rc.d/init.d[root ~]# ....

2020-03-18 11:11:05 70460

原创 阿里云(Centos6.9)挂载数据盘

1、入手阿里云后查看有几块硬盘:(只显示概况,不显示分区情况) # fdisk -l|grep Disk2、查看硬盘分区# fdisk -l发现没有 /dev/xvdb 标明您的云服务无数据盘,那么您无需进行挂载;如果有提示:disk/dev/xvdbdoesntcontainavalidpartitiontable说明数据盘还没有分区和挂载2、如果上...

2020-03-16 18:21:31 70200

原创 解析ip到对应城市:ipdatabase

一、实现目的在解析网络访问日志的时候,ip是不可避免地分析KPI。而有时候需要把访问ip直接转换为对应城市,这样如果自己编写程序,就会浪费很多时间,在此介绍一个有效地开源github项目,可以实现ip到城市的映射。二、实现步骤1.使用github上已有的开源项目,从github上下载git clone git@github.com:wzhe06/ipdatabase.git2...

2020-02-18 10:59:50 70715 2

空空如也

空空如也

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

TA关注的人

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