關於HDFS-KMS集群化部署教程,你以前看的都錯了!

2021-02-08 京東技術


本來要進行HDFS集群的KMS部署的,其實這是很成熟的技術,在網上找了很長,竟然沒有靠譜的教程,不是錯誤的,就是單機自己玩模式的,不知從什麼時候起,有個先驅寫了一篇錯誤的教程,然後這些抄襲者們就開始各種複製粘貼,也不去驗證對錯,著實讓我悲憤。


一氣之下,決定自己參照官方文檔進行部署,然後將部署的過程和結果寫下來,來祭奠那些抄襲者們。


本文章僅代表作者自己的實際部署及操作結果,有任何疏漏,望指正。



Hadoop KMS是一個基於 Hadoop的加密管理服務端。Client是一個KeyProvider的實現,使用KMS HTTP REST API與KMS交互。


KMS和它的客戶端內置安全驗證並且它們支持HTTP SPNEGO Kerberos 身份驗證和HTTPS安全轉換。


由於本次只是為了說明如何部署KMS,所以本文檔就採用simple的身份認證模式,沒有採用Kerberos。需要採用Kerberos進行身份認證的同仁可以參考官方文檔進行Kerberos認證模式部署。


KMS實際上是一個Java Web應用程式,運行在與Hadoop發行版綁定在一起的預先配置好的Tomcat伺服器上。


注意:Kms是一個密鑰管理伺服器,它並不負責加密文件。


通過KMS可以實現用戶無感知的HDFS端到端的透明加密。配置完kms後,用戶往hdfs上存儲數據的時候,無需用戶做任何程序代碼的更改(通過調用KeyProvider API ,在數據存入到HDFS上面的時候進行數據加密,解密的過程一樣)。數據加密和解密由客戶端自動完成。



軟體名稱

軟體版本

Hadoop

Hadoop  2.6.1

JDK

1.8.0_92

作業系統

CentOS  release 6.5 (Final)

Hadoop超級用戶

hadp



HostName

IP地址

角色

說明

BJ-PRESTO-TEST-100080.lvxin.com

192.168.100.80

NameNode,kms


BJ-PRESTO-TEST-100081.lvxin.com

192.168.100.81

NameNode


BJ-PRESTO-TEST-100082.lvxin.com

192.168.100.82

DataNode


BJ-PRESTO-TEST-100083.lvxin.com

192.168.100.83

DataNode


BJ-PRESTO-TEST-100084.lvxin.com

192.168.100.84

DataNode


BJ-PRESTO-TEST-100085.lvxin.com

192.168.100.85

DataNode


BJ-PRESTO-TEST-100086.lvxin.com

192.168.100.86

DataNode


BJ-PRESTO-TEST-100087.lvxin.com

192.168.100.87

DataNode


BJ-PRESTO-TEST-100088.lvxin.com

192.168.100.88

DataNode


BJ-PRESTO-TEST-100089.lvxin.com

192.168.100.89

DataNode


BJ-PRESTO-TEST-100090.lvxin.com

192.168.100.90

DataNode


BJ-PRESTO-TEST-100091.lvxin.com

192.168.100.91

DataNode


BJ-PRESTO-TEST-100092.lvxin.com

192.168.100.92

DataNode


BJ-PRESTO-TEST-100093.lvxin.com

192.168.100.93

HDFS Client




完成KMS的配置共涉及到5個文件的修改,分別是:core-site.xml、hdfs-site.xml、kms-site.xml、kms-env.sh、kms-acls.xml。下面對每個文件的修改內容進行依次說明:


在所有的NameNode和DataNode上修改該配置文件,在該配置文件上增加如下配置內容:

<property>

<name>hadoop.security.key.provider.path</name>

<value>kms://http@BJ-PRESTO-TEST-100080.lvxin.com:16000/kms</value>

</property>


在所有的NameNode和DataNode上修改該配置文件,在該配置文件上增加如下配置內容:

<property>

<name>dfs.encryption.key.provider.uri  </name>

<value>kms://http@BJ-PRESTO-TEST-177080.jd.com:16000/kms</value>

</property>


注意】上面兩個配置文件修改完畢後,需要重啟HDFS服務,後面的修改僅重啟kms服務即可。


由於Kms服務只需要在NameNode:BJ-PRESTO-TEST-100080.lvxin.com上啟動,因此僅需要修改BJ-PRESTO-TEST-100080.lvxin.com伺服器上的該配置文件,其他伺服器上的該配置文件不需要修改。在該配置文件上增加如下配置內容:

<!-- KMS Backend KeyProvider -->

<property>

<name>hadoop.kms.key.provider.uri</name>

<value>jceks://file@/${user.home}/kms.keystore</value>

</property>

<property>

<name>hadoop.security.keystore.java-keystore-provider.password-file</name>

<value>kms.keystore.password</value>                    

 <!--秘鑰密碼存儲文件,該文件需要手動創建,並且放在kms的tomcat下classes文件夾下-->

</property>

<!—本文關注與kms部署這裡選擇simple就可以了-->

 <property>

     <name>hadoop.kms.authentication.type</name>

     <value>simple</value>

   </property>

</configuration>


使用keytool生成的秘鑰密碼是123456  將密碼直接寫入到kms.keystore.password文件:

echo   123456  > ${HADOOP_HOME}/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/classes/kms.keystore.password



由於Kms服務僅需要在NameNode:BJ-PRESTO-TEST-100080.lvxin.com上啟動,因此僅需要修改BJ-PRESTO-TEST-100080.lvxin.com伺服器上的該配置文件,其他伺服器上的該配置文件不需要修改。在該配置文件上增加如下配置內容:

export KMS_HOME=${HADOOP_HOME}

export KMS_LOG=${KMS_HOME}/logs/kms

export KMS_HTTP_PORT=16000

export KMS_ADMIN_PORT=16001


】這裡可以通過kms-env.sh這個腳本來設置。也可以直接設置在~/.bashrc中。


由於Kms服務僅需要在NameNode:BJ-PRESTO-TEST-100080.lvxin.com上啟動,因此僅需要修改BJ-PRESTO-TEST-100080.lvxin.com伺服器上的該配置文件:kms-acls.xml,其他伺服器上的該配置文件不需要修改。該文件可能會隨時改變,主要用來配置key與用戶的對應關係。


根據測試需要,我們添加兩個用戶:user_a和user_b,新增user_a_key對應user_a,user_b_key對應user_b,因此需要在配置文件:$HADOOP_CONF_DIR/kms-acls.xml中添加如下配置項:

<property>

      <name>key.acl.user_a_key.DECRYPT_EEK</name>

           <value>user_a</value>

 </property>

 <property>

       <name>key.acl.user_b_key.DECRYPT_EEK</name>

          <value>user_b</value>

 </property>



只需要在NameNode:BJ-PRESTO-TEST-100080.lvxin.com 上創建密鑰,創建密鑰步驟如下:


Step1:創建user_a_key

[hadp@BJ-PRESTO-TEST-100080 hadoop]$  keytool -genkey  -alias 'user_a_key'

輸入密鑰庫口令:

##這裡輸入的口令是:123456

您的名字與姓氏是什麼?

   [Unknown]:  lvxin

您的組織單位名稱是什麼?

   [Unknown]:  jd

您的組織名稱是什麼?

   [Unknown]:  jd

您所在的城市或區域名稱是什麼?

   [Unknown]:  bj

您所在的省/市/自治區名稱是什麼?

   [Unknown]:  bj

該單位的雙字母國家/地區代碼是什麼?

   [Unknown]:  cn

CN=lvxin, OU=jd, O=jd, L=bj, ST=bj, C=cn是否正確?

  [否]:  是

 

輸入 <user_a_key> 的密鑰口令

      (如果和密鑰庫口令相同, 按回車):

#這裡輸入的口令與第一次輸入的口令一樣,都是:123456

再次輸入新口令:

[hadp@BJ-PRESTO-TEST-100080 hadoop]$


Step2:以相同方式創建user_b_key

[hadp@BJ-PRESTO-TEST-100080 hadoop]$  keytool -genkey  -alias 'user_b_key'

輸入密鑰庫口令:

您的名字與姓氏是什麼?

   [Unknown]:  lvxin

您的組織單位名稱是什麼?

   [Unknown]:  jd

您的組織名稱是什麼?

   [Unknown]:  jd

您所在的城市或區域名稱是什麼?

   [Unknown]:  bj

您所在的省/市/自治區名稱是什麼?

   [Unknown]:  bj

該單位的雙字母國家/地區代碼是什麼?

   [Unknown]:  cn

CN=lvxin, OU=jd, O=jd, L=bj, ST=bj, C=cn是否正確?

  [否]:  是

 

輸入 <user_b_key> 的密鑰口令

      #(如果和密鑰庫口令相同, 按回車):

[hadp@BJ-PRESTO-TEST-100080 hadoop]$


Step3:查看剛剛創建完成的密鑰

[hadp@BJ-PRESTO-TEST-100080 hadoop]$  keytool -list

輸入密鑰庫口令:  #這裡輸入上面的密碼:123456

 

密鑰庫類型: JKS

密鑰庫提供方: SUN

 

您的密鑰庫包含 2 個條目

 

user_a_key, 2018-7-3, PrivateKeyEntry,

證書指紋 (SHA1):  47:5A:5B:09:6F:50:65:8D:9B:5F:5A:E5:48:88:1C:86:63:BB:10:39

user_b_key, 2018-7-3, PrivateKeyEntry,

證書指紋 (SHA1): 71:75:E8:7F:90:57:BE:E1:CD:03:63:D1:7F:28:5D:51:BC:5D:D5:8C

[hadp@BJ-PRESTO-TEST-100080 hadoop]$



[hadp@BJ-PRESTO-TEST-100080  hadoop]$start-dfs.sh



在namenode:BJ-PRESTO-TEST-100080.lvxin.com上執行命令:kms.sh start,此時會啟動一個進程:Bootstrap,如下所示:

[hadp@BJ-PRESTO-TEST-100080 ~]$ kms.sh  start

   setting KMS_HOME=${HADOOP_HOME}

   setting KMS_LOG=${KMS_HOME}/logs/kms

   setting KMS_HTTP_PORT=16000

   setting KMS_ADMIN_PORT=16001

Using CATALINA_BASE:    /software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat

Using CATALINA_HOME:    /software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat

Using CATALINA_TMPDIR:  /software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat/temp

Using JRE_HOME:        /software/servers/jdk1.8.0_92

Using CLASSPATH:       /software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat/bin/bootstrap.jar

Using CATALINA_PID:    /tmp/kms.pid

Existing PID file found during start.

Removing/clearing stale PID file.

[hadp@BJ-PRESTO-TEST-100080 ~]$ ps -ef|grep  -i "Bootstrap"

hadp      14414     1 99 16:12 pts/1    00:00:12  /software/servers/jdk1.8.0_92/bin/java  -Djava.util.logging.config.file=/software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat/conf/logging.properties  -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager  -Dkms.home.dir=/software/servers/hadoop-2.6.1  -Dkms.config.dir=/software/servers/hadoop-2.6.1/etc/hadoop  -Dkms.log.dir=/software/servers/hadoop-2.6.1/logs/kms  -Dkms.temp.dir=/software/servers/hadoop-2.6.1/temp -Dkms.admin.port=16001  -Dkms.http.port=16000 -Dkms.max.threads=1000  -Dkms.ssl.keystore.file=/home/hadp/.keystore -Dkms.ssl.keystore.pass=password  -Djava.endorsed.dirs=/software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat/endorsed  -classpath /software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat/bin/bootstrap.jar  -Dcatalina.base=/software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat  -Dcatalina.home=/software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat  -Djava.io.tmpdir=/software/servers/hadoop-2.6.1/share/hadoop/kms/tomcat/temp  org.apache.catalina.startup.Bootstrap start

hadp      14482 14371  0 16:13 pts/1    00:00:00 grep -i Bootstrap



創建key


[hadp@BJ-PRESTO-TEST-100080 ~]$ hadoop key  create user_a_key

user_a_key has been successfully created  with options Options{cipher='AES/CTR/NoPadding', bitLength=128,  description='null', attributes=null}.

KMSClientProvider[http://BJ-PRESTO-TEST-100080.lvxin.com:16000/kms/v1/]  has been updated


】user_a_key為上面通過keytool創建的密鑰。


查看key詳細信息


[hadp@BJ-PRESTO-TEST-100080 ~]$ hadoop  key list

Listing keys for KeyProvider:  KMSClientProvider[http://BJ-PRESTO-TEST-100080.lvxin.com:16000/kms/v1/]

user_a_key

[hadp@BJ-PRESTO-TEST-100080 ~]$


創建文件目錄


[hadp@BJ-PRESTO-TEST-100080 ~]$ hadoop fs  -mkdir /user_a


配置user_a目錄權限


[hadp@BJ-PRESTO-TEST-100080 ~]$ hadoop fs -chown  user_a:test_group /user_a


設置/user_a為加密區


[hadp@BJ-PRESTO-TEST-100080 ~]$ hdfs crypto  -createZone -keyName user_a_key -path /user_a

Added encryption zone /user_a

[hadp@BJ-PRESTO-TEST-100080 ~]$


】加密區必須是空目錄,幾級目錄都行,但必須為空。


查看已加密區域


[hadp@BJ-PRESTO-TEST-100080 ~]$ hdfs  crypto -listZones

/user_a   user_a_key

 

[hadp@BJ-PRESTO-TEST-100080 ~]$


】以相同方式創建user_b目錄並使用user_b_key對目錄加密。



我們通過添加三個用戶user_a、user_b、user_c對加密結果進行驗證。



在兩個NameNode:BJ-PRESTO-TEST-100080.lvxin.com和BJ-PRESTO-TEST-100081.lvxin.com上的配置文件:hadoop-policy.xml中添加測試用戶訪問權限。


常用的限制訪問hdfs的權限配置,只需要修改security.client.protocol.acl參數即可,此參數用於控制哪些用戶可以訪問hdfs,配置為「*」時表示任何用戶都不受限制,此參數在配置文件:hadoop-policy.xml中。


Step1:修改配置文件


在NameNode:BJ-PRESTO-TEST-100080.lvxin.com的配置文件:$HADOOP_CONF_DIR/Hadoop-policy.xml中添加如下配置項:

<property>

     <name>security.client.protocol.acl</name>

     <value>hadp,user_a,user_b,user_c</value>

</property>


修改完成後,將該配置文件scp到另一個NameNode:BJ-PRESTO-TEST-100081.lvxin.com上:

[hadp@BJ-PRESTO-TEST-100080 hadoop]$ scp  hadoop-policy.xml 192.168.100.81:$HADOOP_CONF_DIR/

hadoop-policy.xml


Step2:刷新NameNode用戶訪問權限


在任意一個NameNode上執行以下命令刷新用戶權限:

[hadp@BJ-PRESTO-TEST-100080 hadoop]$ hdfs  dfsadmin -refreshServiceAcl

Refresh service acl successful for  BJ-PRESTO-TEST-100080.lvxin.com/192.168.100.80:8020

Refresh service acl successful for  BJ-PRESTO-TEST-100081.lvxin.com/192.168.100.81:8020

[hadp@BJ-PRESTO-TEST-100080 hadoop]$


】如果啟動了Federation的功能,每組NameNode都需要執行該命令,並且每組的用戶權限都是獨立的。


在HDFS Client端: BJ-PRESTO-TEST-100093.lvxin.com上有三個用戶分別是user_a,user_b,user_c,然後在每個新建用戶的~/.bashrc中添加如下配置信息:

[user_a@BJ-PRESTO-TEST-100093 ~]$ cat  ~/.bashrc

# .bashrc

# Source global definitions

if [ -f /etc/bashrc ]; then

      .  /etc/bashrc

fi

export JAVA_HOME=/software/servers/jdk1.8.0_92

export PATH=$JAVA_HOME/bin:$PATH

export  HADOOP_HOME=/software/servers/hadoop-2.6.1

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export HADOOP_YARN_HOME=$HADOOP_HOME

export  HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export  HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop

export  YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

export  PATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin:


然後執行source:

[user_a@BJ-PRESTO-TEST-100093 ~]$ source  ~/.bashrc



在Client端:BJ-PRESTO-TEST-100093.lvxin.com,使用user_c用戶上傳文件test.txt至user_a及user_b文件目錄,均報錯沒有權限,但是可以上傳至/user_c目錄:

[root@BJ-PRESTO-TEST-100093 ~]# su - user_c

[user_c@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -put test.txt /user_a

put: Permission denied: user=user_c,  access=WRITE, inode="/user_a":user_a:test_group:drwxr-xr-x

[user_c@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -put test.txt /user_b

put: Permission denied: user=user_c,  access=WRITE, inode="/user_b":user_b:test_group:drwxr-xr-x

[user_c@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -put test.txt /user_c

user_c@BJ-PRESTO-TEST-100093 ~]$


切換至user_a用戶,將test.txt文件上傳至/user_a文件夾,切換至user_b用戶,將test.txt文件上傳至/user_b文件夾。


使用user_a用戶讀取/user_a/test.txt文件可正常顯示,讀取/user_b/test.txt文件提示沒有權限:

[root@BJ-PRESTO-TEST-100093 ~]# su - user_a

[user_a@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -put test.txt /user_a

[user_a@BJ-PRESTO-TEST-100093 ~]$ logout

[root@BJ-PRESTO-TEST-100093 ~]# su - user_b

[user_b@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs -put  test.txt /user_b

[user_b@BJ-PRESTO-TEST-100093 ~]$ logout

[root@BJ-PRESTO-TEST-100093 ~]# su - user_a

[user_a@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -cat /user_a/test.txt

this is content!!!!

[user_a@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -cat /user_b/test.txt

cat: User [user_a] is not authorized to  perform [DECRYPT_EEK] on key with ACL name [user_b_key]!!

[user_a@BJ-PRESTO-TEST-100093 ~]$


由於在hdfs中所有的文件都會在目錄/.reserved下面存儲一份原始文件,因此我們查看加密區下文件/user_a/test.txt在/.reserved下面的原始文件,從而驗證該文件有沒有被加密:

[user_a@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -cat /.reserved/raw/user_a/test.txt

W�F(�9����N!�r'�:[user_a@BJ-PRESTO-TEST-100093  ~]$


由於原始文件沒有在加密區中,但是文件的內容是經過kms加密後的內容,所以讀取原始文件的過程沒有kms解密階段,所以讀出來的內容是密文。


然後查看/user_c/test.txt對應的的原始文件:

[user_a@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -cat /.reserved/raw/user_c/test.txt

this is content!!!!

[user_a@BJ-PRESTO-TEST-100093 ~]$

 


由於/user_c不是加密區,所以文件/user_c/test.txt的內容是沒有經過加密的因此該目錄下的所有文件都是非加密的,因此讀到的原始文件的內容就是明文。


因此,可以證明加密區的文件確實經過了kms的透明加密。



通過KMS可以實現hdfs文件的透明加密,並且驗證通過。



1、Access denied for user user_a. Superuser privilege is require


在使用user_a查看/.reserved/raw下面的文件的時候,報出錯誤,說沒有權限,現象如下:


[user_a@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs -cat /.reserved/raw/user_a/test.txt

cat: Access denied for user user_a. Superuser privilege is required

[user_a@BJ-PRESTO-TEST-100093 ~]$


原因:user_a,user_b,user_c不是超級用戶權限。由於hdfs中沒有配置超級用戶組,因此hdfs的的默認超級用戶組就是:supergroup,由於hdfs的用戶權限驗證過程是:根據客戶端的用戶名,驗證在NameNode上的作業系統中該用戶名所屬的用戶組是否為超級用戶:supergroup,若是supergroup,則該用戶就是超級用戶;否則就不是超級用戶。因此需要在兩個NameNode上都執行下面的操作可以解決該問題:

useradd -g supergroup user_a

useradd -g supergroup user_b

useradd -g supergroup user_c


2、can't be moved from an encryption zone


當從加密區刪除透明加密過的文件時報出此錯誤,如下:

[user_a@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -rm /user_a/test.txt

18/07/04 13:04:25 INFO fs.TrashPolicyDefault:  Namenode trash configuration: Deletion interval = 1440 minutes, Emptier  interval = 0 minutes.

rm: Failed to move to trash:  hdfs://ns1/user_a/test.txt: /user_a/test.txt can't be moved from an  encryption zone.


解決


刪除的時候加上-skipTrash。

[user_a@BJ-PRESTO-TEST-100093 ~]$ hdfs dfs  -rm -skipTrash /user_a/test.txt

Deleted /user_a/test.txt

-END-

下面的內容同樣精彩

點擊圖片即可閱讀

京東技術 ∣關注技術的公眾號

長按,識別二維碼,加關注

相關焦點

  • 獨家 | 帶你認識HDFS和如何創建3個節點HDFS集群(附代碼&案例)
    在本文中,大數據專家將為您介紹如何使用HDFS以及如何利用HDFS創建HDFS集群節點。我們將從HDFS、Zookeeper、Hbase和OpenTSDB上的系列博客開始,了解如何利用這些服務設置OpenTSDB集群。在本文中,我們將探究HDFS。
  • office2016永久激活工具kms下載(內附office2016激活教程)
    激活失敗,office2016永久激活工具kms怎麼用等等。針對以上這些問題IT考試網會為大家提供一款非常強大的KMS激活工具:KMSAuto Lite 1.5.5 中文綠色版,接下來開始展開office2016永久激活工具kms下載(內附office2016激活教程)這篇文章: 1、office2016永久激活工具kms下載 2、office2016永久激活工具kms可激活的產品 3、office2016永久激活工具kms
  • Logstash讀取Kafka數據寫入HDFS詳解
    強大的功能,豐富的插件,讓logstash在數據處理的行列中出類拔萃通常日誌數據除了要入ES提供實時展示和簡單統計外,還需要寫入大數據集群來提供更為深入的邏輯處理,前邊幾篇ELK的文章介紹過利用logstash將kafka的數據寫入到elasticsearch集群,這篇文章將會介紹如何通過logstash將數據寫入HDFS本文所有演示均基於logstash
  • office2021最新版詳細安裝教程,附激活方式!
    說到辦公軟體,大家應該想到的都是office吧?可能有部分人用WPS,但是大部分人用的還是office,從學習到工作你基本都會用到它。今天給大家分享的是office2021最新版,附激活方式。教程有點長請仔細查看,可以一步一步跟著操作。
  • 如何在CDH集群中部署Presto
    本篇文章Fayson主要介紹如何在CDH集群部署Presto並與Hive集成。對於大型的集群,在一個節點上的Presto server即作為coordinator又作為worke將會降低查詢性能。因為如果一個伺服器作為worker使用,那麼大部分的資源都不會被worker佔用,那麼就不會有足夠的資源進行關鍵任務調度、管理和監控查詢執行。http-server.http.port:指定HTTP server的埠。
  • 大數據基礎運維:HDFS排障
    一、問題發現XXX告知XXX集群目錄被刪除排查,並提供了被刪除目錄,請求定位被誰刪除問題排查HDFS審計日誌查看2019-06-29 00:32:44,275 INFO FSNamesystem.audit: allowed=trueugi
  • 離線KMS激活工具 HEU KMS Activator 正式版
    前言: 有小夥伴反饋之前發布的【激活工具 AAct Protable 通用KMS激活工具】顯示激活不了,我這邊已訪問測試過,可能因為部分小夥伴的系統由於是部分精簡的系統導致的,但也不全是這個問題,但是這款今天推薦這款HEU這款全線測試過WIN7+WIN10+office都沒有任何問題
  • Hadoop入門系列(四) HDFS的使用與編程
    Hadoop入門系列(四) HDFS的使用與編程內容使用Hadoop Shell命令操作hdfs文件系統,熟悉分布式文件系統及操作命令。配置Maven及使用Maven構建的Hadoop工程項目。使用Hadoop的JAVA api操作hdfs文件系統。
  • Kind + Docker 一鍵部署K8s集群
    docker學習和實踐都很容易,但是K8S的由於集群化,部署需要較多的機器,環境搭建學習實踐比較費勁這一度影響了K8S技術的普及。所以業界也除了一些簡易版的K8s集群環境,比如K3S(5 less than k8s),本文蟲蟲給大家介紹也是這樣一個項目Kind,一鍵部署的單機K8S環境,可以用於學習、本地開發和CI環境。
  • Spring Cloud學習筆記——Eureka Server服務搭建及集群部署
    Eureka也像我們之前聊過的Config一樣,分成Server和Client兩部分,Server提供服務註冊與發現的能力,類似於Dubbo + Zookeeper框架下的Zookeeper,Server可以部署成集群。Client則跟隨業務系統一起,可能向Server暴露自己的服務,也可以通過Server調用服務。
  • 用KubeFATE在Kubernetes上部署聯邦學習集群
    之前我們在文章《使用KubeFATE快速部署聯邦學習實驗開發環境(一)》、《使用KubeFATE快速部署聯邦學習實驗開發環境(二)》和《使用FATE進行圖片識別的深度神經網絡聯邦學習》中介紹過如何使用 KubeFATE 部署一個基於   Docker Compose 的 FA TE 聯邦學習集群,以便於快速嘗試體驗聯邦學習。但隨著聯邦學習的正式投入使用,訓練集、模型都會逐漸變大。
  • 集群和分布式,你知道其中的區別嗎?
    但是,回想一下什麼時候用集群這個詞,Redis集群、MySql集群、Nginx集群等等,按照上述的定義分析,這些集群裡的每個節點,都是跑的同樣的業務。微服務平臺、雲計算平臺,這些平臺的節點往往跑著不同的業務,組成強大的能力對外提供服務,這就是分布式系統。集群的關鍵作用是提升並發處理能力。
  • 5000W如何玩轉Filecoin市場 部署最符合企業的集群模式
    5000W如何玩轉Filecoin市場 部署最符合企業的集群模式 儘管每個集群都有自己的優勢,但它們都對應不同的場景。但是總體而言,相對於單機結構的集群,分布式集群具有降本增效的作用,相對於由集群架構構成的集群,可以減少資源浪費,提高服務的復用性。
  • 最詳細的 Hadoop 入門教程
    第四部分:完全分布式安裝完全分布式模式才是生產環境採用的模式,Hadoop 運行在伺服器集群上,生產環境一般都會做HA,以實現高可用。第五部分:Hadoop HA安裝HA是指高可用,為了解決Hadoop單點故障問題,生產環境一般都做HA部署。這部分介紹了如何配置Hadoop2.x的高可用,並簡單介紹了HA的工作原理。安裝過程中,會穿插簡單介紹涉及到的知識。
  • 在K8S上部署rabbitmq集群-有狀態服務
    不管你是作為一名合格的開發同學還是運維同學,都有必要對RabbitMQ有所了解。但是本文並不是一篇rabbitmq入門文章,閱讀需要有一定基礎。一、RabbitMQ簡介以熟悉的電商場景為例,如果商品服務和訂單服務是兩個不同的微服務,在下單的過程中訂單服務需要調用商品服務進行扣庫存操作。
  • 三個問題揭秘HDFS Router中的RPC流轉
    官網架構圖如下:核心概念:l 底層由多個namespace的子集群組成,可以是獨立的hdfs集群,也可以是Federation集群,或者他們的混合。l 通常每個namenode節點上會部署一個Router,Router向客戶端提供namenode接口的服務,Router本身無狀態。
  • 實戰 | HDFS常用的40個命令,你都知道嗎?
    HDFS命令行的格式如下所示:Hadoop fs -cmd <args>hdfs        為HDFS中的文件創建快照,實例代碼如下:           首先在 HDFS 中創建目錄 /sn,並將 /sn 目錄設置為可快照,如下所示:[root@node01 zwj]# hadoop fs -mkdir /sn[root@node01 zwj]#
  • vlmcsd搭建KMS伺服器激活sever 2019、LTSC 2019教程
    一、安裝vlmscd kms服務端,SSH登陸linux,執行以下:wget https:// github . com/Wind4/vlmcsd/releases/download/svn1111/binaries.tar.gz
  • 什麼是集群,分布式,一直都沒有弄明白
    什麼是集群,分布式,一直都沒有弄明白文|洪生鵬什麼是集群、分布式,對於這些概念,剛開始接觸的時候,不知有沒有人像我一樣,有種有點可望不可及的感覺,很難理解。集群系統中的單個計算機通常稱為節點,通常通過區域網連接,但也有其它的可能連接方式。集群計算機通常用來改進單個計算機的計算速度和/或可靠性。一般情況下集群計算機比單個計算機,比如工作站或超級計算機性能價格比要高得多。集群特點通過多臺計算機共同完成同一項工作,達到更高的效率。
  • 技術乾貨|如何做Hadoop集群存儲規劃—HDFS篇
    在幾年前大數據產業發展伊始,企業中的數據量都還是」資料庫量級」的時候,資料庫軟體和專用存儲都非常昂貴,這樣做的確是最佳實踐,既降低了軟硬體的成本,還提高了數據的可用性。然而技術發展日新月異,在企業的大數據發展終於進入」大數據量級」的時候,即便是普通廉價的工業磁碟也因為集群過大,數量太多產生了經濟方面的壓力。