![](https://img-blog.csdnimg.cn/20200627163447624.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
大数据
文章平均质量分 86
以大数据基础环境部署为起点,从虚拟机集群搭建起步,搭建hadoop生态集群(hdfs,hive,hbase等HA模式),向外扩展常用组件flume,docker等,辅助以nginx,redis等常用软件的集群和HA模式。 文章绝大数实操和以word文档的记录于2020-06到8月份,格式需要转换。
长臂人猿
进阶的猿猴
展开
-
Web日志/招聘网站/电商大数据项目样例【实时/离线】
某大型电商公司,产生原始数据日志某小时达4千五万条,一天日志量月4亿两千万条。原创 2024-04-02 00:20:00 · 1116 阅读 · 0 评论 -
FlinkSQL写入iceberg—Windows环境下
FlinkSQL写入iceberg的demo,Windows环境下。Flink运行版本13.1,iceberg依赖版本:1.0.0。原创 2023-06-15 10:15:13 · 1044 阅读 · 0 评论 -
Windows_安装整合Prometheus + Grafana监控主机和Flink作业
基于Windows情况下安装Prometheus Grafana Node_exporter pushgatey,监控windows主机和本地IDE运行的flink作业原创 2023-03-16 20:31:15 · 2747 阅读 · 1 评论 -
FlinkKafkaProducer默认和自定义分区策略
我们经常关注的是Kafka消费者的消费策略,但是又会在某些特殊情况下要求自定义生产者的分区策略:如按序消费:将所有数据写入一个分区中。又或者默认的策略满足我们的业务需求。值得一提的是,FlinkKafkaProducer(这里版本13.0.2,更早期的版本如1.10.0中是带版本号的FlinkKafkaProducer10等),和Kafka(这里版本kafka_2.11 1.1.1)的api中的KafkaProducer写入分区策略并不相同。 即Flink写kafka使用的机制与原生接口的写入方式是有差别原创 2022-06-02 22:00:00 · 2850 阅读 · 1 评论 -
java获取普通参数文件和含有section的参数文件中的参数
前言介绍两种参数获取方式(cfg、ini、properties等):直接通过Properties获取参数文件;获取带有[section]的参数文件;原创 2020-11-20 16:34:36 · 626 阅读 · 4 评论 -
Nginx策略搭配Tomcat集群实操手册(二进制安装和Docker容器安装)
1. 方案一:二进制安装2. 方案二:docker安装3. Tomcat3.1. 安装改名:分配集群配置JAVA环境变量如果同一台主机部署多台Tomcat,修改server.xml:更改两个冲突端口:Server portConnector port3.2. 启动3.3. tomcat命令快捷使用往.bash_profile里面加路径就可以了3.4. 验证3.5. 监控页面4. Nginx修改nginx.conf后杀掉重启就可以了不需要重启tomcat。原创 2021-12-02 00:12:42 · 1503 阅读 · 2 评论 -
Keepalived搭配Nginx的高可用策略验证遇到的问题以及解决方案
1.1. 问题: nginx未起立1.1.1. 原因未./configure就安装1.2. 【精】执行./configure后没有生成MakeFile**1.2.1.**现象1.2.2. 原因发现 ./configure 有一条不显著的报错:configure: error: libnfnetlink headers missing1.2.3. 解决安装相关依赖yum install -y libnfnetlink-devel1.3. nginx: [emerg] bind()原创 2021-12-02 00:11:48 · 1656 阅读 · 0 评论 -
Keepalived搭配Nginx的高可用策略验证和实操
1. 高可用架构保障Nginx的稳定,主Nginx是否宕机。2. 启动集群Tomcat/e3base/tomcat/bin/startup.sh3. 安装备份节点Nginx备份的Nginx节点为e3base04,主节点为e3base03。PS(make install 是默认安装到root用户路径下面:/usr/local/nginx,修改的配置文件也在这个下面修改才有作用)。4. 安装KeepAlive安装在/usr/local目录下4.1. 改名4.2../config原创 2021-12-02 00:10:25 · 644 阅读 · 0 评论 -
大数据生态(十)集成部署遭遇问题(提前、zk、hdfs)汇总
目录1 .bash_profile和/etc/profile 问题说明 问题解答 现象说明 原因说明 解决 操作 2 赋权问题 2.1 e3base应用目录权限 原因 解决方案 2.2 SSH互联失败 原因 解决方案 3 Zookeeper 启动问题 3.1 Log目录错误 原因 解决方案 3.2 zookeeper启动成功,关联集群失败 现象 原因 解决方案 成果 hadoop运行失败 4 Hadoop启动问题 4.1 配置文件问题 说明 原因 解原创 2021-11-17 18:05:18 · 2576 阅读 · 0 评论 -
大数据生态(五)SSH免密登陆
1启动SSH服务Linux自带SSH服务无需下载:在/usr/sbin/有一个文件为sshd,然后输入绝对路径usr/sbin/sshd即可开启ssh服务。然后输入命令netstat -tunlp|grep sshd查看开启情况:可以看到22号端口已经开启,证明我们SSH服务启动成功,22是SSH的默认端口号。2生成密钥对· 下载git;· 我们注意到免密登陆实际上是采用密钥登陆,方便验证,我们采用将真机(windows)生成密钥,发送公钥给虚拟机· 在windows的git(cmd也可以原创 2021-11-16 20:02:18 · 1904 阅读 · 0 评论 -
大数据生态(四)集群部署提前准备
目录文档方法无法永久关闭集群防火墙 查看防火墙状态 临时关闭防火墙 永久关闭 禁用透明页面压缩(Transparent Huge Pages),无效 原因 更改主机名 修改主机名 将主机名和ip绑定在一起 检测 创建群组和用户 设置ulimit参数 创建hadoop-hdfs目录 创建e3-info目录 .bash_profile配置 查看端口占用情况 时间同步问题 查看时间 同步时间 修改时区 安装ntpdate 关于e3base目录 文档方法无法永久关闭集群原创 2021-11-16 19:58:49 · 951 阅读 · 0 评论 -
大数据生态(三)二进制安装JDK和MySql
二进制安装JDK卸载自带的OpenJDKrpm -qa | grep java rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.252.b09-2.el7_8.x86_64 解压安装jdk到指定目录下ftp传输文件压缩包;tar -zxvf exmple.tar.gz解压安装即可配置java环境路径JAVA_HOME 你jdk安装路径即可vim /etc/profile #java environment export原创 2021-11-16 19:48:35 · 437 阅读 · 0 评论 -
自定义类加载器和双亲委托机制
类加载器简述类加载器继承加载类路径(引导)Bootstrap ClassLoader%JAVA_HOME%\jre\lib\下的jar(jre核心库)(扩展)ExtClassLoaderextends URLClassLoader%JAVA_HOME%\jre\lib\ext目录下的jar(应用)AppClassLoaderextends URLClassLoader加载当前引用的classpath的所有类*Bootstrap ClassLoader是由原创 2021-11-11 19:12:38 · 563 阅读 · 0 评论 -
鉴权kafka生产端(SCRAM)
前言kafka官网关于sasl_scram鉴权Kafka消费端配置创建SCRAM Credentials依赖zk,需要先启动zk,然后在zk中创建存储SCRAM 凭证:cd kafkacluster/kafka_2.11-1.1.1bin/kafka-configs.sh --zookeeper zkIP1:2181,zkIP2:2181,zkIP3:2181/lxgkafka --alter --add-config 'SCRAM-SHA-256=[password=admin-secr原创 2021-10-27 17:45:51 · 2354 阅读 · 0 评论 -
FlinkSQL动态语法验证器提取
前言本文编写2021.2.25从官网的资料来看,DDL数据源到运行流程如下:图片来源官网那么关于建立动态表后,执行的FlinkSQL语句的语法是否正确,我们应当在Planning中进行。生产消费者FlinkSQL使用DDL创建Kafka生产和消费者Git项目的SQL语句语法校验缺点:无上下文环境,单纯的语法校验。https://github.com/zhp8341/flink-streaming-platform-web关于该部分代码:https://www.jianshu.com原创 2021-09-28 16:38:19 · 880 阅读 · 0 评论 -
ES的简单查询使用和DSL
前言ES概念和安装使用及中文分词器(Windows)基本使用索引名称不能有大写字母索引名是唯一的,不能重复,重复创建会出错索引(DB)查询 ES 实例中现有的所有索引GET _cat/indices创建索引PUT /cbry查询新创建的索引可自行配置特定的分词器。GET /cbry删除索引DELETE /cbry TypeType在7.x版本后已经没有了: PUT /cbry/_doc/1 { "username": "es"原创 2021-09-24 15:52:31 · 725 阅读 · 0 评论 -
ES概念和安装使用及中文分词器(Windows)
准备介绍一下本机实验环境:jdk 8 安装(java语言开发),无关紧要;node.js安装 -> npm -v安装,之前安装过:参考VUE脚手架:VUE的路由使用说明和基于Hbuilder-x的环境部署及相关问题解决方案。前言Solr(读作“solar”)是Apache Lucene项目的开源企业搜索平台。Lucene只是一个框架。Solr在传统搜索中优于ES,其支持格式更多,功能更多,毕竟一个2004年一个2010诞生的。但是在实时建立索引的时候,solr会产生IO阻塞,故而ES更适原创 2021-09-23 19:31:47 · 1449 阅读 · 0 评论 -
FlinkSQL自定义函数(UDF)维表转换
前言Table和SQL的关系:SQL是Table的继承封装(这点在Flink的概念有所体现),比如说:StreamTableEnvironment继承自TableEnvironment便可体现出来。故官文中Table的使用均可在SQL中体现出来,比如说自定义函数,Table API & SQL下的自定义函数中只给出了Table方式的TableEnvironment 创建自定义函数,我们可以修改为ste对象实现在SQL中。应用场景利用FlinkSQL进行Redis维表信息转换。redis获原创 2021-09-07 13:49:36 · 1120 阅读 · 1 评论 -
字符串三种方式切割:split、substring、StringTokenizer
前言在进行JSON数据采集的时候,对于单个节点数据,可能存在多个分隔符分隔数据。那么对于数据1,2,3|4,5,6我们需要依据分隔符的来进行分割切分。有三种方法:String.split方法StringToken方法subString拼接方法split存在的问题split方法本质上是使用正则表达式来进行切割的,所以我们在使用他的时候对于像:|这种转义字符进行切割的时候就出现问题了:String str = "1|6|9";System.err.println( Arrays.toSt原创 2021-09-05 14:48:48 · 25173 阅读 · 2 评论 -
临头一砖——代理服务器Nginx
前言不讲虚头八脑的东西,我们来看一下Nginx服务器能干什么?反向代理负载均衡动静分离反向代理注意看图的蓝色背景部分框起来的。了解反向代理前先理解一下正向代理:简单的说就是多个客户机对应一个代理服务器(在本地局域网),对应一个云端服务器。中间的代理(Proxy)服务器负责转发到请求转发到公网(Intenet)。从某种意义上说,“客户端和正向代理服务器像是位于同一个局域网(LAN)”,就是学校内网机房的那种模式。这样的好处就是通过代理服务器访问Intenet,可以起到一个缓存作用以及防原创 2020-06-02 15:58:57 · 358 阅读 · 0 评论 -
设计模式——代理模式:JDK静态代理和动态代理的实例和实现
前言 代理模式,我们这里结合JAVA的静态代理和动态代理来说明,类比Spring AOP面向切面编程:增强消息,也是代理模式。 而我们的静态代理和动态代理,与(service)接口和(serviceImpl)接口实现类有什么区别呢?静态代理的概念与其在理解上类似,可以说静态代理是实现类的增强消息。而且,静态代理针对的是所以实现接口的实现类(通过向上转型实现)。静态代理实现简述 本质上是一接口一代理,对该接口的所有实现类进行"增强"(额外)操作: 如下例:human接口有两个实现类:m原创 2021-08-22 13:24:55 · 669 阅读 · 1 评论 -
Flink的状态及状态后端
前言使用Flink版本 1.13 , 该版本对状态有所改变,版本变化:删除 state.backend.async重新设计了状态后端的存储统一keyState的savePoint的存储格式为二进制FailureRateRestartBackoffTimeStrategy 允许比配置少重启一次支持未对齐检查点的重新调整:从未对齐检查点恢复的时候支持改变作业的并行度什么是状态? 对我们进行记住多个event的操作的时候,比如说窗口,那么我们称这种操作是有状态的,是需要缓存数据的。Fli原创 2021-08-06 11:00:36 · 2577 阅读 · 2 评论 -
Flink窗口详解和各示例使用
前言Flink版本:1.12.1将上面的数据类比于一个车流(带有一个值),如果你想获得所有车值的总和,那该怎么办呢?求和:不断的将数据相加,像聚合函数一样:Flink的常见算子和实例代码。 但是问题来了:实时数据流是不断的产生数据的,那么作为无界数据流,你永远不可能获得流的完整结果。也许你可以创建一个同样的求和数据流(无界)像这样:关于事件时间和水印与窗口的联合使用及其demo代码:Flink事件时间和水印详解小结Flink 内置了几种类型的窗口分配器,如下图所示:从大的类型来区分有:原创 2021-08-05 13:50:32 · 2090 阅读 · 0 评论 -
Flink事件时间和水印详解
前言Flink使用版本:1.12.1。 水印是一个标记的时间戳,是一个标记:意味着水印代表时间前的数据均已到达(人为的设定——开发人员可以控制延迟和完整性之间的权衡),这一点水印保障了乱序问题的解决(这很重要,特别是多分区kafka消费)。因为在流处理中,面对乱序问题,你不可能一直等待数据的到达而不去对数据进行操作(尤其像是聚合操作这类操作)。故此面对超时到达的数据你必须进行处理,如何判断超时数据——水印,你也可以设置一定的延迟时间。这两点(解决乱序;允许延迟)也是水印的主要功能。第二点通常与窗口一起原创 2021-08-04 11:45:54 · 5257 阅读 · 2 评论 -
Json万能匹配模板获取末端key+value数据
前言源码来自利用fastjson的:fastjson 解析无线层级json的所在级数及其key:value。本文进行实操记录以及分析说明和使用意见:最终解析的是所有的key:value形式。对于实际的多层级结构json的节点数据定位并不友善,建议采用jsonPath去定位获取:JSON串任意层级数据的获取:jsonpath。且jsonpath亦可解析出这种数据不过会多很多完整的父类层级的数据,需要筛选。源码 public static void parseJsonMap(Map.Entry<S原创 2021-07-23 17:54:29 · 614 阅读 · 0 评论 -
JSON串任意层级数据的获取:jsonpath
前言 使用背景:前端输入模板json串,使用ztree展示,用户构选节点,解析指定的四种格式JSON串数据(发送kafka)。 如何定位到选中的节点的数据呢?我们这里采用一个jsonpath来存储定位,jsonpath的选择有:1、fastjson;2、jaywayJsonPath。fastJsonfastJson也ok:官方JSONPath介绍fastjson 1.2.0之后的版本支持JSONPath。这是一个很强大的功能,可以在java框架中当作对象查询语言(OQL)来使用。原创 2021-07-23 17:45:25 · 4437 阅读 · 2 评论 -
Flink详解Exactly-Once机制
前言 通常情况下,流式计算系统都会为用户提供指定数据处理的可靠模式功能,用来表明在实际生产运行中会对数据处理做哪些保障。一般来说,流处理引擎通常为用户的应用程序提供三种数据处理语义:最多一次、至少一次和精确一次。最多一次(At-most-Once):用户的数据只会被处理一次,不管成功还是失败,不会重试也不会重发。至少一次(At-least-Once):系统会保证数据或事件至少被处理一次。如果中间发生错误或者丢失,那么会从源头重新发送一条然后进入处理系统,所以同一个事件或者消息会被处理多次。原创 2021-06-29 23:47:43 · 2763 阅读 · 5 评论 -
clickHouse基础操作入门
文章目录简介行列式存储官网测试链接数据类型整型浮点型布尔型字符串枚举类型数据组元组日期时间戳执行语句数据库操作库操作创建数据库表操作新建表新建MergeTree表新建复制表新增用例列插入查询用例修改用例删除用例分区查询分区信息删除分区复制分区数据清除分区的数据简介ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。ClickHouse不单单是一个数据库, 它是一个数据库管理系统。行列式存储这里有个概念:行式和列式存储。行式存储在磁盘中:张三 22 学生 李四 2原创 2021-06-03 19:42:12 · 1053 阅读 · 2 评论 -
ClickHouse集群部署
目录1. 环境数据 2. Tgz包准备 2.1. 查看系统版本信息 2.2. 下载相关安装包 2.3. 创建相关目录 2.4. 中转Jar包 2.5. 创建clickHouse目录 3. 解压安装 3.1. 解压 3.2. 安装 4. 配置文件修改 4.1. clickhouse-server 4.1.1. config.xml 5. 启动单节点 5.1. 启动clickhouse-server 5.1.1. 报错 5.1.2. 解决 5.2. 验证clickHouse是原创 2021-05-31 16:58:22 · 941 阅读 · 0 评论 -
Kafka集群搭建、基础概念及搭建问题解决参考方案
1. 概述1.1. Apache Kafka® 是 一个分布式流处理平台****流处理平台有以下三种特性:可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可以在流式记录产生时就进行处理。Kafka有四个核心的API:ProducerConsumerStreamsConnector2. Topics和日志Topic相当于传统消息系统MQ中的一个队列queueTopic 就是数据主题,是数据记录发布的地方,原创 2021-05-10 10:01:09 · 837 阅读 · 14 评论 -
Flink集群部署OnYarn模式
文章目录解压安装包修改配置用户环境变量修改flink-conf.yaml修改masters修改works修改zoo.cfg小虫子:访问不了web页面分发集群on yarn的运行方式单纯的yarn启动yarn session模式2021.3.8更新期待引入hadoopClasspathJAVA中shell工具类调用exe模式找不到环境变量解压安装包tar -zxvf flink-1.12.1-bin-scala_2.11.tgz修改配置用户环境变量vim ~/.bash_profileexpor原创 2021-03-22 11:15:44 · 1537 阅读 · 0 评论 -
鉴权Kafka消费端配置
前言在实际使用Kafka消费的时候我们往往会遇到加密的Kafka集群。消费者创建Kafka配置文件(1)创建 config/client-sasl.properties 文件cd /app/kafka_2.11-1.1.1vi config/client-sasl.propertiessecurity.protocol=SASL_PLAINTEXTsasl.mechanism=SCRAM-SHA-256(2)根据指定账号创建生产命令( conf文件+sh文件 )配置conf原创 2021-03-22 10:43:50 · 2267 阅读 · 0 评论 -
dubbo分布式服务器部署
文章目录前言Maven 打包Maven建立外部依赖目录Maven打成不含依赖的Jar未指定main函数带依赖的包(舍弃)不含依赖的Jar运行Jar程序端口占用问题前言分为: maven打成不含依赖的jar包; 服务器上传项目需要的lib目录; 运行jar并指定外部依赖lib;Maven 打包Maven打包和遇到的问题在:Maven打包项目及其遇到的问题解决方案Maven打包错误找不到api依赖项目以及找不到符号Maven建立外部依赖目录在Maveb build命令中Goa原创 2021-03-12 15:40:49 · 746 阅读 · 0 评论 -
大数据生态(九)hadoop集群监控、维护和拓展
运行状态查看及操作1.1查看hadoop/bin/hdfs haadmin -getServiceState nn1hadoop/bin/hdfs haadmin -getServiceState nn21.2手动切换namenode状态hadoop/bin/hdfs haadmin -DFSHAadmin -failover nn1 nn2hdfs haadmin -getServiceState nn12 Hadoop维护2.1hdfs 是否进入安全模式检查hdfs dfsadmi原创 2021-02-04 17:21:38 · 689 阅读 · 0 评论 -
大数据生态(八)hadoop、zk集群启停操作
ZOOKEEPER1.1 启动登陆zookeeper集群中每台主机启动zookeeper,【这里用root演示】命令:/e3base/zookeeper/bin/zkServer.sh start1.2 查看启动后可以使用查看zookeeper进程状态,命令:/e3base/zookeeper/bin/zkServer.sh status1.3 测试可使用客户端命令进行测试,是否zookeeper启动正常,命令【这里用用户e3base05演示】:/e3base/zookeeper/bi原创 2021-02-04 17:01:44 · 990 阅读 · 1 评论 -
大数据生态(七)Hadoop集群HA安装
文章目录1 解压安装到e3base下面2 改名实现截图3 创建$E3_INFO_HOME/hadoop目录4 用户环境变量配置5 修改配置文件5.1修改hadoop-env.sh文件5.2修改core-site.xml文件5.3修改hdfs-site.xml文件5.3.1修改对应的管理节点主机名5.3.2 nn和jn路径5.3.3 存放硬盘数据目录5.3.4 namenode节点6 slaves文件配置7 机架感知配置1 解压安装到e3base下面 前面安装过到默认文件目录下,现在进行移动操作:mv原创 2021-02-03 15:23:40 · 338 阅读 · 1 评论 -
Hadoop单节点部署
前言 去年六月份已经搭过集群模式hadoop生态HA集群,为何如今又要编写这篇单节点的文章?因为环境总是会变化的,集群搭起来也是较为耗费时间,且作为一个生态是环环相扣:比如说:hadoop的HA集群,总得先搭建ZK的集群吧。 作为测试,我们大可不必每个环境搭建一次,故有此文,以此记录不想搭集群的测试方式。安装改名tar -zxvf /xxx/tars/hadoop-2.6.0-cdh5.14.0-e3base3.0.0.tar.gz -C /xxx/software/mv hadoop-2.6原创 2021-02-03 15:05:12 · 497 阅读 · 0 评论 -
Flink 三种数据流分流(推荐旁路分流)
前言 近来,因为flink版本的漏洞:CVE—2020—17519#Apache,官方进行了1.12大版本更新,并说到:我们强烈建议所有用户升级到Flink 1.12.1。然后我就发现了Remove deprecated DataStream#split。文中介绍的split方法已经被舍弃(移除),官方推荐使用Side Outputs(旁路分流)。但是我还是保留了该部分代码,一方面是flink的演变的变化,另外一方面写也写了(删了多不好[< _<])。 所以目前flink 1.12.1只原创 2021-02-02 11:00:49 · 4366 阅读 · 7 评论 -
大数据生态(二)vmware虚拟机设置静态IP
设置静态IP首先一般虚拟机使用的是真机的网络Step one:Step two:记住你NAT模式的子网ip:192.168.106.0;nat设置里面:网关ip:192.168.106.2Step three记录下信息后,进入设置网卡配置文件先进入 cd /etc/sysconfig/network-scripts/查看网卡名称:ifcfg-ens33对配置文件进行修改操作:建议先用cd cp命令备份;vi /etc/sysconfig/network-scripts/ifc原创 2021-01-13 11:14:30 · 247 阅读 · 0 评论 -
大数据生态(一)vmware虚拟机安装(RedHat)
前言虚拟机安装系统,首先你需要一个镜像文件。以VMBOX为例,新建一个虚拟机,傻瓜式直接操作。分配内存的时候稍微多分配点一个GB(1024)就好,免得无法加载图形界面。后续傻瓜式操作。引入镜像直接启动失败,那不是肯定的吗?镜像文件都没配置,右键虚拟机设置:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传选择你的镜像文件即可。注意:安装选项选好:你需要什么样功能的系统?以及联网。尤其发现到软件选择的最小安装是默认选项。如果体验建议点进去选择合适的图形系统。如果搭建集群学习使用还原创 2021-01-13 10:46:58 · 584 阅读 · 0 评论