Flink SQL Clien读取Kafka数据写入Hive
Flink SQL Clien读取Kafka数据写入Hive
版本说明:
Flink 1.11.1
Kafka 2.4.0
Hive 2.3.6
Hadoop 2.7.3
详细步骤:
准备相关jar包
hive-exec-2.3.6.jar
hive-metastore-2.3.6.
libfb303-0.9.3.jarjar
kafka-clients-2.4.0.jar
flink-sql-connector-hive-2.3.6_2.11-1.11.1.jar
flink-sql-connector-kafka_2.11-1.11.1.jar
flink-shaded-hadoop2-uber-2.7.5-1.8.3.jar
修改配置文件
修改$FLINK_HOME/conf/sql-client-defaults.yaml,主要修改两个地方:
catalogs:
- name: myhive
type: hive
hive-conf-dir: /vm_data/apps/apache-hive-2.3.6-bin/conf
default-database: default
execution:
current-catalog: myhive
修改$FLINK_HOME/bin/start-cluster.sh,加入Hadoop Classpath:
export HADOOP_CLASSTHPATH=`hadoop classthpath`
修改$HIVE_HOME/conf/hive-site.xml
hive.metastore.uris
thrift://hadoop000:9083
启动Flink SQL Client
需要先启动Flink Standalone集群
$FLINK_HOME/bin/start-cluster.sh
$FLINK_HOME/bin/sql-client.sh embedded
在Flink SQL Client中创建Hive表,指定数据源为Kafka
在配置文件中配置了默认为default库
CREATE TABLE student(
id INT,
name STRING,
password STRING,
age INT,
ts BIGINT,
eventTime AS TO_TIMESTAMP(FROM_UNIXTIME(ts / 1000, 'yyyy-MM-dd HH:mm:ss')), -- 事件时间
WATERMARK FOR eventTime AS eventTime - INTERVAL '10' SECOND -- 水印
) WITH (
'connector.type' = 'kafka',
'connector.version' = 'universal', -- 指定Kafka连接器版本,不能为2.4.0,必须为universal,否则会报错
'connector.topic' = 'student', -- 指定消费的topic
'connector.startup-mode' = 'latest-offset', -- 指定起始offset位置
'connector.properties.zookeeper.connect' = 'hadoop000:2181',
'connector.properties.bootstrap.servers' = 'hadooop000:9092',
'connector.properties.group.id' = 'student_1',
'format.type' = 'json',
'format.derive-schema' = 'true', -- 由表schema自动推导解析JSON
'update-mode' = 'append'
);
启动Kafka,发送数据
$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list hadoop000:9092 --topic student
{"id":12, "name":"kevin", "password":"wong", "age":22, "ts":1603769073}
通过Flink SQL Client查询表中的数据
select * from student
Flink SQL Clien读取Kafka数据写入Hive相关教程
SQL中求字段的众数和中位数
SQL中求字段的众数和中位数 两种方法 SELECT name ,count(1) a from db001.table001 group by name having count(1) = all( select count(1) from table001 group by name );SELECT name ,count(1) a from db001.table001 group by name having count(1)= (se
php代码审计之SQL注入1
php代码审计之SQL注入1 ** ** sql注入产生的原因: 程序开发过程中不注意规范书写sq|语句和对特殊字符进行过滤,导致客户端可以通过全局变量POST和GET提交一些sq|语句正常执行. 条件: 可控制用户数据的输入; 原程序要执行的代码,拼接了用户输入的数据 危害: S
sqli-labs注入环境搭建详细教程
sqli-labs注入环境搭建详细教程 Sqli-libs是一个非常好的SQL注入学习实战平台,涵盖了报错注入、盲注、Update注入、Insert注入、Heather注入、二阶注入、绕过WAF,比较全面的一个注入平台。本次在phpstudy环境上部署sqli-labs 注入平台。 工具/原料 sqli-labs
sqli-labs:Less 11~20 通关详解
sqli-labs:Less 11~20 通关详解 看到登录框,先使用弱口令进行尝试,登录成功 输入单引号尝试引起报错 猜测后台语句为: select * from where username=‘username’ and password=’$password’ 接下来使用布尔注入,这里使用or 1=1永真句可以将所有查找结果
linux yum安装mysql,超简单
linux yum安装mysql,超简单 检查是否已经安装过mysql,执行命令: rpm -qa | grep mysql 2. 从官网下载是用于Linux的Mysql安装包: wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 执行就可以直接yum安装了: yum -y inst
windows安装mysql5.7
windows安装mysql5.7 windows安装mysql5.7 下载地址 变量名: MYSQL_HOME 变量值: Z:\MySQL\mysql-5.7.29 path里添加: %MYSQL_HOME%\bin 在mysql-5.7.29目录下创建“data”文件夹和“my.ini”文件 编辑“my.ini”文件内容如下(注意修改basedir,datadir的
CentOS 7.4下安装JDK8以及mysql5.6环境的安装 | yum安装 | mysql
CentOS 7.4下安装JDK8以及mysql5.6环境的安装 | yum安装 | mysql的远程连接 本次实验用到的系统是华为云CentOS 7.4 64bit 由于系统自带了yum的包,所以就直接用yum来安装也算是比较容易的傻瓜式安装了 (1)首先进入linux系统下,装jdk8 命令如下(想看ubantu
SQL语句入门-查询语句(SELECT)
SQL语句入门-查询语句(SELECT) SQL-SELECT 文章目录 SQL-SELECT 语法 实例 本文讲讲关于建立数据库表结构的SELECT语句,我用的postgreSQL来实现,其他的应该大同小异,主要是了解SQL语句 Select语句是用来执行查询操作的语句,说简单其实也简单,说难也难,