利用 Apache Ranger 管理 Amazon EMR 中的數據權限

5e580bd20d189a6c4f9a066c41b0f2d4.gif

需求背景簡介

系統安全通常包括兩個核心主題:身份驗證和授權。一個解決“用戶是誰”的問題,另一個解決“用戶允許執行什么操作”的問題。在大數據領域,Apache Ranger 是最受歡迎的授權選擇之一,它支持所有主流大數據組件,包括 HDFS、 Hive、HBase、 Trino 等組件。

雖然 Hive 在設計中通過 Linux 的用戶和用戶組來控制用戶權限,但集成在 Amazon EMR 中的 Hive 組件默認權限管理是 None,即不設置權限控制,任何用戶名都可以通過 Hive 用戶對 Hive 組件中的數據進行操作,在多用戶和多任務的情況下,就會造成數據管理的安全隱患。因此,在基于 Amazon EMR 構建的大數據環境中,客戶往往需要集成權限控制工具,實現細化到數據表級別甚至字段級別的權限管理。

本文介紹了在 Amazon EMR 中,通過部署 Apache Ranger 和 Simple AD 服務,對 Amazon EMR 中的數據進行 Hive 表級別的權限管理。

系統方案架構圖

611a7800716cacd01c8d9d2fbaea4f02.png

主要服務和組件簡介

Amazon EMR

Amazon EMR(以前稱為 Amazon Elastic MapReduce)是一個托管集群平臺,可簡化在上運行大數據框架(如 Apache Hadoop 和 Apache Spark)的過程,亞馬遜云科技以處理和分析海量數據。使用這些框架和相關的開源項目,您可以處理用于分析目的的數據和業務情報工作負載。

集群是 Amazon EMR 的核心組件。集群是 Amazon Elastic Compute Cloud(Amazon EC2)實例的集合。集群中的每個實例稱作節點。Amazon EMR 中的節點類型有:

  • 主節點:該節點管理集群,它通過運行軟件組件來協調在其它節點之間分配數據和任務的過程以便進行處理。主節點跟蹤任務的狀態并監控集群的運行狀況。每個集群都有一個主節點,并且可以僅使用主節點創建單節點集群。

  • 核心節點:該節點具有運行任務并在集群上的 Hadoop Distributed File System(HDFS)中存儲數據的軟件組件。多節點集群至少具有一個核心節點。

  • 任務節點:該節點具有僅運行任務但不在 HDFS 中存儲數據的軟件組件。

Simple Active Directory

Simple AD 目錄是由 Samba 4 Active directory 兼容服務器提供支持的托管目錄。它提供了 Microsoft AD 提供的功能的子集,并支持常用功能,如用戶帳戶、組成員身份、加入到運行 Linux 和 Windows 的域的 Amazon EC2 實例,以及基于 Kerberos 的單點登錄(SSO)和組策略。這使得管理運行 Linux 和 Windows 的 EC2 實例以及在亞馬遜云平臺中部署應用程序變得更加容易。

同時 Simple AD 的成本也非常低廉,在大多數情況下,Simple AD 是成本最低的選擇,如果用戶數不超過 5000,并且不需要更高級的 Microsoft Active Directory 域功能,Simple AD 是這種場景下的最佳選擇。

Apache Ranger

Apache Ranger 是一個框架,可跨 Hadoop 平臺啟用、監控和管理全面的數據安全。Apache Ranger 具有以下功能:

  • 集中安全管理以在中央 UI 或使用 REST API 管理所有與安全相關的任務;

  • 使用 Hadoop 組件或工具執行特定操作或操作的精細授權,通過集中管理工具進行管理;

  • 跨所有 Hadoop 組件的標準化授權方法;

  • 增強了對各種授權方法的支持;

  • 在 Hadoop 的所有組件中對用戶訪問和管理操作(安全相關)進行集中審計。

Apache Ranger 使用兩個關鍵組件進行授權:

  • Apache Ranger 策略管理服務器 – 此服務器允許您定義 Hadoop 應用程序的授權策略。與 Amazon EMR 集成時,您可以為 Apache Spark 和 Hive 定義和實施策略以訪問 Hive Metastore,并訪問 Amazon S3 數據 EMR 文件系統。您可以設置新的或使用現有的 Apache Ranger 策略管理服務器與 Amazon EMR 集成。

  • Apache Ranger 插件 – 此插件根據 ApacheRanger 策略管理服務器中定義的授權策略驗證用戶的訪問權限。Amazon EMR 會為在 Apache Ranger 配置中選擇的每個 Hadoop 應用程序自動安裝和配置 Apache Ranger 插件。

部署步驟

01

部署?Simple AD 服務

創建 Simple AD 服務比較簡單,可以在亞馬遜云科技控制臺中,選擇 Directory Service 服務,點擊“設置目錄”。

03dd36efa2bfbf60a947ad528b4baa3a.png

在“目錄類型”中選擇創建“Simple AD”

c0c42eb0414a6433a13b951cb83e81ef.png

目錄大小選擇“小型”即可,為目錄設置一個 DNS 域名,例如 awsbuilder.cn。需要注意這個域名在后續 Apache Ranger 的集成配置中需要作為 Search Base 使用,LDAP 的 Search Base 格式是“dc=awsbuilder,dc=cn”;User Search Base 的格式是“cn=users,dc=awsbuilder,dc=cn”。

76a8c26ef25c2c40ff3d2e34e4457b64.png

繼續設置 AD 域管理員密碼

48f571f4a1002ba6bba14fb315aa5016.png

最后選擇 Simple AD 所在的 VPC 和子網,就可以完成 Simple AD 的創建。

19590d22f0f50c24f56ec34cd262a999.png

創建完成后,可以看到 Simple AD 的 VPC 網絡和 IP 地址,通過 AD 域控制器或者 LDAP 客戶端工具對用戶和組進行管理。如何管理 Simple AD 中的用戶目錄可以參考官方文檔,本文中不再贅述。

  • 官方文檔:

    https://docs.aws.amazon.com/zh_cn/directoryservice/latest/admin-guide/simple_ad_how_to.html

43a4d1b382e18d5e4c07738dee9c0e5d.png

02

部署?Apache Ranger

Apache Ranger 的官方網站是?https://ranger.apache.org/,最新的版本是 2.4.0,可以從?https://ranger.apache.org/download.html?獲取最新版本的下載。詳細的安裝手冊可以參考?https://cwiki.apache.org/confluence/display/RANGER/Running+Apache+Ranger+-++%5BFrom+source%5D+in+minutes。

Apache Ranger 是一個開源軟件,我們需要啟動一臺 EC2 進行安裝部署。同時 Apache Ranger 沒有直接的安裝包,官網下載源碼后需要進行編譯。具體安裝部署的步驟如下:

1)準備工作,在 EC2 中,用 root 帳號安裝 Java JDK、Maven、git、gcc 等工具軟件

sudo su - root
yum -y install java-11* git gcc expectwget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
tar -zxf apache-maven-3.8.6-bin.tar.gz -C /usr/local
export JAVA_HOME=/usr/lib/jvm/java
export PATH=$JAVA_HOME/bin:$PATH
export MAVEN_OPTS="-Xmx2048M"
export M2_HOME=/usr/local/apache-maven-3.8.6
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

左滑查看更多

運行 mvn -version,可以看到正常顯示 Maven 的版本。

dae2a55d289752f3bb47fd3dd23bae64.png

安裝完成后,需要修改 Maven 的配置文件,否則部署 Apache Ranger 會報錯。修改$M2_HOME/conf/setting.xml 文件,屏蔽掉 159 行到 165 行:

sed 159c\ "<!-- <mirror>" -i $M2_HOME/conf/settings.xml
sed 165c\ "</mirror> -->" -i $M2_HOME/conf/settings.xml
sed -i "s/\r//g" $M2_HOME/conf/settings.xml

左滑查看更多

Apache Ranger 使用 MySQL 作為儲存權限策略的數據庫,需要下載 MySQL 的 JDBC Driver 文件:

wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.25.tar.gz
tar -zxf mysql-connector-java-8.0.25.tar.gz mysql-connector-java-8.0.25/mysql-connector-java-8.0.25.jar --strip-components 1
mv mysql-connector-java-8.0.25.jar /usr/share/java -f

左滑查看更多

MySQL 數據庫可以在 EC2 中自建 MySQL 數據庫,也可以采用亞馬遜云科技托管的 RDS MySQL 8.0 版本,如果采用 RDS MySQL 8.0 版本,需要修改 RDS MySQL 實例的參數: log_bin_trust_function_creators = 1 。

2)編譯 Apache Ranger,下載 Apache Ranger 的源碼包,用 Maven 進行編譯

wget https://dlcdn.apache.org/ranger/2.4.0/apache-ranger-2.4.0.tar.gz
tar -zxf apache-ranger-2.4.0.tar.gz
cd apache-ranger-2.4.0
mvn clean compile package -DskipTests -Drat.skip=true -Dmaven.wagon.http.ssl.insecure=true

左滑查看更多

編譯的時間比較長,根據機型配置不同所需要的編譯時間會有所不同,本文采用 t3a.small 的機型大約需要等待 30 分鐘左右,看到 BUILD SUCCESS 的信息表示編譯成功。編譯后的安裝包保存在 target 目錄中。

c9845dbdf6915c1e9de8c553aebc4583.png

3)安裝 Apache Ranger 的 ranger-admin 組件,解壓縮編譯后的安裝包

tar -zxf ~/ranger/apache-ranger-2.4.0/target/ranger-2.4.0-admin.tar.gz -C /usr/local

左滑查看更多

修改/usr/local/ranger-2.4.0-admin/install.properties 配置文件的下列參數:

SQL_CONNECTOR_JAR = /usr/share/java/mysql-connector-java-8.0.25.jar
db_root_user = $dbadmin
db_root_password = $dbpassword
db_host = $dbhostname
db_name = $rangerdbname
db_user = $rangeradmin
db_password = $rangerpassword
rangerAdmin_password = $rangerpassword
rangerTagsync_password = $rangerpassword
rangerUsersync_password = $rangerpassword
keyadmin_password = $rangerpassword
#audit_store=solr

左滑查看更多

修改完成后,執行 ./setup.sh?進行 ranger-admin 組件的安裝。直到出現“Installation of Ranger PolicyManager Web Application is completed.”的信息,表示?ranger-admin 安裝成功。接著執行 ranger-admin start 啟動 ranger-admin 服務,啟動后,在瀏覽器訪問 ranger-admin 的管理地址,URL 是?http://ec2-hostname:6080,用 admin 用戶登錄,密碼是 install.properties 中 rangerAdmin_password 參數的值。如下圖所示,ranger-admin 已經成功部署并運行。

e415cf21674faf35498419f4683a3582.png

4)安裝 Apache Ranger 的 ranger-usersync 組件,解壓縮編譯后的安裝包

tar -zxf ~/ranger/apache-ranger-2.4.0/target/ranger-2.4.0-usersync.tar.gz -C /usr/local

左滑查看更多

修改/usr/local/ranger-2.4.0-usersync/install.properties 配置文件的下列參數:

修改/usr/local/ranger-2.4.0-usersync/install.properties配置文件的下列參數:
POLICY_MGR_URL = http://localhost:6080
SYNC_SOURCE = ldap
SYNC_INTERVAL = 60
rangerUsersync_password = $rangerpassword
SYNC_LDAP_URL = ldap://simple-ad-ipaddress:389
SYNC_LDAP_BIND_DN = $ADadmin_DN
SYNC_LDAP_BIND_PASSWORD = $ADadmin_password
SYNC_LDAP_DELTASYNC = true
SYNC_LDAP_SEARCH_BASE = $Search_base
SYNC_LDAP_USER_SEARCH_BASE = $User_search_base

左滑查看更多

修改完成后,執行 ./setup.sh?進行 ranger-usersync 的安裝。安裝完成后,修改/usr/local/ranger-2.4.0-usersync/conf/ranger-ugsync.site.xml,把第 8 行 ranger.usersync.enabled 的屬性由 false 改為 true,否則不會執行用戶同步;然后修改/usr/local/ranger-2.4.0-usersync/conf/ranger-ugsync.default.xml,把第 70 行的 ranger.usersync.cookie.enabled 屬性由 true 改為 false,否則 usersync 執行定時同步時會報 session 錯誤。

接著執行?ranger-usersync start?啟動 ranger-usersync 服務。在 ranger-admin 的管理控制臺中,點擊 settings à Users/Groups/Roles,可以看到 Simple AD 中的用戶已經被同步到 Ranger 服務,用戶類型是 External,用戶源是 LDAP/AD。

d35a777ab8e3da36c212a6d2bc67fd9a.png

Apache Ranger 的手工部署步驟比較繁瑣,筆者基于 Apache Ranger 2.3.0 的安裝寫了一個自動化部署腳本,https://github.com/eq9684/emr_autolaunch/blob/main/ranger_mysql8.sh,讀者可以參考腳本自行編寫 Apache Ranger 2.4.0 的自動化部署腳本。

03

部署?Amazon EMR

Amazon EMR 可以通過亞馬遜云科技管理控制臺頁面進行部署,也可以通過 Amazon CLI 進行一鍵部署。本文中采用 Amazon CLI 進行快速部署。如何安裝和使用 Amazon CLI 可以參考官方文檔:https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-chap-getting-started.html,本文假設讀者已經安裝并熟悉 Amazon CLI 的使用。

安裝 Amazon EMR,執行下面的 CLI 命令,命令中的文件參數可以參考:https://github.com/eq9684/emr_autolaunch。Amazon EMR 的組件較多,每個組件與 Simple AD 集成需要分別配置,手動配置會比較繁瑣。本文的參數自動填充了 Hive 和 HUE 的參數,啟動 Amazon EMR 后,HUE 即可通過設置 Simple AD 的用戶作為 HUE 管理員帳號訪問。注意需要將命令行和文件中的 keypair、子網、安全組、數據庫鏈接等參數替換為自己的環境,更詳細的部署參數可以查看官方文檔:https://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/emr-plan-ha-launch.html。

aws emr create-cluster \--release-label emr-6.12.0 \--instance-groups=''file://instance-group.json \--use-default-roles \--auto-scaling-role EMR_AutoScaling_DefaultRole \--applications Name=Hadoop Name=Hive Name=Hue Name=Pig Name=Tez \--ec2-attributes KeyName=keypairFile,SubnetId=subnet-12345678,EmrManagedMasterSecurityGroup=sg-12345678,EmrManagedSlaveSecurityGroup=sg-12345678 \--termination-protected \--configurations=file://hiveldap.json \--name EMR-auto \--managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=1,MaximumCapacityUnits=4,MaximumOnDemandCapacityUnits=2,UnitType=Instances,MaximumCoreCapacityUnits=2}' \--log-uri s3://aws-logs-bucket\--ebs-root-volume-size 30

左滑查看更多

執行后返回帶有 ClusterId 的 json 結果,可以在亞馬遜云科技管理控制臺頁面中查看啟動狀態,Amazon EMR 啟動的時間比較長,大約在 10 分鐘左右。等集群狀態變為綠色字體的“正在等待”,表示 EMR 集群已經成功啟動。

3203bedab8c44e6703c415a7fb095056.png

訪問 Amazon EMR 主節點的 HUE 服務,URL 是?http://emr-master-hostname:8.8.8.8,用 Simple AD 的設置的管理員帳號登錄,就可以進入 HUE 主界面。

0b9a8aa51d6ea56d3dd5ee6f75ea9944.png

HUE 不會自動同步 Simple AD 的其他帳號,需要管理員在用戶管理中手動同步。訪問?http://emr-master-hostname:8.8.8.8/hue/useradmin/users?進入用戶管理界面。

a03477b243ef1348f12a5b094567672e.png

點擊“Add/Sync LDAP user”,接下來輸入 LDAP 的用戶名就可以同步 Simple AD 的用戶到 HUE 中。

2fddd07f3f80c18410a45f26a237fbe9.png

133d7ebb9171e865e3ccda20ffa445b5.png

用新同步的用戶登錄 HUE,可以用 Simple AD 的用戶名和密碼登錄。

dfcc7d52ebfae75032523d20823b7fbd.png

04

在?Amazon EMR 的主節點中

部署 Apache Ranger Plugin

登錄到 Ranger 管理控制臺的界面,點擊 HADOOP SQL 右面的+號,創建 Hive 的策略條目。

ce3d96c71859c28c0bfe90d0d18de82b.png

在 Service Detail 段落中,填寫 Service Name 和 Display Name,例如“hive”,記下填入的名稱,Amazon EMR plugin 配置文件的屬性必須和這個名稱一致。

a0074410328e06bbe7ddcd76ae6bd471.png

在 Config Properties 段落中,填寫 Simple AD 的用戶名和密碼,jdbc.driverClassName 保留默認的 org.apache.hive.jdbc.HiveDriver,jdbc url 填寫 jdbc:hive2://emr-master-ip:10000/default;auth=noSasl。

3e55c6bf80c2d4bf09ec8eae00488605.png

點擊頁面下方的“Test Connection”按鈕,可以看到連接成功的信息。成功后,點擊最下面的“Add”按鈕就可以保存策略配置。

9f0a62a427e079e481a8cd0caa71ffa5.png

在 Apache Ranger 的編譯目錄中,復制 ranger-2.4.0-hive-plugin.tar.gz 文件到 Amazon EMR 的主節點。

用 root 用戶登錄到 Amazon EMR 的 ssh 終端,執行下列命令:

tar -zxf ranger-2.4.0-hive-plugin.tar.gz 
cd $HOME/ranger-2.4.0-hive-plugin/
cp lib/ranger-hive-plugin-impl/*.jar /usr/lib/hive/lib

左滑查看更多

修改 ranger-2.4.0-hive-plugin 目錄中的 install.properties 文件,其中 REPOSITORY_NAME 參數必須填寫上一步創建的 Ranger 權限策略的 Service Name,本文上一步填寫的 Service Name 是 hive,這里的 REPOSITORY_NAME 也要填寫 hive:

POLICY_MGR_URL = http://$ranger-hostname:6080
REPOSITORY_NAME = hive
COMPONENT_INSTALL_DIR_NAME = /usr/lib/hive

左滑查看更多

執行 ./enable-hive-plugin.sh ,安裝 hive plugin,然后執行?systemctl restart hive-server2?重新啟動 hive 服務。

05

配置?Apache Ranger 權限策略

登錄到 Ranger 管理控制臺,點擊“hive”的權限策略,可以看到當前的權限配置,點擊列表中的“all-database”。

81aa8d5529dc3330e8dec64c7948ec10.png

用 HUE 管理員用戶登錄 HUE,在 default 庫中創建一個 hive 表,表名為 private_table。

f4d6a50e763cda46165a04b6c6c17644.png

7350ed77b801f204d81cd2df6c4abfe5.png

登錄 Ranger 管理控制臺,點擊 hive 策略,可以編輯 hive 表的權限,例如我們想把剛才創建的 hive 表設置為私有,就可以在 Range 的權限列表中,增加一條權限如下圖所示,我們設置策略的資源是 private_table 表,給用戶 huawangz 授予所有權限,同時拒絕任何其他的用戶訪問。

8a4e133e1beaaa2fc9cabdb08858bf3e.png

0eba8b967601d0d3ec5a5e6b929be324.png

84e94a5d06df054425c09b4d81e0438c.png

0d9d77374b09b419440ec8e5b16cf5cb.png

回到 HUE 的界面中,通過 huawangz 用戶增加一條記錄

78fb4d185c7ff319b57b42a91f71bdab.png

用 select * from default.private_table,可以查詢到剛剛加入的記錄

dec32533277c464738ac2e30cbf056d4.png

退出當前的 HUE 用戶,用其他用戶登錄 HUE,同樣運行 select * from default.private_table;,可以看到查詢被 Hive 拒絕,此用戶沒有訪問 default/private_table/*的權限,無法查詢私有表中的數據,說明在 Ranger 中配置的權限策略已經生效。

cddaf5a143399baffcc6be9372535046.png

小結

本文介紹了如何在 Amazon EMR 集群中,通過開源組件 Apache Ranger 對 EMR 中的數據進行權限管理。通過 Apache Ranger 不同的 plug-in,除了對 Hive 表進行權限管理,還可以對 S3、Trino、Spark 等組件進行權限的管理,有興趣的讀者可以查閱亞馬遜云科技官方文檔:

https://docs.aws.amazon.com/zh_cn/emr/latest/ManagementGuide/emr-ranger-plugins.html?和 Apache Ranger 的文檔?https://cwiki.apache.org/confluence/display/RANGER/Ranger+Installation+Guide

本文中自動化部署和配置的代碼可以在?https://github.com/eq9684/emr_autolaunch?進行下載并修改。

本篇作者

7b87c5d4b47ff5c6fa953de84fde08ee.jpeg

王華

亞馬遜云科技解決方案架構師。有 20 年從事軟件架構、應用開發、系統集成等工作經驗。擅長 Web 領域應用系統架構設計和開發運維,即時通訊軟件、UC、企業 IT 服務臺和云呼叫中心系統的開發部署工作,從事過多個大型企業呼叫中心項目的設計、開發與部署。目前專注于制造業和呼叫中心領域的研究和方案推廣。

83c5675e62ccdbb1190c0bef2f39a742.gif

星標不迷路,開發更極速!

關注后記得星標「亞馬遜云開發者」

868c3676d3520ee3a7dba1e57cce3949.gif

聽說,點完下面4個按鈕

就不會碰到bug了!

f3eb767c10ba9bb54af867c682f83c51.gif

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

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

相關文章

微機原理_1

一、單項選擇題(本大題共15小題,每小題3分,共45分。在每小題給出的四個備選項中,選出一個正確的答案,請將選定的答案填涂在答題紙的相應位置上。) 1,下列8086CPU標志寄存器的標志位中,不屬于狀態標志位的是(&#xff09; A. OF B. IF C. AF D. PF 8086微處理器可尋址訪問的最大…

面試中vue-router的一些知識點

Vue Router Vue Router使用舉例說明 vue-router 中 route和router的區別與聯系 route和router的區別與聯系 vue3 路由使用vue2 路由與vue3 路由的區別與聯系 Vue Router Vue Router是Vue.js官方的路由管理器&#xff0c;用于實現單頁面應用中的路由功能。它允許我們在Vue應用程…

萬界星空科技SMT行業生產管理MES系統解決方案

一、SMT行業特點&#xff1a; SMT&#xff08;Surface Mounted Technology&#xff09;作為電子組裝行業里首先的技術和工藝&#xff0c;選擇合適的MES解決方案來保障SMT生產的成功至關重要。 電子行業涉及的范圍非常廣&#xff0c;包含了汽車、電腦、電視、手機等產品上&…

HCIA-Datacom跟官方路線學習

通過兩次更換策略。最后找到最終的學習方案&#xff0c;華為ICT官網有對這個路線的學習&#xff0c;hcia基礎有這個學習路線&#xff0c;hcip也有目錄路線。所以&#xff0c;最后制定學習路線&#xff0c;是根據這個認證的路線進行學習了&#xff1a; 官網課程&#xff1a;課程…

scala 實現表達式解析

表達式解析 import org.junit.Testimport scala.collection.mutableclass ExprTestCase {private val orderSource "source_1"private val saleChannel "saleChannel"val datas new mutable.HashMap[String, String]();// p1, source1, sale1, source…

everything的高效使用方法

目錄 前言1 everything的簡單介紹2 常用搜索3 語法搜索4 正則表達式搜索5 服務器功能 前言 本文介紹everything軟件的高效使用方法&#xff0c;everything是一款在系統中快速搜索文件的軟件&#xff0c;能夠幫助人們快速定位需要查找的文件。首先介紹everything軟件的作用和使…

掌握 AI 和 NLP:深入研究 Python — 情感分析、NER 等

一、說明 我們見證了 BERT 等預訓練模型在情感分析方面的強大功能,使我們能夠破譯隱藏在文本數據中的情感。通過 SpaCy,我們探索了命名實體識別的迷人世界,揭開了隱藏在非結構化文本中的秘密。 二、問題陳述 命名實體識別(NER)是自然語言處理中的一項關鍵…

數字化時代的政務服務:構建便捷高效的線上政務大廳

引言&#xff1a; 隨著數字化時代的來臨&#xff0c;如何通過線上政務大廳搭建一個便捷高效的服務平臺&#xff0c;以更好地滿足公眾需求值得探究。線上政務大廳是政務服務的新方式&#xff0c;但搭建線上政務大廳并不是一件容易的事情&#xff0c;需要精心的規劃和設計。 一…

【藍橋杯選拔賽真題25】C++兩個數比大小 第十三屆藍橋杯青少年創意編程大賽C++編程選拔賽真題解析

目錄 C/C++兩個數比大小 一、題目要求 1、編程實現 2、輸入輸出 二、算法分析

Linux文件I/O:基本概念

Linux是一個開源的操作系統&#xff0c;它提供了一套豐富的文件I/O&#xff08;輸入/輸出&#xff09;接口&#xff0c;讓用戶和程序可以方便地對文件進行讀寫操作。文件I/O是操作系統中最基本也最重要的功能之一&#xff0c;它涉及到文件的打開、關閉、讀取、寫入、定位、鎖定…

centos無法進入系統之原因解決辦法集合

前言 可愛的小伙伴們&#xff0c;由于精力有限&#xff0c;暫時整理了兩類。如果沒有你遇到的問題也沒有關系&#xff0c;歡迎底下留言評論或私信&#xff0c;小編看到后第一時間幫助解決 一. Centos 7 LVM xfs文件系統修復 情況1&#xff1a; [sda] Assuming drive cache:…

Bean基本注解開發

Commponent 使用Component注解代替<bean>標簽 <!--注解掃描:掃描指定的基本包及其子包下的類&#xff0c;識別使用了Component注解的文件--><context:component-scan base-package"org.xfy"></context:component-scan> package org.xfy.Dao.…

【Web】preg_match繞過相關例題wp

目錄 ①[FBCTF 2019]rceservice ②[ctfshow]web130 ③[ctfshow]web131 ④[NISACTF 2022]middlerce 簡單回顧一下基礎 參考文章 p牛神文 preg_match繞過總的來講就三塊可利用 數組繞過、PCRE回溯次數限制、換行符 ①[FBCTF 2019]rceservice 先貼出附件給的源碼 &l…

使用electron工具打包web端到PC端應用程序

根據electron官網快速入門示例可以方便的構建mac端包&#xff0c;我們在此基礎上構建windows端exe包. 1在package.json文件的script字段增加以下配置 "scripts": {..."build": "electron-builder --win"}, 2然后在終端執行以下命令 npm run b…

Modbus TCP

Modbus &#xff08;&#x1f446; 百度百科&#xff0c;放心跳轉&#xff09; 起源 Modbus 由 Modicon 公司于 1979 年開發&#xff0c;是一種工業現場總線協議標準。 Modbus 通信協議具有多個變種&#xff0c;支持串口&#xff0c;以太網多個版本&#xff0c;其中最著名的…

基于STM32的數字圖像處理與模式識別算法優化

基于STM32的數字圖像處理與模式識別算法優化是一項涉及圖像處理和機器學習領域的研究任務&#xff0c;旨在實現高效的圖像處理和模式識別算法在STM32微控制器上的運行。本文將介紹基于STM32的數字圖像處理與模式識別算法優化的原理和實現步驟&#xff0c;并提供相應的代碼示例。…

圖神經網絡與圖注意力網絡

隨著計算機行業和互聯網時代的不斷發展與進步&#xff0c;圖神經網絡已經成為人工智能和大數據的重要研究領域。圖神經網絡是對相鄰節點間信息的傳播和聚合的重要技術&#xff0c;可以有效地將深度學習的理念應用于非歐幾里德空間的數據上。本期推送圍繞圖神經網絡與圖注意力網…

dockerfile多階段構建

我理解多階段構建 多階段構建就是為了鏡像更小更容易維護&#xff0c;易讀&#xff0c;最終從一個階段的核心內容復制到另一個階段&#xff0c;而不必需要那些非核心的內容。 舉例說明 FROM registry.cn-hangzhou.aliyuncs.com/2qqq/node:14 as build COPY ./app WORKDIR /app…

RK3588平臺開發系列講解(嵌入式AI篇)嵌入式AI模型的部署

文章目錄 一、嵌入式AI模型的部署二、AI模型訓練框架有哪些三、rknn-toolkit可支持轉換的模型沉淀、分享、成長,讓自己和他人都能有所收獲!?? ?? 本篇將給大家介紹嵌入式AI模型的部署。 一、嵌入式AI模型的部署 模型的部署,是指將訓練好的模型放到運行環境中進行推理的…

【11月比賽合集】48場可報名的數據挖掘大獎賽,任君挑選!

CompHub[1] 實時聚合多平臺的數據類(Kaggle、天池…)和OJ類(Leetcode、牛客…&#xff09;比賽。本賬號會推送最新的比賽消息&#xff0c;歡迎關注&#xff01; 以下信息僅供參考&#xff0c;以比賽官網為準 目錄 Kaggle&#xff08;9場比賽&#xff09;阿里天池&#xff08;…