sqoop提交参数解析

/opt/cloudera/parcels/CDH/lib/sqoop/bin/sqoop import \ --connect jdbc:[mysql://ip:port/T_Cloud_Promote](mysql://ipport) \ --username rt_center \ --password pwd\ --query "select KeywordID,KeyType,Root,KeywordName,UID,Status,AddDate,UpdateDate,MigrateOID,PromotionStatus,WordType,IsEmphasis,KeywordLength,IsViolate,ViolateWord from T_Cloud_Promote.T_Cloud_User_KeywordLibrary where KeywordID < $[a+10000000] AND KeywordID >= ${a} AND AddDate != '0000-00-00 00:00:00' AND \$CONDITIONS" \ --fields-terminated-by '\001' \ --target-dir /tmp/t_cloud_order \ --delete-target-dir \ --hive-import \ --hive-database T_Cloud_Promote \ --hive-table ods_t_cloud_user_keywordlibraryb_tmp_01 \ --null-string '\\N' \ --null-non-string '\\N' \ --hive-drop-import-delims \ --num-mappers 5 \ --split-by KeywordID \ --hive-overwrite –connect mysql连接 –username 用户名 –password 密码 –query 条件查询语句 –fields-terminated-by 分隔符 –target-dir 临时存放位置 –delete-target-dir \ 程序结束删除文件夹 –hive-import \ 导入到hive –hive-database T_Cloud_Promote \ hive的数据库 –hive-table hive表 –null-string ‘\N’ \ –null-non-string ‘\N’ \ 转换为hive空 ...

2023年5月14日 · 1 分钟

spark提交参数

spark-submit --master yarn --conf spark.default.parallelism=100 \ --deploy-mode cluster --driver-memory 4G --executor-memory 4G \ --num-executors 40 --executor-cores 3 \ --conf spark.yarn.executor.memoryOverhead=5g \ --class com.lz.hbase.CompanyInfo /tmp/test_langzi/original-spark_hbase01-1.0-SNAPSHOT.jar \ --conf spark.dynamicAllocation.maxExecutors=40

2023年4月30日 · 1 分钟

Spark Thrift Server

文章目录 一、Spark Thrift Server 介绍 二、部署 Spark Thrift Server 三、Spark Thrift Server 的架构 四、Spark Thrift Server 如何执行 SQL 五、和 HiveServer2 的区别 Spark Thrift Server 的优点 Spark Thrift Server 的缺点 六、结论 一、Spark Thrift Server 介绍 Spark Thrift Server 是 Spark 社区基于 HiveServer2 实现的一个 Thrift 服务。旨在无缝兼容 HiveServer2。 因为 Spark Thrift Server 的接口和协议都和 HiveServer2 完全一致,因此我们部署好 Spark Thrift Server 后,可以直接使用 hive 的 beeline 访问 Spark Thrift Server 执行相关语句。 Spark Thrift Server 的目的也只是取代 HiveServer2,因此它依旧可以和 Hive Metastore 进行交互,获取到 hive 的元数据。 ...

2023年4月16日 · 2 分钟

Ranger配置大数据组件

1.开启ranger-hive ranger-hdfs插件 2.修改hdfs配置 1.开启hdfs认证 hadoop.security.authorization = true

2023年4月2日 · 1 分钟

presto

presto操作hive presto-cli --server 172.16.98.183:8050 --catalog hive

2023年3月19日 · 1 分钟

OneData数据仓库架构

**1.**什么是 onedata 面对爆炸式增长的数据,如何建设高效的数据模型和体系,对这些数据进行有序和有结构地分类组织和存储,避免重复建设和数据不一致性,保证数据的规范性,一直是大数据系统建设不断追求的方向。OneData 即是阿里巴巴内部进行数据整合及管理的方法体系和工具。阿里巴巴的大数据工程师在这一体系下,构建统一、规范、可共享的全域数据体系,避免数据的冗余和重复建设,规避数据烟囱和不一致性,充分发挥阿里巴巴在大数据海量、多样性方面的独特优势。借助这一统一化数据整合及管理的方法体系,我们构建了阿里巴巴的数据公共层,并可以帮助相似的大数据项目快速落地实现。 **2.**指导思想 阿里巴巴集团数据公共层设计理念遵循维度建模思想,可参考 StarSchema-The Complete Reference 和 The Data Warehouse Toolkit-The Definitive Guide to Dimensional Modeling。数据模型的维度设计主要以维度建模理论为基础,基于维度数据模型总线架构,构建一致性的维度和事实。其核心的实施指导方针如下: 首先,要进行充分的业务调研和需求分析。 其次,进行数据总体架构设计,主要是根据数据域对数据进行划分;按照维度建模理论,构建总线矩阵,抽象出业务过程和维度。 再次,对报表需求进行抽象整理出相关指标体系,使用 One Data 工具完成指标规范定义和模型设计。 最后,是代码研发和运维。其实施流程主要分为:数据调研、架构设计、规范定义和模型设计。 **3.**业务调研 业务调研:需要确认要规划进数仓的业务领域,以及各业务领域包含的功能模块,以阿里的业务为例,可规划如下矩阵 需求调研:了解需求方关系哪些指标?需要哪些维度、度量?数据是否沉淀到汇总层等。 可以想象一下,在没有考虑分析师、业务运营人员的数据需求的情况下,根据业务调研建设的数据仓库无疑等于闭门造车。了解了业务系统的业务后并不代表就可以进行实施了,此刻要做的就是收集数据使用者的需求,可以去找分析师、业务运营人员了解他们有什么数据诉求,此时更多的就是报表需求。 需求调研的途径有两种:一是根据与分析师、业务运营人员的沟通(邮件、IM)获知需求;二是对报表系统中现有的报表进行研究分析。通过需求调研分析后,就清楚数据要做成什么样的。很多时候,都是由具体的数据需求驱动数据仓库团队去了解业务系统的业务数据,这两者并没有严格的先后顺序。 举例:分析师需要了解大淘宝(淘宝、天猫、天猫国际)一级类目的成交金额。当获知这个需求后,我们要分析根据什么(维度)汇总,以及汇总什么(度量),这里类目是维度,金额是度量;明细数据和汇总数据应该怎样设计?这是一个公用的报表吗?是需要沉淀到汇总表里面,还是在报表工具中进行汇总? **4.**架构设计 4.1 数据域的划分 数据域是指面向业务分析,将业务过程或者维度进行抽象的集合,一般数据域和应用系统(功能模块)有联系,可以考虑将同一个功能模块系统的业务过程划分到一个数据域。业务过程可以概括为一个个不可拆分的行为事件,如下单、支付、退款。为保障整个体系的生命力,数据域需要抽象提炼,并且长期维护和更新,但不轻易变动。在划分数据域时,既能涵盖当前所有的业务需求,又能在新业务进入时无影响地被包含进已有的数据域中或者扩展新的数据域。如表所示是功能模块/业务线的业务动作(部分示例): 根据业务过程进行归纳,可以抽象出如下数据域: 4.2 构建总线矩阵 在进行充分的业务调研和需求调研后,就要构建总线矩阵了,需要做两件事情: 1.明确每个数据域下有哪些业务过程。 2.业务过程与哪些维度相关,并通过总线矩阵定义每个数据域下的业务过程和维度。 如下表是供应链管理业务过程示例: 4.3 规范定义 规范定义主要定义指标体系,包括原子指标、修饰词、时间周期和派生指标。 4.4 模型设计 模型设计主要包括维度及属性的规范定义,维表、明细事实表和汇总事实表的模型设计。 4.5 架构总结 One Data 的实施过程是一个高度迭代和动态的过程,一般采用螺旋式实施方法。在总体架构设计完成之后,开始根据数据域进行迭代式模型设计和评审。在架构设计、规范定义和模型设计等模型实施过程中,都会引入评审机制,以确保模型实施过程的正确性。 **5.**指标体系搭建 5.1 指标体系核心结构 ...

2023年3月5日 · 2 分钟

left join 谓词下推

zzz1 uid is_delete 1 1 2 0 3 0 zzz2 uid is_delete 1 0 2 1 3 0 select * from zzz1 left join zzz2 on zzz1.uid = zzz2.uid where zzz1.is_delete = 0 and zzz2.is_delete = 0 结果: 3 0 3 0 select * from (select * from zzz1 where zzz1.is_delete = 0) z1 left join (select * from zzz2 where zzz2.is_delete = 0) z2 on z1.uid = z2.uid 结果: 2 0 NULL NULL 3 0 3 0 select * from (select * from zzz1 where zzz1.is_delete = 0) z1 left join (select * from zzz2 where zzz2.is_delete = 0) z2 on z1.uid = z2.uid where z2.uid is not null 结果: 3 0 3 0 ...

2023年2月19日 · 1 分钟

Kerberos入门

1. Kerberos是什么 Kerberos在古希腊神话中是指:一只有三个头的狗。这条狗守护在地狱之门外,防止活人闯入。 Kerberos是一个用于鉴定身份的协议,它采用对称密钥加密。 在我们的CDH平台中,常用来作为一种安全验证,只有经过kerberos认证后的用户才可以访问大数据集群的服务。 2.Kerberos中的一些概念 KDC(key distribution center): kerberos的认证中心,用来鉴别用户的身份的。想访问带kerberos的服务,得先过这个。 Principal: kerberos中账户的概念,用户会以这个账户来被KDC认证。 一个Principal由三个部分组成:primary, instance以及realm,其组成形式为primary/instance@realm。 primary : 可以是OS中的username,也可以是service name; instance : 用于区分属于同一个user或者service的多个principals,该项为optional; realm : 类似于DNS中的domain,定义了一组principals 举个栗子:hive/hive@ZHENDAO.COM kafka/kafka@ZHENDAO.COM KeyTab: 以文件的形式呈现,存储了一个或多个Principal的长期的key,用途和密码类似,用于kerberos认证登录; 其存在的意义在于让用户不需要明文的存储密码,和程序交互时不需要人为交互来输入密码。 TGT: 用户使用principal在KDC中进行认证后,KDC会返回给客户一个TGT,TGT会有过期时间。 Ticket:用户访问具体Server时,KDC会进行一次加密操作,返回给用户一张对应server的门票。 3.Kerberos基本使用 kerberos管理员创建一个principal, 并生成对应的keytab文件 → 注册一个kerberos的账号,并配置了免密登录 拿着keytab去KDC中进行账户的认证 → kinit -kt /var/lib/hive/hive.keytab hive/hive@ZHENDAO.COM KDC返回一个这个principal对应的TGT文件 → 默认存放在linux的 /tmp 目录下 客户拿着TGT去过带有kerberos的服务端APP 4.Kerberos认证原理 客户拿着principal去KDC中进行认证的时候,kerberos会检查其库中是否有对应的principal,如果有的话,返回一个TGT。 客户拿着TGT向带有kerberos的服务端app发起请求时,请求会先发到KDC。 KDC会拿着客户的master key(客户密码的hash)和服务端的master key(比如说hive server的master key)进行加密操作,并返回给客户一个对应hive server的ticket。 客户拿着加密后的ticket,去请求hive服务的时候,hive会对ticket进行一个验证。验证通过即可访问hive 5.举个栗子:KAFKA认证过程 kafka producer拿着principal向KDC认证身份,通过则拿到KDC返回的TGT <这是第一次认证,就好比在游乐园的门口,做一次验票操作> producer拿着TGT向KDC请求kafka的服务,KDC验证TGT,看该账号能不能使用kafka,如果可以使用,那么进行加密,并返回一个ticket给producer <这是第二次认证,就好比你想玩游乐园中的具体项目,得看看你买的门票有没有这个资格玩VIP项目> producer拿着ticket和kafka server尝试建立连接,kafka server会使用server的master key对ticket进行一次解密操作,来验证producer的身份,通过则建立连接 <玩上具体的项目了>

2023年2月5日 · 1 分钟

kafka在zk中的目录结构

2023年1月22日 · 0 分钟

Kafka数据导入ClickHouse

1.Kafka中数据导入ClickHouse的标准流程 在ClickHouse中建立Kafka Engine 外表,作为Kafka数据源的一个接口 在ClickHouse中创建普通表(通常是MergeTree系列)存储Kafka中的数据 在ClickHouse中创建Materialized View, 监听Kafka中的数据,并将数据写入ClickHouse存储表中 上述三个步骤,就可以将Kafka中的数据导入到ClickHouse集群中。 2. Kafka数据导入ClickHouse详细步骤 ClickHouse 提供了Kafka Engine 作为访问Kafka集群的一个接口(数据流)。有了这个接口后,导入数据就很方便了,具体步骤如下: 步骤1:创建Kafka Engine CREATE TABLE source ( `ts` DateTime, `tag` String, `message` String ) ENGINE = Kafka() SETTINGS kafka_broker_list = '172.19.0.47:9092', kafka_topic_list = 'tag', kafka_group_name = 'clickhouse', kafka_format = 'JSONEachRow', kafka_skip_broken_messages = 1, kafka_num_consumers = 2 必选参数: kafkabrokerlist: 这里填写Kafka服务的broker列表,用逗号分隔 kafkatopiclist: 这里填写Kafka topic,多个topic用逗号分隔 kafkagroupname:这里填写消费者group名称 kafkaformat__:Kafka数据格式, ClickHouse支持的Format, 详见这里 可选参数: kafkaskipbrokenmessages:填写大于等于0的整数,表示忽略解析异常的Kafka数据的条数。如果出现了N条异常后,后台线程结束,Materialized View会被重新安排后台线程去监听数据 kafkanumconsumers_: 单个Kafka Engine 的消费者数量,通过增加该参数,可以提高消费数据吞吐,但总数不应超过对应topic的partitions总数 kafkarowdelimiter: 消息分隔符 kafkaschema__:对于kafkaformat需要schema定义的时候,其schema由该参数确定 kafkamaxblocksize: 该参数控制Kafka数据写入目标表的Block大小,超过该数值后,就将数据刷盘。 步骤2:创建存储Kafka数据的目标表,该表就是最终存储Kafka数据 本文中,采用MergeTree来存储Kafka数据: CREATE TABLE target ( `ts` DateTime, `tag` String ) ENGINE = MergeTree() PARTITION BY toYYYYMM(ts) ORDER BY tag 步骤3:创建Metrialized View 抓取数据 本文中,采用如下语句创建MV: ...

2023年1月8日 · 1 分钟