• [行业动态] Apache Hudi PMC畅谈Hudi未来演进之路
    大纲:1.Hudi简介2.表元数据3.缓存4.社区上图展示了大部分用户使用Hudi的场景。通常用Flink或者Spark或者Hudi内置工具DeltaStreamer读取数据源,写入原始表。这些表可以被不同的查询引擎读取,做常规的数据湖分析,或者做批处理。同时用Hudi提供的库可以搭建增量ETL管道,写入衍生表中。Hudi促进形成了一套生态系统,包含众多管理数据的功能,可以有效地分离高度优化的数据层和其上面搭建的查询层。Hudi - 先行者成立于2016年,Hudi项目是在数据湖上建立事务层系统的原创者。最初的设计是一个支持多引擎、与计算分离的存储系统。引入了Copy-On-Write和Merge-On-Read的概念,本质上提供了不同的组织管理数据的方式,迎合了快速写入和查询的需求。把变更捕获(change capture)引入了数据湖。很多这些概念被广泛地借鉴和采用了。接下来快速的浏览Hudi主要功能特点。以上是我们技术栈里所有的层。建立在廉价的可扩展的存储上,也可以在内存文件系统上工作,比如Alluxio。完全建立在开放的格式上。在底层我们提供的是一个事务性的数据库核心,也是项目建立的初始理念。现在我们把这个成为表格式。还包括快速更删的索引,内置的后台运行的表服务,还有并行控制。表格式之上我们提供了一套读写API和SQL支持。在最上层提供了一套运行编排工具和平台服务。很多Hudi贡献者的开发贡献了各种各样的很棒的功能。这里的介绍的核心点是,Hudi是一个平台。接下来的几个页面会快速过一下。以上几页快速提到了表格式、文件格式、索引、并发控制、写入、读取、表服务和平台服务。重点提一下并发控制:Hudi内部的进程不会彼此阻塞,因为它们相互知晓。写入器自身目前用到了传统的锁模式控制,我们在朝着完全无锁的方向开发。什么样的数据我们称为元数据?Schema,文件相关,统计数据,重做日志。至于索引,因为索引不等同于统计数据,量也可能很大,Hudi有另一套机制来管理,所以这里不把索引包含在元数据范围内介绍。Hudi现在如何储存以上这些元数据呢?Schema存储在重做日志里,可以和不同的元数据存储服务同步。文件相关的存在一个内部的元数据Hudi表中。重做日志存在时间线文件夹".hoodie"。事务完成可以存档。统计数据目前没有单独存放,从footer里提取。有时候并行读取footer反而更快,尤其在云端存储上。在高写入的场景下,把统计元数据写入额外的文件也会对读效率造成影响,以上的测试数据显示,1TB的快速写入文件,分成了16MB的块,若是100列的数据,则产生了650万以上的统计记录,读取需要10秒左右,会大幅降低查询规划的速度。Hudi RFC-27 在做的是基于区间树的范围查询可以大幅提高读取效率。即使有了范围查询,读取效率还是很难满足需要join比如20-30个表的需求。假如每个表读取需要2秒,整个查询规划很难在1分钟内完成。Hudi 内置了元数据服务器,运行在driver上,为executor缓存了文件列举的结果,能缓解在云储存比如S3上限流的问题。内部的元数据Hudi表也利用了元数据服务器缓存查询结果,相当于给表建立了多级缓存。我们正在加大对元数据服务器扩展性的投入。比如开发关于统计,重做日志和锁定的API。也可以支持集群化,本地存档恢复,远程数据库集成等。接下来介绍缓存的设计思路。频繁写入的场景会产生大量的commit,不可避免的产生了大量小文件。文件系统层面上的缓存很难满足性能需求。所以我们需要高效率的内存缓存。Hudi的文件组(FileGroup)是一个天生和缓存契合的模型。右图展示了文件组的概念:随着时间推移,新写入的文件(log file)会和本文件(base file)不断合并。同一个记录的更新会待在同一个文件组里。文件组是合并(compact)的最小单元,可以通过调节设置来使它匹配缓存容量大小,缓存合并后的数据可以很好地节省计算成本。文件组的缓存可以是提前更新(Refresh-Ahead)模式,也可以是读时缓存(Read-Through)模式。在典型的更新捕获的场景中,我们可以做微合并(Micro-compact)来主动缓存。根据读的需求规律,可以调整读时缓存的设置,比如针对特定分区的前缀设置LRU或LFU。每个文件组都有唯一的ID,可以使用一致性哈希把缓存服务器扩展到分布式集群。考虑到Hudi本身的事务性,只有被commit的文件才可以被包括到缓存中,回滚操作也需要确保清空缓存。我们也考虑设计可插拔式的缓存层:只要支持了Hudi缓存API的缓存服务都可以被引入到架构里。图片Hudi走到今天,得益于广大开发者给力的贡献。Slack上有1200+用户,GitHub有200+的贡献者,吸收了来自10+企业和组织的commiter和PMC。同时PMC和其他活跃者也对社区做着积极的维护。以上是一些正在开发的重大更新和功能。Hudi已广泛地被众多企业采用。文章转载自ApacheHudi公众号  https://mp.weixin.qq.com/s/ZNn1xLPHyso2uHaLg1icxQ免责声明:转载文章版权归原作者所有。如涉及作品内容、版权等问题,请及时联系文章编辑!
  • [技术讨论] 大数据组件Apache Impala 3.1.0 迁移到Kylin V10 lsb_release命令未找到
  • [行业动态] 一文彻底弄懂Apache Hudi不同表类型
    1. 摘要Apache Hudi提供了不同的表类型供根据不同的需求进行选择,提供了两种类型的表•Copy On Write(COW)•Merge On Read(MOR)2. 术语介绍在深入研究 COW 和 MOR 之前,让我们先了解一下 Hudi 中使用的一些术语,以便更好地理解以下部分。2.1 数据文件/基础文件Hudi将数据以列存格式(Parquet/ORC)存放,称为数据文件/基础文件,该列出格式是非常高效的并在整个行业中广泛使用,数据文件和基本文件通常可以互换使用,但两者的含义相同。2.2 增量日志文件在 MOR 表格式中,更新被写入到增量日志文件中,该文件以 avro 格式存储。这些增量日志文件始终与基本文件相关联。假设有一个名为 data_file_1 的数据文件,对 data_file_1 中记录的任何更新都将写入到新的增量日志文件。在服务读取查询时,Hudi 将实时合并基础文件及其相应的增量日志文件中的记录。2.3 文件组(FileGroup)通常根据存储的数据量,可能会有很多数据文件。每个数据文件及其对应的增量日志文件形成一个文件组。在 COW 的情况下,它要简单得多,因为只有基本文件。2.4 文件版本我们以 COW 格式表为例来解释文件版本。每当数据文件发生更新时,将创建数据文件的较新版本,其中包含来自较旧数据文件和较新传入记录的合并记录。2.5 文件切片(FileSlice)对于每个文件组,可能有不同的文件版本。因此文件切片由特定版本的数据文件及其增量日志文件组成。对于 COW,最新的文件切片是指所有文件组的最新数据/基础文件。对于 MOR,最新文件切片是指所有文件组的最新数据/基础文件及其关联的增量日志文件。有了这些上下文,让我们看看 COW 和 MOR 表类型。3. COW表顾名思义,对 Hudi 的每一个新批次写入都将创建相应数据文件的新版本,新版本文件包括旧版本文件的记录以及来自传入批次的记录。接下来我们用一个示例进行说明。假设我们有 3 个文件组,其中包含如下数据文件。我们进行一批新的写入,在索引后,我们发现这些记录与File group 1 和File group 2 匹配,然后有新的插入,我们将为其创建一个新的文件组(File group 4)。因此data_file1 和 data_file2 都将创建更新的版本,数据文件 1 V2 是数据文件 1 V1 的内容与数据文件 1 中传入批次匹配记录的记录合并。由于在写入期间进行合并,COW 会产生一些写入延迟。但是COW 的优势在于它的简单性,不需要其他表服务(如压缩),也相对容易调试。4. MOR表顾名思义,合并成本从写入端转移到读取端。因此在写入期间我们不会合并或创建较新的数据文件版本。标记/索引完成后,对于具有要更新记录的现有数据文件,Hudi 创建增量日志文件并适当命名它们,以便它们都属于一个文件组。读取端将实时合并基本文件及其各自的增量日志文件。你可能会想到这种方式,每次的读取延迟都比较高(因为查询时进行合并),所 以 Hudi 使用压缩机制来将数据文件和日志文件合并在一起并创建更新版本的数据文件。用户可以选择内联或异步模式运行压缩。Hudi也提供了不同的压缩策略供用户选择,最常用的一种是基于提交的数量。例如您可以将压缩的最大增量日志配置为 4。这意味着在进行 4 次增量写入后,将对数据文件进行压缩并创建更新版本的数据文件。压缩完成后,读取端只需要读取最新的数据文件,而不必关心旧版本文件。让我们根据某些重要标准比较 COW 与 MOR。5. 对比5.1 写入延迟正如我们之前所讨论,由于写入期间发生同步合并,与 MOR 相比COW 具有更高的写入延迟。5.2 读取延迟由于我们在 MOR 中进行实时合并,因此与 COW 相比MOR 往往具有更高的读取延迟。但是如果根据需求配置了合适的压缩策略,MOR 可以很好地发挥作用。5.3 更新代价由于我们为每批写入创建更新的数据文件,因此 COW 的 I/O 成本将更高。由于更新进入增量日志文件,MOR 的 I/O 成本非常低。5.4 写放大同样当我们创建更新版本的数据文件时,COW 会更高。假设您有一个大小为 100Mb 的数据文件,并且每次更新 10% 的记录进行 4 批写入,4 次写入后,Hudi 将拥有 5 个大小为 100Mb 的 COW 数据文件。你可以配置你的清理器(将在后面的博客中讨论)清理旧版本文件,但如果没有进行清理,最终会有 5 个版本的数据文件,总大小约500Mb。MOR 的情况并非如此,由于更新进入日志文件,写入放大保持在最低限度。对于上面的例子,假设压缩还没有开始,在 4 次写入后,我们将有 1x100Mb 的文件和 4 个增量日志文件(10Mb) 的大小约140Mb。6. 结论尽管 MOR 似乎有一些缺点,但它提供了不同的查询功能,例如读优化查询(将在后面的博客中讨论),这可能不会产生额外的合并成本。如果有一个具有适当配置的异步压缩作业,那么就可以获得 MOR 的所有好处,而无需在延迟上进行大量权衡。文章转载至ApacheHudi公众号 https://mp.weixin.qq.com/s/xvjgHc27KOvr68Sq1RB59g 免责声明:转载文章版权归原作者所有。如涉及作品内容、版权等问题,请及时联系文章编辑!
  • [基础组件] 【FI集群】【Apache http server】apache官方发布HTTP Server安全更新,如何对升级apache组
    【功能模块】FI集群依赖Apache http server2.4.39FI版本:6.5.1风险说明:xEngine产品团队监测到apache官方发布HTTP Server安全更新,修复了堆溢出漏洞(CVE-2021-26691/CVSS:9.8):由源服务器发送的特制 SessionHeader 可能会导致堆溢出。拒绝服务漏洞(CVE-2021-26690/ CVSS:7.5):由mod_session处理的巧尽心思构建的Cookie标头可能会导致NULL指针取消引用和崩溃,从而导致可能的拒绝服务。目前暂未检测到业界有曝出该漏洞利用代码POC。风险规避措施:将升级到Apache http server2.4.39升级到2.4.48,有没有大神指导下如何升级
  • [应用安全] 【漏洞通告】Apache HTTPd 2.4.49/2.4.50 路径穿越与命令执行漏洞(CVE-2021-42013)
    2021年10月8日,监测到 Apache HTTPd官方发布安全更新,披露了CVE-2021-42013 Apache HTTPd 2.4.49/2.4.50 路径穿越与命令执行漏洞。漏洞描述Apache HTTPd是Apache基金会开源的一款流行的HTTP服务器。2021年10月8日Apache HTTPd官方发布安全更新,披露了CVE-2021-42013 Apache HTTPd 2.4.49/2.4.50 路径穿越漏洞。由于对CVE-2021-41773 Apache HTTPd 2.4.49 路径穿越漏洞的修复不完善,攻击者可构造恶意请求绕过补丁,利用穿越漏洞读取到Web目录之外的其他文件。同时若Apache HTTPd开启了cgi支持,攻击者可构造恶意请求执行命令,控制服务器。提醒 Apache HTTPd 用户尽快采取安全措施阻止漏洞攻击。漏洞评级CVE-2021-42013 Apache HTTPd 2.4.49/2.4.50 路径穿越与命令执行漏洞 高危漏洞细节漏洞PoC漏洞EXP在野利用公开公开公开存在影响版本Apache HTTPd 2.4.49/2.4.50版本安全版本Apache HTTPd <= 2.4.48 版本Apache HTTPd >= 2.4.51 版本安全建议1、若非2.4.49/2.4.50版本,可不升级。2、若Apache HTTPd为 2.4.49版本或2.4.50版本,请尽快升级至最新版本。相关链接1、https://httpd.apache.org/security/vulnerabilities_24.html2、https://help.aliyun.com/noticelist/articleid/1060919610.html
  • [应用安全] 【漏洞通告】Apache HTTPd 2.4.49 路径穿越与命令执行漏洞(CVE-2021-41773)
    2021年10月6日,监测到 Apache HTTPd官方发布安全更新,披露了CVE-2021-41773 Apache HTTPd 2.4.49 路径穿越漏洞。漏洞描述Apache HTTPd是Apache基金会开源的一款流行的HTTP服务器。2021年10月6日Apache HTTPd官方发布安全更新,披露了CVE-2021-41773 Apache HTTPd 2.4.49 路径穿越漏洞。在其2.4.49版本中,引入了一个路径穿越漏洞。在路径穿越目录允许被访问的的情况下,例如配置了 <Directory />Require all granted</Directory>,攻击者可利用该路径穿越漏洞读取到Web目录之外的其他文件。同时若Apache HTTPd开启了cgi支持,攻击者可构造恶意请求执行命令,控制服务器。提醒 Apache HTTPd 用户尽快采取安全措施阻止漏洞攻击。漏洞评级CVE-2021-41773 Apache HTTPd 2.4.49 路径穿越与命令执行漏洞 高危漏洞细节漏洞PoC漏洞EXP在野利用公开公开公开存在03影响版本Apache HTTPd 2.4.49版本 且穿越的目录允许被访问。安全版本Apache HTTPd <= 2.4.48 版本Apache HTTPd >= 2.4.51 版本安全建议1、若低于 2.4.49版本,可不升级。2、若Apache HTTPd为 2.4.49版本,请尽快升级至最新版本。相关链接1、https://httpd.apache.org/security/vulnerabilities_24.html2、https://help.aliyun.com/noticelist/articleid/1060919610.html
  • [行业资讯] Apache Kafka 3.0.0 正式发布
    Apache Kafka 3.0.0正式发布,Apache Kafka是一个分布式流平台,具有四个核心API。本次更新是一个重要的版本更新,其中包括许多新的功能:对Java 8和Scala 2.12的支持被废弃了;Kafka Raft支持元数据主题的快照,以及self-managed quorum方面的其他改进;废弃了消息格式v0和v1;默认情况下为Kafka Producer启用更强的交付保证;增强了Kafka Streams中时间戳同步的语义;修改了Stream的TaskId的公共API;优化了OffsetFetch和FindCoordinator请求等等。
  • [应用安全] 【漏洞通告】Apache Shiro权限绕过漏洞CVE-2021-41303
    漏洞名称 : Apache Shiro权限绕过漏洞 CVE-2021-41303组件名称 : Apache Shiro影响范围 : Apache Shiro < 1.8.0漏洞类型 : 绕过登录验证利用条件 :1、用户认证:不需要用户认证2、前置条件:需要配合Spring3、触发方式:远程综合评价 :<综合评定利用难度>:未知。<综合评定威胁等级>:中危,能造成登录绕过。漏洞分析:1、组件介绍    Apache Shiro是一个功能强大且易于使用的Java安全框架,功能包括身份验证、授权、加密和会话管理。使用Shiro的API,可以轻松地、快速地保护任何应用程序,范围从小型的移动应用程序到大型的Web和企业应用程序。内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。2、漏洞描述    2021年9月17日,监测到一则Apache Shiro组件存在权限绕过漏洞的信息,漏洞编号:CVE-2021-41303,漏洞危害:中危。    该漏洞是由于Apache Shiro与Spring结合使用时存在绕过问题,攻击者可利用该漏洞在未授权的情况下,使用精心构造的HTTP 请求绕过登录验证,最终造成服务器敏感性信息泄露。影响范围:    Apache Shiro是一个功能强大且易于使用的Java安全框架,功能包括身份验证,授权,加密和会话管理。可能受漏洞影响的资产分布于世界各地,主要分布在中国、美国、日本等国家,国内主要集中在广东、北京、上海等地    目前受影响的Apache Shiro版本:Apache Shiro < 1.8.0解决方案:1、如何检测组件系统版本    方法一、在集成环境中查看:注:示例为1.7.0版本。请以自己环境中shiro版本为准    方法二、找到shiro的jar包,后面的包名中*.*.*即为版本号,如:注:示例为1.7.1版本。请以自己环境中shiro版本为准2、官方修复建议    当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:https://shiro.apache.org/download.html参考链接:https://nvd.nist.gov/vuln/detail/CVE-2021-41303
  • [其他] CarbonData - 社区信息
    分析  CarbonData是一种高性能大数据存储方案,已在100+企业生产环境上部署应用,其中最大的单一集群数据规模达到几万亿。贡献1. 华为开源贡献到ASF,CarbonData 2016年6月3日进入Apache孵化器,2017年4月19日正式成为Apache顶级项目。 2. 已发布了19个Apache稳定版本。社区github代码(Fork and Contribution) : https://github.com/apache/carbondataCarbonData官网 : http://carbondata.apache.orgCarbonData cwiki(技术材料分享): https://cwiki.apache.org/confluence/display/CARBONDATA/CarbonData+HomeJIRA issues : https://issues.apache.org/jira/browse/CARBONDATA加入社区,了解Apache CarbonData社区最新动态,请发邮件到 : dev-subscribe@carbondata.apache.orguser-subscribe@carbondata.apache.orgCSDN  知名博主分享(博主"过往记忆"来自:BAT互联网公司):https://www.iteblog.com/archives/tag/carbondata/社区  贡献者总结的CarbonData学习资料:https://blog.csdn.net/bob601450868/article/details/84336960案例分享  +CarbonData,华为云智能数据湖让数据处理飞起来:  http://client.sina.com.cn/2020-06-04/doc-iirczymk5229532.shtml
  • [整体安全] Apache Dubbo多个远程代码执行漏洞预警
    一、概要近日,华为云关注到国外安全研究人员披露了Apache Dubbo多个高危漏洞细节,攻击者利用漏洞可实现远程代码执行,目前漏洞利用细节已被公开,风险较高。CVE-2021-36162:YAML 反序列化漏洞,Apache Dubbo多处使用了yaml.load,攻击者在控制如ZooKeeper注册中心后可上传恶意配置文件从而造成了Yaml反序列化漏洞;CVE-2021-36163:Hessian协议反序列化漏洞,使用了不安全的Hessian 协议,攻击者利用漏洞触发反序列化,造成远程代码执行。Apache Dubbo是一款应用广泛的高性能轻量级的Java RPC分布式服务框架。华为云提醒使用Apache Dubbo的用户及时安排自检并做好安全加固以降低安全风险。参考链接:https://securitylab.github.com/advisories/GHSL-2021-094-096-apache-dubbo/二、威胁级别威胁级别:【严重】(说明:威胁级别共四级:一般、重要、严重、紧急)三、漏洞影响范围影响版本:Apache Dubbo =< 2.7.10安全版本:Apache Dubbo 2.7.13四、漏洞处置目前Apache Dubbo官方已发布补丁,请受影响的用户及时升级至安全版本。CVE-2021-36162:https://github.com/apache/dubbo/pull/8350CVE-2021-36163:https://github.com/apache/dubbo/pull/8238注:修复漏洞前请将资料备份,并进行充分测试。
  • [openEuler] 基于openEuler-20.03-LTS-SP1安装部署Apache Hive-3.1.1
    部署说明本文以root权限执行以下操作,如非root权限用户可加sudo后或切换root权限用户执行命令。一、基础环境属性说明OSopenEuler-20.03-LTS-SP1CPU架构x86_64/aarch64规格4C/8G/40G二、确认架构环境以X86架构为例,执行如下命令查看操作系统及系统架构:cat /etc/*-release arch三、安装Hive-3.1.1详细步骤①yum安装jdk-1.8.0,并配置环境变量yum install java-1.8.0-openjdk* vim /etc/profile export JAVA_HOME=/usr/lib/jvm/java export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar export PATH=$PATH:$JAVA_HOME/bin # 环境变量生效 source /etc/profile校验java是否安装完成及其版本java -version②部署Hadoop3.3.1注意hive3.x和hadoop3.x适配#下载hadoop-3.1.1源码 wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz解压至/usr/local目录tar zxf hadoop-3.3.1.tar.gz -C /usr/local配置环境变量vim /etc/profile在文件中添加以下内容HADOOP_HOME=/usr/local/hadoop-3.3.1 PATH=$HADOOP_HOME/bin:$PATH export HADOOP_HOME PATH使环境变量立即生效source /etc/profile检查Hadoop是否安装成功hadoop version③部署mariadbyum安装mariadb,启动服务并设置开机自启动yum install mariadb* systemctl start mariadb systemctl enable mariadb查看mariadb服务状态systemctl status mariadb登陆mysql配置密码并授权mysql -uroot -p # 首次登陆无密码,直接回车登陆 set password=password('你的密码'); grant all on *.* to root@'%' identified by '你的密码'; flush privileges;配置my.cnfvim /etc/my.cnf添加以下内容[mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake重启mariadbsystemctl restart mariadb④安装Hive-3.1.1下载apache hive-3.1.1安装包wget https://archive.apache.org/dist/hive/hive-3.1.1/apache-hive-3.1.1-bin.tar.gz解压至/usr/local目录tar zxf apache-hive-3.1.1-bin.tar.gz -C /usr/local/配置环境变量vim /etc/profile添加以下内容# hive export HIVE_HOME=/usr/local/apache-hive-3.1.1-bin export PATH=$HIVE_HOME/bin:$PATH使环境变量立即生效source /etc/profile检查hive是否安装成功hive --version复制配置文件模板cd /usr/local/apache-hive-3.1.1-bin/conf cp hive-env.sh.template hive-env.sh vim hive-env.sh添加以下内容export JAVA_HOME=/usr/lib/jvm/java export HADOOP_HOME=/usr/local/hadoop-3.3.1 export HIVE_CONF_DIR=/usr/local/apache-hive-3.1.1-bin/conf复制hive-site.xml模板文件cp hive-default.xml.template hive-site.xml sed -i 's/for&#/for/g' hive-site.xml vim hive-site.xml修改为下列的value的值,注意格式<name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> <name>javax.jdo.option.ConnectionDriverName</name> <value>org.mariadb.jdbc.Driver</value> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <name>javax.jdo.option.ConnectionPassword</name> <value>数据库密码</value> <name>hive.exec.local.scratchdir</name> <value>/tmp/hive-3.1.1</value> <name>hive.downloaded.resources.dir</name> <value>/tmp/${hive.session.id}_resources</value> <name>hive.querylog.location</name> <value>/tmp/hive-3.1.1</value>下载JDBC驱动,并放置/usr/local/apache-hive-3.1.1-bin/lib目录下cd /usr/local/apache-hive-3.1.1-bin/lib wget https://downloads.mariadb.com/Connectors/java/connector-java-2.3.0/mariadb-java-client-2.3.0.jar创建hive数据目录并配置文件夹权限/usr/local/hadoop-3.3.1/bin/hadoop fs -mkdir /tmp /usr/local/hadoop-3.3.1/bin/hadoop fs -mkdir -p /user/hive/warehouse /usr/local/hadoop-3.3.1/bin/hadoop fs -chmod g+w /tmp /usr/local/hadoop-3.3.1/bin/hadoop fs -chmod g+w /user/hive/warehouse创建Hive日志目录mkdir -p /usr/local/apache-hive-3.1.1-bin/log/ touch /usr/local/apache-hive-3.1.1-bin/log/hiveserver.log touch /usr/local/apache-hive-3.1.1-bin/log/hiveserver.err初始化Hiveschematool -dbType mysql -initSchema启动Hive-3.1.1至此,在openEuler-20.03-LTS-SP1上面部署hive-3.1.1已完成。
  • [openEuler] openEuler【20.03 LTS sp1】部署Apache Hive2.0.X操作指南
    一.环境信息二.安装jdkyum install java-1.8.0-openjdk*配置环境变量vim /etc/profile export JAVA_HOME=/usr/lib/jvm/java export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar export PATH=$PATH:$JAVA_HOME/bin环境变量生效source /etc/profile查看jdk版本java -version三.安装部署hadoop注意hive2.x和hadoop2.x适配下载wget http://archive.apache.org/dist/hadoop/core/hadoop-2.6.5/hadoop-2.6.5.tar.gz解压至/usr/local目录下tar -xzvf hadoop-2.6.5.tar.gz -C /usr/local配置环境变量vim /etc/profile export HADOOP_HOME=/usr/local/hadoop export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH环境变量生效source /etc/profile创建软连接cd /usr/local/ ln -s hadoop-2.6.5/ hadoop查看hadoop版本hadoop version四.安装部署apache hive首先安装并启动mariadbyum install mariadb* systemctl start mariadb.service查看启动状态systemctl status mariadb.service登陆mysql配置密码并授权,密码不可过于简单mysql -uroot -p # 首次登陆无密码,直接回车登陆 set password=password('qwer1234!@#$'); grant all on *.* to root@'%' identified by 'qwer1234!@#$'; flush privileges;编辑配置my.cnfvim /etc/my.cnf [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake重启mariadbsystemctl restart mariadb获取hive 2.0.1版本的软件安装包wget https://archive.apache.org/dist/hive/hive-2.0.1/apache-hive-2.0.1-bin.tar.gz解压至/usr/local目录下tar -xzvf apache-hive-2.0.1-bin.tar.gz -C /usr/local/创建软连接cd /usr/local ln -s apache-hive-2.0.1-bin hive配置环境变量vim /etc/profile export HIVE_HOME=/usr/local/hive export PATH=$HIVE_HOME/bin:$PATH环境变量生效source /etc/profile查看hive版本hive --version修改配置文件cd /usr/local/hive/conf cp hive-env.sh.template hive-env.sh vim hive-env.sh export JAVA_HOME=/usr/lib/jvm/java export HADOOP_HOME=/usr/local/hadoop export HIVE_CONF_DIR=/usr/local/hive/conf复制hive-site.xml这样才会生效cp hive-default.xml.template hive-site.xml sed -i 's/for&#/for/g' hive-site.xml vim hive-site.xml添加如下内容,注意格式 <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>qwer1234!@#$</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>org.mariadb.jdbc.Driver</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property>如果后面启动有报错,需要把其他内容删除,只保留这一部分。下载JDBC驱动,并放置/usr/local/hive/lib目录下cd /usr/local/hive/lib wget https://downloads.mariadb.com/Connectors/java/connector-java-2.3.0/mariadb-java-client-2.3.0.jar创建Hive数据目录/usr/local/hadoop/bin/hadoop fs -mkdir /tmp /usr/local/hadoop/bin/hadoop fs -mkdir -p /user/hive/warehouse /usr/local/hadoop/bin/hadoop fs -chmod g+w /tmp /usr/local/hadoop/bin/hadoop fs -chmod g+w /user/hive/warehouse创建Hive日志目录mkdir -p /usr/local/hive/log/ touch /usr/local/hive/log/hiveserver.log touch /usr/local/hive/log/hiveserver.err初始化Hiveschematool -dbType mysql -initSchema启动hive至此Apache Hive2.0.X部署完成。五.Hive基础操作1.查看数据库show databases;2.创建数据库create database if not exists euler;3.创建测试表create table test( name string, friends array<string>, children map<string, int>, address struct<street:string, city:string> ) row format delimited fields terminated by ',' collection items terminated by '_' map keys terminated by ':' lines terminated by '\n';字段解释:row format delimited fields terminated by ‘,’ – 列分隔符collection items terminated by ‘_’ --MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)map keys terminated by ‘:’ – MAP中的key与value的分隔符lines terminated by ‘\n’; – 行分隔符4.创建本地测试文件test.txtongsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijing yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing5.导入文本数据到测试表 load data local inpath "/root/test.txt"into table test;6.访问三种集合列里的数据,以下分别是ARRAY,MAP,STRUCT的访问方式select friends[1],children['xiao song'],address.city from test where name="ongsong";
  • [应用安全] 【漏洞通告】Apache OFBiz任意文件上传漏洞 CVE-2021-37608
    漏洞名称 : Apache OFBiz任意文件上传漏洞组件名称 : Apache OFBiz影响范围 : Apache OFBiz < 17.12.08漏洞类型 : 任意文件上传利用条件 : 1、用户认证:需要用户认证2、触发方式:远程综合评价 :<综合评定利用难度>:未知。<综合评定威胁等级>:高危,能造成远程代码执行。漏洞分析:1、组件介绍Apache OFBiz是美国阿帕奇(Apache)软件基金会的一套企业资源计划(ERP)系统。该系统提供了一整套基于Java的Web应用程序组件和工具。2、漏洞描述近日,监测到Apache官方发布了一则任意文件上传漏洞的安全通告,通告披露了OFBiz组件存在任意文件上传漏洞,漏洞编号:CVE-2021-37608,漏洞威胁等级:高危。该漏洞是由于Apache OFBiz缺少文件扩展名检查,攻击者可利用该漏洞在获得权限的情况下,上传恶意文件,造成远程代码执行攻击,最终可获取服务器最高权限。影响范围:Apache OFBiz在全球范围内主要分布在中国、爱尔兰和澳大利亚,国内主要分布在浙江、上海和北京。目前受影响的Apache OFBiz版本:Apache OFBiz < 17.12.08解决方案:1、如何检测组件系统版本在项目目录下有一个VERSION文件,使用cat命令可查看版本信息。2、官方修复建议当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。下载链接:http://ofbiz.apache.org/download.html#vulnerabilities参考链接:http://mail-archives.apache.org/mod_mbox/www-announce/202108.mbox/%3C40716d3e-150d-10d6-ee27-aca4ae0480fb@apache.org%3Ehttps://issues.apache.org/jira/browse/OFBIZ-12297https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-37608
  • [openEuler] openEuler20.03 LTS sp1操作系统下发布Apache ZooKeeper3.5.9
    一、架构信息和软件版本信息 :[root@localhost ~]# cat /etc/os-release [root@localhost ~]# uname -i二、切换目录并下载软件包到该目录[root@localhost ~]# cd /usr/local/ [root@localhost local]# wget https://downloads.apache.org/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz三、解压之后修改目录名称并创建 data 文件夹tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz mv apache-zookeeper-3.5.9-bin zookeeper-3.5.9 cd zookeeper-3.5.9 mkdir data四、进入 conf 目录,修改 zoo_sample.cfg 名称为 zoo.cfg,编辑 zoo.cfg ,修改 配置配置文件里的dataDir为上面创建的 data 的路径为  /usr/local/zookeeper-3.5.9/data[root@localhost zookeeper-3.5.9]# cd conf/ [root@localhost conf]# cp -a zoo_sample.cfg zoo.cfg [root@localhost conf]# ls [root@localhost conf]# vi zoo.cfg zoo.cfg的详细配置如下:# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/usr/local/zookeeper-3.5.9/data # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature五、进入 bin 目录启动zookpeercd /usr/local/zookeeper-3.5.9/bin ./zkServer.sh start启动成功六、zookeeper节点的增删改查./zkCli.sh下面是zk的一些命令测试,如果需要尝试可以查更多资料了解。WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0] [zk: localhost:2181(CONNECTED) 0] ls / [zookeeper] [zk: localhost:2181(CONNECTED) 1] create /node0 zk-3-5-9 Created /node0 [zk: localhost:2181(CONNECTED) 2] get /node0 zk-3-5-9 [zk: localhost:2181(CONNECTED) 3] stat /node0 cZxid = 0x2 ctime = Sat Aug 07 23:23:44 CST 2021 mZxid = 0x2 mtime = Sat Aug 07 23:23:44 CST 2021 pZxid = 0x2 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 8 numChildren = 0 [zk: localhost:2181(CONNECTED) 4] ls / [node0, zookeeper]
  • [openEuler] openEuler20.03 LTS sp1操作系统下发布Apache ZooKeeper 3.7
    一、架构信息和软件版本信息 : cat /etc/os-release uname -i 二、切换目录并下载软件包到该目录 cd /usr/local/ wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz 三、解压之后修改目录名称并创建 data 文件夹tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz mv apache-zookeeper-3.7.0-bin zookeeper-3.7.0 cd zookeeper-3.7.0 mkdir data 四、进入 conf 目录,修改 zoo_sample.cfg 名称为 zoo.cfg,编辑 zoo.cfg ,修改 dataDir为上面创建的 data 的路径为  /usr/local/zookeeper-3.7.0/datacd conf/ mv zoo_sample.cfg zoo.cfg vi zoo.cfg五、进入 bin 目录启动zookpeer cd /usr/local/zookeeper-3.7.0/bin ./zkServer.sh start  启动成功六、zookeeper节点的增删改查./zkCli.sh下面是zk的一些命令测试,如果需要尝试可以查更多资料了解。
总条数:97 到第
上滑加载中