大數據系列之:深入理解學習使用騰訊COS和COS Ranger權限體系解決方案,從hdfs同步數據到cos

大數據系列之:深入理解學習使用騰訊COS和COS Ranger權限體系解決方案,從hdfs同步數據到cos

  • 對象存儲COS
  • 對象存儲基本概念
  • COS Ranger權限體系解決方案
  • 部署組件
    • COS Ranger Plugin
    • 部署COS-Ranger-Service
    • 部署COS Ranger Client
    • 部署 COSN
  • 從hdfs同步數據到cos

對象存儲COS

  • 對象存儲(Cloud Object Storage,COS)是由騰訊云推出的無目錄層次結構、無數據格式限制,可容納海量數據且支持 HTTP/HTTPS 協議訪問的分布式存儲服務。騰訊云 COS 的存儲桶空間無容量上限,無需分區管理,適用于 CDN 數據分發、數據萬象處理或大數據計算與分析的數據湖等多種場景。

對象存儲基本概念

基本概念:

  • 存儲桶(Bucket):是對象的載體,可理解為存放對象的“容器”。一個存儲桶可容納無數個對象。
  • 對象(Object):是對象存儲的基本單元,可理解為任何格式類型的數據,例如圖片、文檔和音視頻文件等。
  • 地域(Region):是騰訊云托管機房的分布地區,對象存儲 COS 的數據存放在這些地域的存儲

COS Ranger權限體系解決方案

Hadoop Ranger 權限體系是大數據場景下的權限解決方案。用戶使用存算分離后,將數據托管在對象存儲(Cloud Object Storage,COS)上。COS 使用的是騰訊云訪問管理(Cloud Access Management,CAM)權限體系,無論是用戶身份,權限策略等,都與本地 Hadoop Ranger 體系不同。為維持客戶的使用習慣,我們提供 COS 的 Ranger 接入解決方案。

優勢

  • 細粒度的權限控制,兼容 Hadoop 權限邏輯,用戶統一管理大數據組件與云端托管存儲的權限。
  • 插件側無需在 core-site 中設置密鑰,密鑰統一在 COS Ranger Service 中設置,避免明文密鑰的泄露。

解決方案架構
在這里插入圖片描述

Hadoop 權限體系中,認證由 Kerberos 提供,授權鑒權由 Ranger 負責。在此基礎上,我們提供以下組件,來支持 COS 的 Ranger 權限方案。

  • COS Ranger Plugin:提供 Ranger 服務端的服務定義插件。它們提供了 Ranger 側的 COS 服務描述,包括權限種類,必要參數定義(例如 COS 的 bucket 參數和 region 參數)。部署了該插件后,用戶即可在 Ranger 的控制頁面上,填寫相應的權限策略。
  • COS Ranger Service:該服務集成了 Ranger 的客戶端,周期性從 Ranger 服務端同步權限策略,在收到客戶的鑒權請求后,在本地進行權限校驗。 同時它提供了 Hadoop 中 DelegationToken 相關的生成、續租等接口,所有的接口都是通過 Hadoop IPC 定義。
  • COS Ranger Client:COSN 插件對其進行動態加載,把權限校驗的請求轉發給 COS Ranger Service。

部署環境

  • Hadoop 環境。
  • ZooKeeper、Ranger。
  • Kerberos 服務。

推薦EMR-V350版本使用的組件版本。

  • Hadoop-3.2.2
  • Zookeeper-3.6.3
  • Ranger-2.3.0
  • Kerberos-1.15.1

部署組件

部署組件請按照 COS Ranger Plugin、COS Ranger Service、COS Ranger Client、COSN 次序進行。

COS Ranger Plugin

COS-Ranger-Plugin 拓展了 Ranger Admin 控制臺上的服務種類,用戶可在 Ranger 控制臺上,設置和 COS 相關的操作權限。

在 Ranger 的服務定義目錄下新建 COS 目錄(注意,目錄權限需要保證至少有 x 與 r 權限)。

  • a. 騰訊云的 EMR 環境,路徑位于部署了ranger服務的Master節點的 /usr/local/service/ranger/ews/webapp/WEB-INF/classes/ranger-plugins。
  • b. 自建的 hadoop 環境,可以通過在 ranger 目錄下查找 hdfs 等已經接入到 ranger 服務的組件,查找目錄位置。

在這里插入圖片描述
在 COS 目錄下,放入 cos-chdfs-ranger-plugin-xxx.jar。(注意 jar 包至少有 r 權限)。同時需要放入 cos-ranger.json 文件。
https://github.com/tencentyun/cos-ranger-service/blob/main/ranger-plugin/cos-chdfs-json-for-ranger-2.x/cos-ranger.json

重啟 Ranger 服務。

在 Ranger 上注冊 COS Service。可參考如下命令:

##生成服務,需傳入 Ranger 管理員賬號密碼,以及 Ranger 服務的地址。
##對于騰訊云 EMR 集群,管理員用戶是 root,密碼是構建 emr 集群時設置的 root 密碼,ranger 服務的 IP 換成 EMR 的 master 節點 IP。
adminUser=root
##構建 EMR 集群時設置的密碼,也是 ranger 服務 web 頁面的登錄密碼
adminPasswd=xxxxxx
##如果 ranger 服務有多個 master 節點,任選一個 master 即可
rangerServerAddr=10.0.0.1:6080
##命令行中 -d 指定步驟 2 中的 json 文件
curl -v -u${adminUser}:${adminPasswd} -X POST -H "Accept:application/json" -H "Content-Type:application/json" -d @./cos-ranger.json http://${rangerServerAddr}/service/plugins/definitions
##如果要刪除剛定義的服務,則傳入剛剛創建服務時,返回的服務 ID
serviceId=102
curl -v -u${adminUser}:${adminPasswd} -X DELETE -H "Accept:application/json" -H "Content-Type:application/json" http://${rangerServerAddr}/service/plugins/definitions/${serviceId}

創建服務成功后,可在 Ranger 控制臺看到 COS 服務。如下所示:

在這里插入圖片描述
在 COS 服務側單擊**+**,定義新服務實例,服務實例名可自定義,例如cos或者cos_test,服務的配置如下所示。

在這里插入圖片描述
配置項需添policy.grantrevoke.auth.users和policy.download.auth.users。value設置后續啟動 COS Ranger Service 服務的用戶名(即允許拉取權限策略的用戶)。通常建議設置成 hadoop,后續 COS Ranger Service 可使用此用戶名進行啟動。

單擊新生成的 COS 服務實例。

在這里插入圖片描述

添加 policy,如下所示:
在這里插入圖片描述
在跳轉界面中,配置以下參數,說明如下:

  • bucket:存儲桶名稱,例如 examplebucket-1250000000,可登錄 COS 控制臺 查看。
  • path:COS 對象路徑。注意 COS 的對象路徑不以/開始。
    • include:表示設置的權限適用于 path 本身,還是除了 path 以外的其他路徑。
    • recursive:表示權限不僅適用于 path,還適用于 path 路徑下的子成員(即遞歸子成員)。通常用于 path 設置為目錄的情況。

user/group:用戶名和用戶組。這里是或的關系,即用戶名或者用戶組滿足其中一個,即可擁有對應的操作權限。

Permissions:

  • Read:讀操作。對應于對象存儲里面的 GET、HEAD 類操作,包括下載對象、查詢對象元數據等。
  • Write:寫操作。對應于對象存儲里面的 PUT 類等修改操作,例如上傳對象。
  • Delete:刪除操作。 對應于對象存儲里刪除 Object。對于 Hadoop 的 Rename 操作,需要有對原路徑的刪除操作權限,對新路徑的寫入操作權限。
  • List:遍歷權限。對應于對象存儲里面的 List Object。

在這里插入圖片描述
驗證

使用 hadoop cmd 執行訪問 COSN 的相關操作。查看當前用戶執行的操作是否符合主賬號的權限設置預期,示例如下所示:

#將bucket,路徑等替換為主賬號的實際信息。
hadoop fs -ls cosn://examplebucket-1250000000/doc
hadoop fs -put ./xxx.txt cosn://examplebucket-1250000000/doc/
hadoop fs -get cosn://examplebucket-1250000000/doc/exampleobject.txt
hadoop fs -rm cosn://examplebucket-1250000000/doc/exampleobject.txt

部署COS-Ranger-Service

COS-Ranger-Service 是整個權限體系的核心,負責集成 ranger 的客戶端,接收 ranger client 的鑒權請求,token 生成續租請求和臨時密鑰生成請求。同時也是敏感信息(騰訊云密鑰信息)所在的區域,通常部署在堡壘機器上,只允許集群管理員操作,查看配置等。

COS-Ranger-Service 支持多節點的 HA 部署,DelegationToken 狀態持久化到 DB上。通過 ZK 互相感知彼此節點的存在。通過客戶端配置的任何一個存活的 cos-ranger-server 的地址, 即可知道全量的列表。 客戶端通過 round-robin 的方式, 把請求發送給所有 cos-ranger-server 的節點. 因此可以通過平行擴容 cos-ranger-server,來提升整體的鑒權能力。

版本

V6.0 版本及以上。

部署步驟

將 COS Ranger Service 服務代碼拷貝到集群的幾臺機器上,生產環境建議至少兩臺機器。因為涉及到敏感信息,建議是堡壘機或者權限嚴格管控的機器。

如果是 kerberos 集群, 則需要一個 db 來保存 Delegation Token(有關 kerberos 的 Delegation token 的作用, 搜索相關博文即可), db 規格推薦16c32g,100g磁盤以上。在負載不高的集群上,可混用 Hive meta store 的 db。 初始化 database 和表的 sql 語句可前往 Github 的 cos-ranger-service/sql 目錄下獲取.

修改 cos-ranger.xml 文件中的相關配置,其中必須修改的配置項如下所示。配置項說明請參見文件中的注釋說明。

  • qcloud.object.storage.rpc.address
  • qcloud.object.storage.status.port
  • qcloud.object.storage.enable.cos.ranger
  • qcloud.object.storage.zk.address (zk 地址,cos ranger service 啟動后注冊到 zk 上)
  • qcloud.object.storage.cos.secret.id
  • qcloud.object.storage.cos.secret.key
  • qcloud.object.storage.kerberos.principal (kerberos 集群下的 principal, 非 kerberos 請忽略)
  • qcloud.object.storage.kerberos.keytab (kerberos 集群下的 keytab 文件, 非 kerberos 請忽略)
  • sql-dt-secret-manager.connection.url(kerberos 集群, 保存 delegation token 的db, 非 kerberos 請忽略)
  • sql-dt-secret-manager.connection.username (kerberos 集群, 訪問 delegation token 的db的用戶名, 非 kerberos 請忽略)
  • hadoop.security.credential.provider.path (kerberos 集群, 訪問 delegation token 的db的用戶密碼的 jceks 文件路徑, 非 kerberos 請忽略)

修改 ranger-cos-security.xml 文件中的相關配置。其中必須修改的配置項有如下所示。配置項說明請參見文件中的注釋說明。

  • ranger.plugin.cos.policy.cache.dir
  • ranger.plugin.cos.policy.rest.url
  • ranger.plugin.cos.service.name

修改 start_rpc_server.sh 中 hadoop_conf_path 和 java.library.path 的配置。這兩個配置分別指向 hadoop 配置文件所在的目錄(例如 core-site.xml、hdfs-site.xml)以及 hadoop native lib 路徑。

執行如下命令啟動服務。

chmod +x start_rpc_server.sh
nohup ./start_rpc_server.sh &> nohup.txt &

如果啟動失敗,查看 log 下 error 日志是否有錯誤信息。

COS Ranger Service 支持展示 HTTP 端口狀態(端口名為 qcloud.object.storage.status.port,默認值為9998)。用戶可通過以下命令獲取狀態信息(例如目前全量的cos-ranger-server列表、鑒權數量統計等)。

# 請將下面的10.xx.xx.xxx替換為部署 ranger service 的機器 IP
# port 9998 設置為 qcloud.object.storage.status.port 配置值
curl -v http://10.xx.xx.xxx:9998/status

驗證

使用 hadoop cmd 執行訪問 COSN 的相關操作。查看當前用戶執行的操作是否符合主賬號的權限設置預期,示例如下所示:

#將bucket,路徑等替換為主賬號的實際信息。
hadoop fs -ls cosn://examplebucket-1250000000/doc
hadoop fs -put ./xxx.txt cosn://examplebucket-1250000000/doc/
hadoop fs -get cosn://examplebucket-1250000000/doc/exampleobject.txt
hadoop fs -rm cosn://examplebucket-1250000000/doc/exampleobject.txt

使用 MR Job 進行驗證,驗證前需重啟相關的服務,例如 Yarn、Hive 等。

獲取統計信息
可以通過以下 curl 命令手動獲取 COS Ranger 的統計信息


curl http://${ranger_ip}:9998/status | jq# 返回
{"allMemberAddress": "10.0.0.7:9999",//集群中所有成員的地址"currentNodeIsLeader": true, // 當前節點是否是leader節點"leaderAddress": "10.0.0.7:9999", // leader地址(對于客戶端v5.x版本有意義,v6.x后是全對等模式,leader信息沒有意義"authStat": {// 自定義鑒權認證的次數統計信息(對于為實現自定義認證的服務,始終是認證成功)"authSuccessStat": { // 認證成功統計信息"qps_5m": 0,// 最近 5 分鐘的每秒查詢數(QPS)"total_1m": 0,//最近 1 分鐘的總成功認證次數"qps_1m": 0,// 最近 1 分鐘的每秒查詢數"total_5m": 0,//最近 5 分鐘的總成功認證次數"qps": 0//當前的每秒查詢數},"authFailedStat": {// 鑒權認證失敗統計信息,字段含義與 authSuccessStat 相同"qps_5m": 0,"total_1m": 0,"qps_1m": 0,"total_5m": 0,"qps": 0}},"rpcMethodStat": {//包含不同 RPC 方法的調用次數的統計信息"checkPermission": {//檢查權限的方法統計信息"qps_5m": 10,"total_1m": 3000,"qps_1m": 50,"total_5m": 3000,"qps": 1000},"getAvailableService": {//獲取可用服務的方法統計信息"qps_5m": 0,"total_1m": 1,"qps_1m": 0.02,"total_5m": 1,"qps": 0}},"checkPermissionAllowAfterRetryCnt": 0,// 經過重試后允許的權限檢查次數"checkPermissionAllowCnt": 4000,//允許的權限檢查總次數"becomeLeaderTime": "2024-12-10T12:56:52.888Z",//當前節點成為leader的時間"checkAuthDenyCnt": 0,//被拒絕的認證檢查次數"serviceStartTime": "2024-12-10T12:56:52.884Z",//服務啟動的時間"checkPermissionDenyCnt": 0,//被拒絕的權限檢查次數"accessStat": {//包含不同訪問類型的統計信息"READ": {//讀取操作的統計信息"qps_5m": 10,"total_1m": 3000,"qps_1m": 50,"total_5m": 3000,"qps": 1000}},"checkCostStat": {//checkPermission(檢查權限)耗時的統計信息"checkFailStat": {//失敗"avg_5m": 0,"min_1m": 0,"avg": 0,"min": 0,"max": 0,"max_1m": 0,"avg_1m": 0,"max_5m": 0,"min_5m": 0},"checkSuccessStat": {//成功"avg_5m": 5,//最近 5 分鐘的平均耗時"min_1m": 0,//最近1分鐘最小耗時"avg": 4,//平均耗時"min": 0,//最小耗時"max": 1263,//最大耗時"max_1m": 1263,//最近一分鐘最大耗時"avg_1m": 5,//最近一分鐘平均耗時"max_5m": 1263,//最近五分鐘最大耗時"min_5m": 0//最近五分鐘最小耗時}},"authCostStat": {// 權限認證耗時統計"authSuccessStat": {"avg_5m": 0,"min_1m": 0,"avg": 0,"min": 0,"max": 0,"max_1m": 0,"avg_1m": 0,"max_5m": 0,"min_5m": 0},"authFailedStat": {"avg_5m": 0,"min_1m": 0,"avg": 0,"min": 0,"max": 0,"max_1m": 0,"avg_1m": 0,"max_5m": 0,"min_5m": 0}},"rpcMethodCostStat": {//RPC接口耗時統計"checkPermission": {"avg_5m": 5,"min_1m": 0,"avg": 4,"min": 0,"max": 1263,"max_1m": 1263,"avg_1m": 5,"max_5m": 1263,"min_5m": 0},"getAvailableService": {"avg_5m": 280,"min_1m": 280,"avg": 280,"min": 280,"max": 280,"max_1m": 280,"avg_1m": 280,"max_5m": 280,"min_5m": 280}},"statsTimestamp": "2024-12-12T05:28:38.688Z",//統計時間"checkStat": {// check policy統計信息"checkFailStat": {"qps_5m": 0,"total_1m": 0,"qps_1m": 0,"total_5m": 0,"qps": 0},"checkSuccessStat": {"qps_5m": 10,"total_1m": 3000,"qps_1m": 50,"total_5m": 3000,"qps": 1000}}
}

部署COS Ranger Client

COS Ranger Client 由 hadoop cosn 插件動態加載,并代理訪問 COS Ranger Service 的相關請求。例如獲取臨時密鑰、獲取 token、鑒權操作等。

版本

cos-ranger-client 要求V6.0 版本及以上。cosn-ranger-interface 要求 v1.0.5版本及以上。

騰訊云 EMR 環境中默認安裝目錄在 common/lib 下,例如 /usr/local/service/hadoop/share/hadoop/common/lib 下。請根據自己的環境,放在對應的common/lib 路徑下。 對于 ranger-client 的包名,例如 hadoop-ranger-client-for-hadoop-2.8.5-6.0.jar,2.8.5 是 hadoop 版本號,6.0是該包的版本號。for-hadoop 是通常組件使用的版本,其他一些組件,例如 presto, impala 以及高版本的 spark(spark-3.2.0版本及以后) 等,由于對依賴的 hadoop-common做了 shade,因此 ranger-client 也必須做 shade,否則會報類找不到。這些包請下載對應的 for-presto, for-impala, for-spark 版本等。

部署方式
將 cos-ranger-client jar 包和cosn-ranger-interface jar 包拷貝到與 COSN 同一目錄下通常在/usr/local/service/hadoop/share/hadoop/common/lib/目錄下;請選擇拷貝與自身 hadoop 大版本一致的 jar 包,最后確保 jar 包有可讀權限。

在 core-site.xml 添加如下配置項:

<configuration><!--*****必須配置********--><!-- 上一步部署的 cos ranger server 的地址 --><property><name>qcloud.object.storage.ranger.service.address</name><value>10.0.0.8:9999,10.0.0.10:9999</value></property><!--***可選配置****-->           <!-- 設置 cos ranger service 端用的 kerberos 憑據,參考 cos ranger service 端的配置,須保持一致,如果沒有認證的需求,不需要配置 --><property>                <name>qcloud.object.storage.kerberos.principal</name><value>hadoop/_HOST@EMR-XXXX</value></property>
</configuration>

部署 COSN

部署 COSN 插件方法請參考 Hadoop 工具 文檔,但需注意以下幾點:

使用 ranger 后,fs.cosn.userinfo.secretId 和 fs.cosn.userinfo.secretKey 密鑰信息不需要配置。COSN 插件后續通過 COSRangerService 獲取臨時密鑰。

fs.cosn.credentials.provider 需設置為 org.apache.hadoop.fs.auth.RangerCredentialsProvider 才可通過 Ranger 進行認證鑒權。如下所示:

<property><name>fs.cosn.credentials.provider</name><value>org.apache.hadoop.fs.auth.RangerCredentialsProvider</value>
</property>

從hdfs同步數據到cos

from pyspark.sql import SparkSession
import argparse# 初始化 Spark 會話
spark = SparkSession.builder \.appName("Write Parquet Example") \.getOrCreate()parser = argparse.ArgumentParser()
parser.add_argument('--dt', type=str)
arg = parser.parse_args()
date_time = arg.dt# 讀取 Parquet 文件
df = spark.read.parquet(f"{HDFS路徑}/datetime={date_time}")# 重新分區為 1 個分區
df_repartitioned = df.repartition(1)# 指定輸出路徑
output_path = f"cosn://{HDFS路徑}/datetime={date_time}"# 寫入 Parquet 文件到指定路徑
df_repartitioned.write.mode("overwrite").parquet(output_path)# 關閉 Spark 會話
spark.stop()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64623.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64623.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64623.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA學習筆記_Redis進階

文章目錄 初識redisredis簡介windows啟動redis服務器linux啟動redis服務器圖形用戶界面客戶端RDM redis命令常用數據類型特殊類型字符串操作命令Key的層級格式哈希操作命令列表操作命令集合操作命令有序集合操作命令通用命令 java客戶端Jedisjedis連接池SpringDataRedis序列化手…

1月第一講:WxPython跨平臺開發框架之前后端結合實現附件信息的上傳及管理

1、功能描述和界面 前端&#xff08;wxPython GUI&#xff09;&#xff1a; 提供文件選擇、顯示文件列表的界面。支持上傳、刪除和下載附件。展示上傳狀態和附件信息&#xff08;如文件名、大小、上傳時間&#xff09;。后端&#xff08;REST API 服務&#xff09;&#xff1a…

面試經典150題——滑動窗口

文章目錄 1、長度最小的子數組1.1 題目鏈接1.2 題目描述1.3 解題代碼1.4 解題思路 2、無重復字符的最長子串2.1 題目鏈接2.2 題目描述2.3 解題代碼2.4 解題思路 3、串聯所有單詞的子串3.1 題目鏈接3.2 題目描述3.3 解題代碼3.4 解題思路 4、最小覆蓋子串4.1 題目鏈接4.2 題目描…

12.29~12.31[net][review]need to recite[part 2]

網絡層 IP 首部的前一部分是固定長度&#xff0c;共 20 字節&#xff0c;是所有 IP 數據報必須具有的 路由器 路由選擇協議屬于網絡層控制層面的內容 l 路由器 的 主要工作&#xff1a; 轉發分組。 l 路由 信息協議 RIP (Routing Information Protocol ) 是 一種 分布式的…

免費下載 | 2024網絡安全產業發展核心洞察與趨勢預測

《2024網絡安全產業發展核心洞察與趨勢預測》報告的核心內容概要&#xff1a; 網絡安全產業概況&#xff1a; 2023年中國網絡安全產業市場規模約992億元&#xff0c;同比增長7%。 預計2024年市場規模將增長至1091億元&#xff0c;2025年達到1244億元。 網絡安全企業數量超過4…

Django項目部署到服務器

文章目錄 django項目部署到服務器在服務器上安裝Django和依賴&#xff1a;項目代碼上傳配置數據庫收集靜態文件配置Web服務器配置Gunicorn&#xff08;WSGI服務器&#xff09;啟動/停止/重載systemd服務。 django項目部署到服務器 在服務器上安裝Django和依賴&#xff1a; su…

記憶旅游系統|Java|SSM|VUE| 前后端分離

【技術棧】 1??&#xff1a;架構: B/S、MVC 2??&#xff1a;系統環境&#xff1a;Windowsh/Mac 3??&#xff1a;開發環境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4??&#xff1a;技術棧&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5??數據庫可…

微信小程序:定義頁面標題,動態設置頁面標題,json

1、常規設置頁面標題 正常微信小程序中&#xff0c;設置頁面標題再json頁面中進行設置&#xff0c;例如 {"usingComponents": {},"navigationBarTitleText": "標題","navigationBarBackgroundColor": "#78b7f7","navi…

基于通用優化軟件GAMS的數學建模和優化分析;GAMS安裝和介紹、GAMS程序編寫、GAMS程序調試、實際應用算例演示與經驗分享

GAMS&#xff08;General Algebraic Modeling System&#xff09;是一款高級建模系統&#xff0c;主要用于解決線性規劃、非線性規劃、動態規劃、混合整數規劃等優化問題。它以其簡單清晰的用戶接口和強健穩定的數值分析能力而著稱&#xff0c;適用于大型、復雜的優化問題。GAM…

理解生成協同促進?華為諾亞提出ILLUME,15M數據實現多模態理解生成一體化

多模態理解與生成一體化模型&#xff0c;致力于將視覺理解與生成能力融入同一框架&#xff0c;不僅推動了任務協同與泛化能力的突破&#xff0c;更重要的是&#xff0c;它代表著對類人智能&#xff08;AGI&#xff09;的一種深層探索。通過在單一模型中統一理解與生成&#xff…

學習vue3的筆記

一、vue和react的對比 1、基礎介紹 vue&#xff1a;https://cn.vuejs.org/ vue3是2020年創建的 react&#xff1a;https://react.dev/ react是一個2013年開源的JavaScript庫&#xff0c;嚴格意義上來說不是一個框架 2、diff算法 兩個框架采用的都是同級對比策略 兩節點對…

SQLiteDataBase數據庫

XML界面設計 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_paren…

k8s部署nginx+sshd實現文件上傳下載

要通過 nginx 和 sshd 實現文件的上傳和下載&#xff0c;通常的做法是結合 SSH 協議和 HTTP 協議&#xff0c;使用 nginx 提供 Web 服務器功能&#xff0c;同時使用 sshd&#xff08;即 SSH 服務&#xff09;來處理通過 SSH 協議進行的文件傳輸。 SSH 實現文件的上傳和下載&…

Golang 中 Goroutine 的調度

Golang 中 Goroutine 的調度 Golang 中的 Goroutine 是一種輕量級的線程&#xff0c;由 Go 運行時&#xff08;runtime&#xff09;自動管理。Goroutine 的調度基于 M:N 模型&#xff0c;即多個 Goroutine 可以映射到多個操作系統線程上執行。以下是詳細的調度過程和策略&…

clickhouse-backup配置及使用(Linux)

一、下載地址 Releases Altinity/clickhouse-backup GitHub 二、上傳到服務器解壓安裝 自行上傳至服務器&#xff0c;解壓命令&#xff1a; tar xvf clickhouse-backup-linux-amd64.tar.gz 三、創建軟連接 sudo ln -sv build/linux/amd64/clickhouse-backup /usr/local/bin/…

如何在群暉NAS上安裝并配置MySQL與phpMyAdmin遠程管理數據庫

文章目錄 前言1. 安裝MySQL2. 安裝phpMyAdmin3. 修改User表4. 本地測試連接MySQL5. 安裝cpolar內網穿透6. 配置MySQL公網訪問地址7. 配置MySQL固定公網地址8. 配置phpMyAdmin公網地址9. 配置phpmyadmin固定公網地址 前言 大家是不是經常遇到需要隨時隨地訪問自己數據的情況&am…

《向量數據庫指南》——Milvus Cloud 2.5:Sparse-BM25引領全文檢索新時代

Milvus Cloud BM25:重塑全文檢索的未來 在最新的Milvus Cloud 2.5版本中,我們自豪地引入了“全新”的全文檢索能力,這一創新不僅鞏固了Milvus Cloud在向量數據庫領域的領先地位,更為用戶提供了前所未有的靈活性和效率。作為大禹智庫的向量數據庫高級研究員,以及《向量數據…

SQL 總結

SQL 總結 引言 SQL(Structured Query Language,結構化查詢語言)是一種用于管理關系數據庫管理系統(RDBMS)的標準編程語言。自1974年首次提出以來,SQL已成為數據庫領域中不可或缺的一部分。它允許用戶執行各種操作,如查詢、更新、插入和刪除數據庫中的數據。本文旨在提…

ESP32-CAM開發板入門 (下載示例程序)

ESP32-CAM開發板例程使用 1、準備工作1.1、硬件準備1.2、軟件準備 2、選擇示例程序并錄入第一步 1、準備工作 1.1、硬件準備 1.2、軟件準備 Arduino IDE &#xff1a; 編程與寫入&#xff08;下載地址 https://www.arduino.cc/en/software&#xff09; 安裝好后將軟件設置到…

企業賦能是什么意思-國際數字影像產業園解讀

在當今競爭激烈的商業環境中&#xff0c;企業賦能已成為推動企業發展、提升競爭力的關鍵策略。國際數字影像產業園作為數字影像產業的重要集聚地&#xff0c;通過一系列創新舉措為入駐園區的我眾多企業賦能。那么&#xff0c;企業賦能究竟是什么意思呢&#xff1f; 企業賦能是…