草庐IT

clickhouse-HDFS

越狱的灵感 2023-03-28 原文

参考文档

https://clickhouse.tech/docs/en/engines/table-engines/integrations/hdfs/

前言

在hdfs格式ck能解析的情况下,比如CSV,TSV等,可以在ck中建立一个映射表。读取hdfs中的数据,使用ck来分析。需要注意的是如果uri路径中包括了Globs模糊匹配符号,那么说明ck只是映射hdfs中的文件,是只读的。如果写入会报DB::Exception: URI 'hdfs:xxxxxx/some_file_?' contains globs, so the table is in readonly mode错误。如果不包括Globs模糊匹配符号,也就是表名固定的情况下,hdfs只能写一次,否则会报DB::Exception: File: xxxx is already exists.的错误。

试一试

Globs
image2021-4-8_16-17-48.png
使用准备

先在hdfs中建立文件夹并授权clickhouse用户权限

hdfs dfs -mkdir  -p /clickhouse/table
hdfs dfs -chmod 777 /clickhouse/table  或者 hdfs dfs -chown -R clickhouse:clickhouse /clickhouse/table
URI 无 Globs

1,建表

CREATE TABLE table_with_range(name String, value UInt32) ENGINE=HDFS('hdfs://xxxxx/clickhouse/table/ckhdfs_file_1', 'TSV')

2,insert数据

INSERT INTO table_with_range_v2 VALUES ('1aaaa', 1), ('1bbbb', 2), ('2cccc', 3), ('2dddd', 3), ('3eeee', 3), ('3fff', 3), ('4ggg', 3), ('4kkk', 3)

3,再次insert

image2021-4-8_16-22-2.png

可见固定表名,uri无globs模式,数据也insert只能一次

4,查询结果


image2021-4-8_16-22-43.png

查询结果正常。

URI 有 Globs

1,新建表

CREATE TABLE table_with_range_vs(name String, value UInt32) ENGINE=HDFS('hdfs://xxxx/clickhouse/table/ckhdfs_file_*', 'TSV')

2,insert数据

image2021-4-8_16-25-33.png

可见 Globs只能映射已经存在的数据,表只读

3,查询数据


image2021-4-8_16-25-51.png

查询数据正常,映射生效。

Tips

1,clickhouse 对接有kerberos验证的hdfs
文档:https://clickhouse.com/docs/en/engines/table-engines/integrations/hdfs/#clickhouse-extras

image.png

有关clickhouse-HDFS的更多相关文章

  1. HDFS+ MapReduce 数据处理与存储实验 - 2

    文章目录实验二:HDFS+MapReduce数据处理与存储实验1.实验目的2.实验环境3.实验内容3.1HDFS部分3.1.1上传文件3.1.2下载文件3.1.3显示文件信息3.1.4显示目录信息3.1.5删除文件3.1.6移动文件3.2MapReduce部分3.2.0Mapreduce原理3.2.1合并和去重3.2.1.1编写Merge.java代码3.2.1.2编译执行3.2.2文件的排序3.2.2.1编写Sort.java代码3.2.2.2编译执行4.踩坑记录5.心得体会6.源码附录6.1Merge.java完整代码6.2Sort.java完整代码实验二:HDFS+MapReduce数据

  2. database - 如何发起 HTTP 请求从 ClickHouse 数据库中获取数据 - 2

    我正在尝试使用Go发出HTTP请求以从clickhouse数据库获取数据。我对此没有太多经验,也不确定如何通过查询获取返回值这是我的:reader:=strings.NewReader("SELECTCOUNT(*)FROMsystem.tablesWHEREdatabase='local'ANDname='persons'")request,err:=http.NewRequest("GET","http://localhost:8123",reader)iferr!=nil{fmt.Println(err)}client:=&http.Client{}resp,err:=clien

  3. go - 为什么 HDFS 使用 golang 抛出意外的 EOF 错误? - 2

    packagemainimport("fmt""github.com/colinmarc/hdfs")funcmain(){client,err:=hdfs.New("192.168.0.38:50070")fs,err:=client.ReadDir("/")fmt.Println(err)fmt.Println(fs)}err是意外的EOF而且我发现错误发生在func(c*NamenodeConnection)readResponse(methodstring,respproto.Message)error{..._,err=io.ReadFull(c.conn,packet)..

  4. database - 如何知道查询中是否检索到行 | Clickhouse 和 Golang - 2

    有一种方法可以知道查询是否使用Golang从clickhouse数据库中检索数据?我有这个:dataRows,err:=connect.Query(dbQuery)iferr!=nil{log.Fatal(err)}deferdataRows.Close()我想知道你是否可以这样做:varrowsRetrievedint=dataRows.RowsCount谢谢,非常感谢您的帮助。 最佳答案 假设您只需要知道是否有任何行,您可以这样做:dataRows,err:=connect.Query(dbQuery)iferr!=nil{lo

  5. hadoop - HDFS 排除 AddblockRequestProto 中的数据节点 - 2

    我正在为HDFS中的写入实现一个数据节点故障转移,当block的第一个数据节点发生故障时,HDFS仍然可以写入一个block。算法是。首先,将识别故障节点。然后,请求一个新block。HDFSportapi提供了excludeNodes,我用它来告诉Namenode不要在那里分配新的block。failedDatanodes被识别为失败的数据节点,它们在日志中是正确的。req:=&hdfs.AddBlockRequestProto{Src:proto.String(bw.src),ClientName:proto.String(bw.clientName),ExcludeNodes:f

  6. 分布式文件系统HDFS之利用Java API与HDFS进行交互 - 2

    文章目录一、环境要求二、在Ubuntu中安装Eclipse三、在Eclipse创建项目四、为项目添加需要用到的JAR包五、编写Java应用程序代码 总结前言Hadoop不同的文件系统之间通过调用JavaAPI进行交互,利用JavaAPI进行交互,需要利用软件Eclipse编写Java程序。一、环境要求已经配置好网络的Ubuntu系统的虚拟机Ubuntu16.0464位hadoop-3.1.3.tar,可在官网下载或者点击下载(提取码:0412)jdk-8u162-linux-x64.tar二、在Ubuntu中安装Eclipse 利用Ubuntu左侧边栏自带的软件中心安装软件,在Ubuntu左侧

  7. Hadoop-HDFS详解与HA,完全分布式集群搭建(细到令人发指的教程) - 2

    前言本篇篇幅较长,有许多集群搭建干货,和枯燥乏味但是面试可能问到的理论知识。思来想去不知道怎样才能鼓励自己加油学习,想想要面对的生活还是假吧意思打开学习视频吧。目录一、引入hdfs是什么hdfs的由来hdfs架构体系hdfs的优缺点优点缺点二、HDFS_block简介和注意事项Block拆分标准三、HDFS_block安全与管理Block数据安全Block 的管理效率四、HDFS_Hadoop3完全分布式集群的搭建1.集群的网络和节点规划网络规划节点规划2.Hadoop下载与安装3.配置Hadoop集群配置环境变量配置分布式集群环境分发Hadoop集群安装目录及文件启动和停止Hadoop集群验

  8. 既然有了ES,为何还用ClickHouse——从原理万字总结ClickHouse为何这么快 - 2

    通过了解CH的几大特性了解千亿级企业ClickHouse实时处理引擎架构设计、核心技术设计、运行机理全流程。文章目录1初始ClickHouse1.1什么是ClickHouse1.2ClickHouse的优缺点1.3谁在用ClickHouse3数据引擎3.1库引擎3.2表引擎3.3MergeTree引擎4工作原理4.1数据分区4.2列式存储4.3一级索引4.4二级索引4.5数据压缩4.6数据标记5查询流程ref1初始ClickHouse1.1什么是ClickHouseClickHouse全称ClickStream,DataWareHouse,是一个用于联机分析(OLAP)的列式数据库管理系统(D

  9. hadoop基础:通过 Shell 命令访问 HDFS - 2

    文章目录1.HDFSShell概述1.1操作命令管理命令其他命令1.HDFSShell概述HDFSShell是由一系列类似LinuxShell的命令组成的。命令大致可分为操作命令、管理命令、其他命令三类1.1操作命令操作命令是以“hdfsdfs”开头的命令。通过这些命令,用户可以完成HDFS文件的复制、删除和查找等操作,Shell命令的一般格式如下。hdfsdfs[通用选项]其中,hdfs是Hadoop系统在Linux系统中的主命令;dfs是子命令,表示执行文件系统操作;通用选项由HDFS文件操作命令和操作参数组成。(1)创建文件夹命令:hdfsdfs-mkdir[-p]-p]:表示如果父目录

  10. 数据库(tidb、clickhouse、hive)概念笔记 - 2

    目录1、有哪些分布式数据库2、OLAP、OLTP、HTAP3、TIDB、clickhouse、hive一、TIDB1.TiDb核心特性:2.TiDb整体架构:3.TiDB存储:二、clickhouse三、hive1.什么是Hive?2.Hive架构和如何运作?1、有哪些分布式数据库一、PG-XC风格:由传统分库分表演进而来,再加上额外的调度节点实现分片路由、全局时钟实现分布式事务,基本构成了一个分布式数据库。•中兴的GoldenDB•华为的GaussDB•腾讯的TDSQL二、NewSQL风格:数据库中的每个组件都采用分布式设计,底层存储多采用键值(KV)系统,同时引入多数派选举算法实现多副本同

随机推荐