1.在使用frp进行内网穿透的基础上,在内网机器的frpc.ini配置中添加
1 | [web] |
启动
1 | ./frpc -c frpc.ini |
2.在内网机器上启动ss-server
修改配置/etc/shadow$ocks-libev/config.json,必须是0.0.0.0
1 | { |
启动
1 | ss-server -c /etc/shadow$ocks-libev/config.json |
3.配置代理
1.在使用frp进行内网穿透的基础上,在内网机器的frpc.ini配置中添加
1 | [web] |
启动
1 | ./frpc -c frpc.ini |
2.在内网机器上启动ss-server
修改配置/etc/shadow$ocks-libev/config.json,必须是0.0.0.0
1 | { |
启动
1 | ss-server -c /etc/shadow$ocks-libev/config.json |
3.配置代理
1.前提:1台有公网ip的服务器(1核1G),1台在内网的服务器(16G)
2.在公网机器上安装frp,并启动frp server
下载并解压
1 | wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz |
配置文件frps.ini
1 | [common] |
其中bind_port是用于和client端通信的;token是密码;vhost_http_port是当client端配置了web http的服务的时候,通过server访问的端口;vhost_https_port是当client端配置了web https的服务的时候,通过server访问的端口
启动
1 | ./frps -c frps.ini |
Hive hook是hive的钩子函数,可以嵌入HQL执行的过程中运行,比如下面的这几种情况
参考
1 | https://www.slideshare.net/julingks/apache-hive-hooksminwookim130813 |
有了Hook,可以实现例如非法SQL拦截,SQL收集和审计等功能,业界的案例可以参考Airbnb的reair
1 | https://github.com/airbnb/reair |
该项目中就使用了Hive的hook函数实现了一个Audit Log Hook,将提交到hiveserver2上的query写入到MySQL当中收集起来
1 | https://github.com/airbnb/reair/blob/master/hive-hooks/src/main/java/com/airbnb/reair/hive/hooks/CliAuditLogHook.java |
Flink的kafka connector文档
1 | https://ci.apache.org/projects/flink/flink-docs-release-1.12/zh/dev/connectors/kafka.html |
Flink写入kafka时候需要实现序列化和反序列化
部分代码参考了
1 | https://github.com/apache/flink/blob/master/flink-end-to-end-tests/flink-streaming-kafka-test/src/main/java/org/apache/flink/streaming/kafka/test/KafkaExample.java |
以及
1 | https://juejin.im/post/5d844d11e51d4561e0516bbd |
1.依赖,其中
flink-java提供了flink的java api,包括dataset执行环境,format,一些算子
1 | https://github.com/apache/flink/tree/master/flink-java/src/main/java/org/apache/flink/api/java |
flink-streaming-java提供了flink的java streaming api,包括stream执行环境,一些算子
1 | https://github.com/apache/flink/tree/master/flink-streaming-java/src/main/java/org/apache/flink/streaming/api |
flink-connector-kafka提供了kafka的连接器
1 | https://github.com/apache/flink/tree/master/flink-connectors/flink-connector-kafka |
1 | <!-- log4j --> |
作为kafka consumer有几个比较重要的配置参数
Flink也和和spark-shell类似的交互式开发模式
1 | bin/start-scala-shell.sh yarn |
读文件
1 | scala> val dataSet = benv.readTextFile("hdfs://master:8020/user/lintong/logs/test/test.log") |
打印
1 | scala> dataSet.print() |
退出
1 | scala> :q |
参考Flink官方代码的example
1 | https://github.com/apache/flink/blob/master/flink-examples/flink-examples-streaming/src/main/java/org/apache/flink/streaming/examples/socket/SocketWindowWordCount.java |
参考Flink官方example
1 | https://github.com/apache/flink/blob/master/flink-examples/flink-examples-streaming/src/main/java/org/apache/flink/streaming/examples/wordcount/WordCount.java |
pom
1 | <!--flink--> |
代码
1 | package com.xxx.xx.flink; |
运行参数
可以使用CM提供的api查询cdh集群的信息
1 | http://cloudera.github.io/cm_api/ |
7.0.3的api文档
1 | https://archive.cloudera.com/cm7/7.0.3/generic/jar/cm_api/apidocs/index.html |
查询impala query的api
1 | https://archive.cloudera.com/cm7/7.0.3/generic/jar/cm_api/apidocs/json_ApiImpalaQuery.html |
比如
1 | https://xxxx:7180/api/v9/clusters/dev-cdh/services/impala/impalaQueries?from=2020-03-10T06:26:01.927Z |
支持的参数如图所示
查询yarn上query的api
1 | https://archive.cloudera.com/cm7/7.0.3/generic/jar/cm_api/apidocs/resource_YarnApplicationsResource.html |
比如
1 | https://xxxx:7180/api/v9/clusters/dev-cdh/services/yarn/yarnApplications |
支持的参数如图所示,和impala的一样