自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tom_fans的博客

大数据架构运维开发

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

原创 Harbor/Docker: x509: certificate signed by unknown authority

完成Harbor安装之后,我们使用docker login/push/pull去与Harbor打交道,上传下载镜像等。 但是发现出现x509: certificate signed by unknown authority之类的错误。[root@test01 harbor.dev]# docker login harbor.devAuthenticating with existing credentials...Login did not succeed, error: Error respon

2020-07-27 20:20:58 22544 2

原创 Harbor高可用方案

Harbor高可用官方只提供了一种,就是harbor服务器之间通过同步的镜像的方式。比如harbor A有新的image会自动同步给harbor B,在harbor B上传的镜像也同样会同步给harbor A.这种方式在底层数据库及存储是相互独立的,只是把docker image同步过去。除了镜像同步,harbor还可以使用共享数据库及存储的方式同步。今天主要来说一下通过镜像同步的方式,harbor安装普通安装一样,2台安装好之后,设置仓库管理及复制管理,然后随便在一台harbor上传镜像,另外一台

2020-07-24 11:01:57 1409

原创 Harbor单机安装

官方文档:https://goharbor.io/docs/2.0.0/install-config/installation-prereqs/1. 下载Harbor, 并解压缩https://github.com/goharbor/harbor/releases/download/v1.10.4/harbor-offline-installer-v1.10.4.tgz2. ssl配置这一步尽量作,因为我之前不配置ssl发现无法启动harbor,根据官方文档配置即可。整体的步骤为生成

2020-07-24 04:43:54 702

原创 kubeadm安装Kubernetes,kubernetes-dashboard

在安装之前,先看一下官方的kubernetes架构图。Stacked etcd topologyExternal etcd topology区别仅仅是etcd是否集成在master node,还是单独安装。前者为叠加模式,后者为external etcd模式。那么这2者什么区别呢? 按照官方的描述,集成模式etcd只和同一台机器的apiserver, controller-mananger, scheduler沟通,仅仅就是这个区别。etcd的高可用模式原理是一台leader,多个f

2020-07-07 04:03:19 926

原创 Docker与flannel

docker默认采用的是端口映射的方式来让外部访问,比如你启动一个MySQL,在container内部会有一个虚拟ip,默认是172.17之类的网段,宿主机可以ping通这个ip地址,但是除了宿主机能访问这个虚拟网段,其他任何机器(不管是否docker还是非docker)都无法访问,这个很容易理解,因为这个网段的ip本身就是虚拟出来的。因此要访问docker容器的方式采用的是端口映射,通过虚拟ip网段和宿主机映射端口,你直接访问宿主机的端口就可以了。比如:e91703882bd0 .

2020-07-03 02:47:01 495 2

原创 kubernetes etcd ssl安装

etcd是一个类似于ZK的玩意,用来给分布式系统存储key-value数据,官方给了明确的定义:etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines. It gracefully handles leader

2020-07-02 10:24:31 476

原创 Docker MySQL

1. Dockerfile#Version: 0.0.1FROM os/centosMAINTAINER jialong wang "[email protected]"RUN yum remove -y mysqlRUN groupadd mysqlRUN useradd -g mysql mysqlRUN yum install -y http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmRUN yum

2020-06-22 09:33:14 204

原创 Flink keyed State

Flink做sum, reduce等聚合的时候,我们一般直接使用Flink自带的sum, reduce来完成,有的需求需要自己写代码来完成。这其中的原理就是keyed state. 具体 可以参考:https://ci.apache.org/projects/flink/flink-docs-release-1.10/zh/dev/stream/state/state.html所以keyed state就是状态的意思,根据key做分区,每次计算的值要做记录,这样下次可以在这个 值的基础上做累加,.

2020-06-16 05:31:01 319

原创 Flink DataStream window/join

join操作一定是根据窗口来进行的,这一点很容易理解,如果没有窗口的概念 ,JOIN的规则应该怎么算?此处简单起见,使用processTime来处理。import org.apache.flink.api.common.functions.FilterFunction;import org.apache.flink.api.common.functions.JoinFunction;import org.apache.flink.api.common.functions.MapFunction;

2020-06-15 04:19:32 277

原创 实时数仓的概念及实现方式

目前企业数据架构基本也就包含3种模式,离线数仓,实时数仓,实时流。 离线数仓没有任何歧义,实时数仓和实时流之前有什么区别呢?从技术实现上,实时数仓肯定可以通过实时流来实现的,那么为什么会把这2种东西做一个区分. 在概念上,数据主题和指标会有很多,通常离线做一套,实时也会做一套,保证有些指标能实时的出数据,这部分实际上是更多的倾向报表类型,比如公司的大屏展示,而很多业务系统也需要实时的计算数据,不仅仅是报表,这部分的计算相比实时流会更复杂,会涉及到比较复杂的多表关联的问题。比如计算每种产品销售量或者销售额

2020-06-14 14:37:56 1697

原创 Flink DataSet获取变量的4种方式

1. 通过广播变量获取import org.apache.flink.api.common.functions.RichFlatMapFunction;import org.apache.flink.api.java.DataSet;import org.apache.flink.api.java.ExecutionEnvironment;import org.apache.flink.configuration.Configuration;import org.apache.flink.u

2020-06-11 15:56:40 959

原创 Flink waterMark

import org.apache.flink.api.common.functions.FoldFunction;import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.streaming.api.TimeCharacteristic;import org.apache.flink.streaming.

2020-06-11 14:27:22 152

原创 Flink SQL

import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.common.typeinfo.BasicTypeInfo;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.api.java.typeutils.RowTypeInfo;import org.apache.flink.streaming.a.

2020-06-10 04:58:14 418

原创 Flink JDBCOutputFormat

从数据库查询,或者插入到数据库,使用自带的JDBCOutputFormat。import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.api.common.typeinfo.BasicTypeInfo;import org.apache.flink.api.java.DataSet;import org.apache.flink.api.java.ExecutionEnvironment;

2020-06-10 02:00:56 1780

原创 Kafka-connect JDBC Source Connector

kafka-connect在连接MySQL的时候可以看上一篇的文章,通过https://debezium.io 开发的MySQL connector jar来抽取MySQL binlog. 但是对于像ORACLE, SQL SERVER等数据库,没有一个很好的开源JAR来处理,https://debezium.io公司也开发了相关的数据库的JAR,有些还在开发当中,有些操作非常复杂,我也没有去...

2020-04-03 18:32:16 1686

原创 kafka-connect实时流的应用

在实际的实时流开发当中,数据库的日志实时变化获取占了很大一部分。一般使用canal或者maxwell接入binglog,但是canal和maxwell很难按需接入,也就是说按照数据库或者按照单个表来接入。这些配置在启动canal或者maxwell之前就在配置文件配置好的,后期修改还需要增加配置再重新启动,这在生产业务中不太合适。 kafka-connect可以根据业务按需来接入,比如你需要test...

2020-03-27 18:08:21 777

原创 Spark使用log4j记录日志,并在Yarn WebUi显示

spark on yarn在执行的时候,开发人员通常希望能够单独使用log4j来记录自己的日志。一般来说当我们使用System.out.println的时候,日志会输出在stdout,而且其他的日志会显示在stderr里面。那么如何使用log4j记录日志并显示在自己的日志文件中,并在Yarn WebUI呢?我们使用spark默认自带的pi程序来作为例子。/data/spark-2.4.3...

2020-03-26 18:22:51 1182

原创 Hue 查询kerberos HBase: failed authentication to hbase

CDH集群并开启了kerberos,最近要打开Hue查询HBASE的功能,打开之后发现HUE右上角报错:failed authentication to hbase. 查询hue管理界面检查配置发现hbase browser错误之类的。参考网上,基本没有任何一篇文章给出完全正确或者清晰的答案,都是涉及了一部分。 因此做个记录:通过CM修改配置如下:1.hbase.regionse...

2020-03-17 13:23:39 752 1

原创 Flink 同步Kafka数据,压缩并存储到HDFS

此文章只是做一个记录,获取数据同步到HDFS比较简单,官网有完整的代码,主要是如下:DataStream<Tuple2<IntWritable,Text>> input = ...;BucketingSink<Tuple2<IntWritable,Text>> sink = new BucketingSink<Tuple2<In...

2019-08-21 16:09:23 2474

原创 Cloudera Impala RPM安装

官方文档地址,建议通读以下2篇文章:https://www.cloudera.com/documentation/enterprise/5-6-x/topics/impala_noncm_installation.htmlhttps://www.cloudera.com/documentation/enterprise/5-6-x/topics/impala_config_options....

2019-05-01 16:48:09 1892 1

原创 Hadoop NameNode HA fencing

请先参阅官方文档:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html主要原理是使用journal log,当主namenode增加修改元数据之后,会把log同步给journal ,然后再传给standby namenode,以达到元数据一致性。...

2019-04-29 16:48:26 635

原创 Hadoop Native Librarys及GLIBC升级

[hdfs@tsczbddbprd3 ~]$ /data/hadoop/bin/hadoop checknative -a19/04/28 01:28:56 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where ...

2019-04-28 02:25:02 471

原创 canal发送数据到kafka

1. canal安装官方文档:https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart版本: canal 1.1.3 , JDK 1.8+ ,MySQL 5.7软件下载之后解压缩,有2个配置文件需要更改:canal.propertiesexample/instance.properties再...

2019-04-18 23:37:30 11435 19

原创 CDH Hive on Tez

1. 编译Tez框架环境准备Replace x.y.z with the tez release number that you are using. E.g. 0.5.0. For Tez versions 0.8.3 and higher, Tez needs Apache Hadoop to be of version 2.6.0 or higher. For Tez version ...

2019-04-15 17:17:53 1741 1

原创 Flink web.upload.dir

好像很少有人谈论这个参数,基本被忽略了,这个参数是Flink少数不能设置为HDFS的参数,默认的web.upload.dir是在web.tmpdir目录下。以下是官方给出的2个参数的含义:web.tmpdirSystem.getProperty("java.io.tmpdir") Flink web directory which is used by the webmonitor.we...

2019-04-13 14:28:34 2846

原创 Flink on Yarn部署

1.Flink 编译这部分官方文档已经描述的很清楚,先下载源代码,再进行编译,直接下载二进制的不一定能符合你的需求。git clone https://github.com/apache/flinkmvn clean install -DskipTests -Pvendor-repos -Dhadoop.version=2.6.0-cdh5.10.2等待大概20分钟左右,编译完成...

2019-04-12 20:37:50 2585

原创 Hive LDAP身份认证及Sentry权限配置

参考文档:https://www.cloudera.com/documentation/enterprise/5-10-x/topics/cdh_sg_hiveserver2_security.html#topic_9_1CDH5.7之后HIVE同时支持kerberos和LDAP 2种认证,带来的好处毋庸置疑. Kerberos负责集群的安全性,LDAP使用用户和密码给HIVE, IMPALA...

2019-04-11 09:10:45 4673

原创 beeline Kerberos: unsupported key type found the default TGT: 18

新的环境Kerberos设置好之后,通过JAVA代码使用JDBC测试连接HIVE, IMPALA都不存在问题,但是使用beeline连接HIVE却报错。下面beeline中的principal=hive/[email protected]是指HIVE的主机的kerberos用户export HADOOP_OPTS="-Dsun.securit...

2019-04-10 22:58:14 2493

原创 Hive JDBC

Hive通过第三方软件,或者JAVA直接JDBC连接,会依赖很多包,很多文档也并没有介绍清楚需要什么包,这里我参考Cloudera给出的一个方案,非常简单。官方地址:https://www.cloudera.com/documentation/enterprise/5-10-x/topics/cdh_ig_hive_jdbc_install.htmlyum install hive-jd...

2019-04-10 14:02:19 178

原创 CDH开启Kerberos

参考官方文档:https://www.cloudera.com/documentation/enterprise/5-10-x/topics/cm_sg_authentication.html开启kerberos之前,需要完成几个前提工作::1.所有的CDH主机需要安装KDC客户端: krb5-workstation,krb5-libs2. JCE Policy :参考官方文档:ht...

2019-04-09 23:24:41 583

原创 MIT Kerberos安装

安装可以编译源代码或者通过yum直接安装,主要是3个包:yum install krb5-server krb5-libs krb5-workstationkerberos主要包含如下配置文件:krb5.confkdc.confacl_filekey_stash_filedatabase_name(数据库文件)软件安装完成之后,接下来就是配置,krb5, kdc....

2019-04-09 16:16:28 4477

原创 azkaban调度器

1. azkaban源码编译这个部分比较简单,根据官方文档的命令编译即可,大概需要20分钟编译时间。# Build Azkaban./gradlew build# Clean the build./gradlew clean# Build and install distributions./gradlew installDist# Run tests./gradle...

2019-04-03 17:21:49 454

原创 数据仓库JOB血缘关系及调度器设计

上2篇文章主要谈的是通过atlas来展示表与表的元数据管理,仓库中还有一个极其重要的就是分布式调度器。从我对调度器的认知,大概有以下3种类型调度器:1. 按照线来跑JOB,对于JOB之间的多级交叉依赖无能为力,比如OOZIE 2. 按层来执行JOB,把JOB分层,一层一层跑,这种通常是自己开发 3. 根据JOB依赖关系来跑,通常也是自己开发。以上3种调度器第三种当然是最好的,根据依赖自动跑对应...

2019-02-26 16:08:23 3179

原创 Apache atlas sqoop Hook无法显示的问题

上一篇完成了HIVE的元数据管理,atlas还能够支持SQOOP, HBASE, KAFKA, STORM的元数据,但是按照官方文档配置之后发现SQOOP的元数据并没有任何显示,也没有任何报错。SQOOP日志如图,最后一红圈就是问题所在:从上图可以看到,SQOOP HOOK是起作用了的,但是数据没见进atlas,也没有任何报错,百度,GOOGLE查询类似的信息,发现论坛只有几篇文章提到...

2019-01-03 23:01:42 2537 12

原创 Apache atlas集成CDH管理元数据

先简单说明一下元数据管理的重要性,做数仓的时候,自然就会有很多报表,当你有几百个报表,几千张表的时候,现在有个需求需要修改一个表,然后有人问你,修改这个表会影响哪些报表? 如果你仅仅凭借记忆是完全不可行的,必须要有一个平台来管理数据的数据。知道了元数据的意义,那么从技术角度要做到什么程度才算是一个好的元数据管理呢? 从我个人的认知,表的元数据必须做到字段级别,也就是说修改了一个字段,你查询元数...

2019-01-01 04:29:53 13797 37

原创 Spark (null) entry in command string: null chmod 0700

使用ecplise来提交SPARK SQL的时候报错:Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.io.IOException: (null) entry in command string: null chmod 0700 C:\Use...

2018-12-27 12:29:37 2654

原创 CDH Disable kerberos

搜索每个服务是否有Kerberos,然后选择simple,重启服务会有几个错误:1. 之前HDFS的http端口改变为了小于1024,因此无法启动了,需要还原为原来的50007之类的端口。2. HBASE启动会报错,因为默认/hbase目录在ZK的权限为:[zk: localhost:2181(CONNECTED) 13] getAcl /hbase'world,'anyone:...

2018-12-25 13:14:45 372

原创 Hive/Impala/Hbase/Spark Kerberos

使用hadoop Kerberos有几个地方需要注意,避免真实环境老是有问题:1. 我以前使用IP地址构建集群(虽然也用了DNS解析),但是有时候你直接通过主机名+DNS解析来做集群,这2者从我实际测试来看是有区别的,使用IP没有任何问题,但是使用DNS解析,开启kerberos总是会有些许问题,因此如果使用DNS解析,建议客户端连接kerberos的主机把集群的IP和主机名写入/etc/ho...

2018-12-25 10:11:05 795

原创 sqoop 连接ORACLE connection reset

生产环境的sqoop去抽取oracle数据库, 不定期就会有些JOB显示错误connection reset. 查看SQOOP官方文档,链接地址:https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_oracle_connection_reset_errors说是因为JDBC加密获取随机数导致时间超时。提示SQOOP在抽取时添加...

2018-12-18 10:26:13 2064

原创 ecplise提交JOB到spark on yarn/standalone

以前我通常是把scala或者java程序打包,这样在发布的时候可以结合传统运维的jekins发布规则,只需要运维手动点击发布即可,不需要每次手动发布。最近我手动使用ecplise来提交JOB,碰到一些问题做个记录:1. ecplise提交JOB到spark on yarn下面是一个很简单的程序,统计a.sql行数public class App { public static ...

2018-12-18 09:02:57 390

空空如也

空空如也

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

TA关注的人

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