日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Greenplum【环境搭建 04】使用GPKafka实现Kafka数据导入Greenplum数据库(扩展安装文件网盘分享)

發布時間:2024/10/6 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Greenplum【环境搭建 04】使用GPKafka实现Kafka数据导入Greenplum数据库(扩展安装文件网盘分享) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分享資源地址及文件列表:

鏈接:https://pan.baidu.com/s/1XVTxKLkOYrL4pCZpFfs-Tg 提取碼:sq90

包含文件:

# 命令執行 gpkafka # 擴展安裝 gpss.control gpss--1.0.sql # 擴展安裝時依賴文件 gpss.so # GP 的 lib 文件 librdkafka.so.1

1.需求說明

??Kafka 是分布式消息訂閱系統,有非常好的橫向擴展性,可實時存儲海量數據,是很常用的流數據處理中間件。物聯網設備采集的數據很多時候就是通過 Kafka 進行處理的。當 Kafka 數據要入庫分布式數據庫 Greenplum 時,我們就需要考慮入庫的效率和可靠性了。
??VMware Tanzu? Greenplum? Streaming Server 提供了 Loading Kafka Data into Greenplum 的工具,官網描述 You can use the gpsscli or gpkafka load utilities to load Kafka data into Greenplum Database. 這里描述的是使用 gpkafka 導入 Kafka 數據的方法。

2.工具安裝

2.1 環境說明

Greenplum 數據庫版本為 6.13.0,ZooKeeper 版本為 3.6.0,Kafka 版本為 2.4.1。

# GP 版本信息 Greenplum Binary Version: 'postgres (Greenplum Database) 6.13.0' # ZK 版本信息 [zk: localhost:2181(CONNECTED) 0] version ZooKeeper CLI version: 3.6.0 # Kafka 版本信息 INFO Kafka version: 2.4.1 (org.apache.kafka.common.utils.AppInfoParser)

2.2 工具安裝

首先安裝 gpss-gpdb6-1.5.3-rhel7-x86_64.gppkg 文件:

# 在 GP 的安裝目錄進行安裝 [gpadmin@tcloud greenplum-db-6.13.0]$ bin/gppkg -i /home/gpkafka/gpss-gpdb6-1.5.3-rhel7-x86_64.gppkg# 安裝成功 ========================================================================== GPSS installation is complete! To proceed, create gpss extension in the target database with:"CREATE EXTENSION gpss;" ========================================================================== 20220120:08:45:44:008599 gppkg:tcloud:gpadmin-[INFO]:-gpss-gpdb6-1.5.3-rhel7-x86_64.gppkg successfully installed.

如果報錯:

Traceback (most recent call last):File "bin/gppkg", line 7, in <module>from gppylib.mainUtils import * ImportError: No module named gppylib.mainUtils

問題解決【特別說明:路徑地址跟配置的數據地址要一致】GP安裝教程可參考《Greenplum單機版部署》:

source /usr/local/greenplum-db/greenplum_path.sh source /home/greenplum/.bashrc source /home/gpadmin/.bash_profile

特別注意:擴展的安裝只在當前數據庫生效。

[gpadmin@tcloud ~]$ psql psql (9.4.24) Type "help" for help. # 切換數據庫 gpdb=# \c datacenter # 安裝 gpss datacenter=# CREATE EXTENSION gpss;

報錯 1??

ERROR: could not open extension control file "/usr/local/greenplum-db-6.13.0/share/postgresql/extension/gpss.control": No such file or directory

在報錯文件夾/usr/local/greenplum-db-6.13.0/share/postgresql/extension/下添加兩個文件 gpss.control 和 gpss--1.0.sql。

# 添加 gpss.control 和 gpss--1.0.sql 后重新安裝 datacenter=# CREATE EXTENSION gpss;

報錯 2??

ERROR: could not access file "$libdir/gpfmt_gpss.so": No such file or directory

在文件夾/usr/local/greenplum-db-6.13.0/lib/postgresql下添加三個文件 gpfmt_gpss.so 、gpfmt_protobuf.so 和 gpss.so 這三個文件在 gpss--1.0.sql 內用到了。

# 添加三個文件 gpfmt_gpss.so、gpfmt_protobuf.so 和 gpss.so 后重新安裝 datacenter=# CREATE EXTENSION gpss; CREATE EXTENSION

安裝成功驗證:

說明: 直接按照會有以上兩個報錯,安裝前可將缺失的文件放到指定文件。

3.實際使用

3.1 入庫表

在 Greenplum 數據庫創建一個簡單的信息表用于測試:

-- 建表 CREATE TABLE "student_info" ( "id" VARCHAR ( 32 ), "name" VARCHAR ( 64 ), "gender" VARCHAR ( 8 ), "phone" VARCHAR ( 16 ), "age" int2 ) DISTRIBUTED BY ( ID ); -- 備注信息 COMMENT ON TABLE "student_info" IS '學生信息表'; COMMENT ON COLUMN "student_info"."id" IS '記錄的唯一標識'; COMMENT ON COLUMN "student_info"."name" IS '姓名'; COMMENT ON COLUMN "student_info"."gender" IS '性別'; COMMENT ON COLUMN "student_info"."phone" IS '手機號'; COMMENT ON COLUMN "student_info"."age" IS '年齡';

3.2 配置文件

GPKafka 使用的配置文件student-datacenter.yaml,類似于 Flume 的 Source、Sink,和字段映射關系,內容如下:

# 目標數據庫配置信息 DATABASE: datacenter USER: gpadmin PASSWORD: tcloud@2021 HOST: tcloud PORT: 2345 # Kafka相關配置 KAFKA:INPUT:SOURCE:BROKERS: aliyun:9092TOPIC: student_topicCOLUMNS:- NAME: jdataTYPE: jsonFORMAT: json# 遇到錯誤退出的次數ERROR_LIMIT: 10OUTPUT:SCHEMA: public# 寫入數據表TABLE: student_info# 字段配置( NAME 是數據庫字典名 EXPRESSION 對應的是 Kafka 字段名)MAPPING:- NAME: idEXPRESSION: (jdata->>'ID')::varchar- NAME: nameEXPRESSION: (jdata->>'NAME')::varchar- NAME: genderEXPRESSION: (jdata->>'GENDER')::varchar- NAME: phoneEXPRESSION: (jdata->>'PHONE')::varchar- NAME: ageEXPRESSION: (jdata->>'AGE')::intCOMMIT:# 一次最多提交數量MAX_ROW: 10000# 等待多少時間一提交(毫秒)MINIMAL_INTERVAL: 20

3.3 Kafka 生產數據

創建主題 student_topic 并啟動生產者發送數據:

# 創建主題 bin/kafka-topics.sh --create \--bootstrap-server aliyun:9092 \--replication-factor 1 \--partitions 1 \--topic student_topicbin/kafka-topics.sh --create \--zookeeper aliyun:2181 \--replication-factor 1 \--partitions 1 \--topic student_topic# 創建生產者 kafka-console-producer.sh --broker-list aliyun:9092 --topic student_topic

測試數據:

{"ID":"0001","NAME":"Tom","GENDER":"male","PHONE":"iPhone X","AGE":35} {"ID":"0002","NAME":"Dulcey","GENDER":"female","PHONE":"iPhone 11","AGE":29} {"ID":"0003","NAME":"Cherryl","GENDER":"female","PHONE":"xiaomi 6","AGE":28} {"ID":"0004","NAME":"Gertie","GENDER":"female","PHONE":"huawei mate 30","AGE":34} {"ID":"0005","NAME":"Allen","GENDER":"male","PHONE":"honor magic 3","AGE":27} {"ID":"0006","NAME":"Kayin","GENDER":"female","PHONE":"xiaomi mix2","AGE":26} {"ID":"0007","NAME":"Catia","GENDER":"male","PHONE":"iPhone Xs","AGE":25} {"ID":"0008","NAME":"Elise","GENDER":"female","PHONE":"oppo findx3","AGE":24} {"ID":"0009","NAME":"Bessie","GENDER":"female","PHONE":"meizu 18s","AGE":23} {"ID":"0010","NAME":"Russ","GENDER":"male","PHONE":"iqoo 8 pro","AGE":33}

3.4 GPKafka 工具啟動

在 student-datacenter.yaml 所在文件夾執行以下命令,gpadmin 是 Greenplum 的用戶名稱。

nohup gpkafka load student-datacenter.yaml \--gpfdist-port=32081 > nohup-student-datacenter.out 2>&1 &

報錯 1??

error while loading shared libraries: librdkafka.so.1: cannot open shared object file: No such file or directory

在 GP 的安裝目錄下的 /lib 內放置 librdkafka.so.1 文件,并添加 .so 的配置:

# 查看 ld.so.conf 包含的路徑 cat /etc/ld.so.conf # 在 ld.so.conf.d 內添加 librdkafka.so.1 的路徑 # 生效 /etc/ldconfig

4.總結

GPKafka工具是好用的,但是安裝并不容易,很多坑 😢 而且穩定性也不算好。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Greenplum【环境搭建 04】使用GPKafka实现Kafka数据导入Greenplum数据库(扩展安装文件网盘分享)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。