hadoop認證
㈠ hadoop大數據處理高級工程師證書 有用嗎
IT行業現在有什麼證書已經不重要了,重要的是你會什麼、做過什麼、創造了什麼樣的價值
面試的時候表現的很明顯 - 看別人做過的人講方法,自己親手做過的人講細節
㈡ 有Hadoop使用kerberos認證經驗的大神沒有
一、部署無kerberos認證的Hadoop環境
參考另一篇筆記:hadoop集群部署
或者按照Cloudera的官方文檔:CDH3 Installation Guide.
二、環境說明
1、主機名
之前部署hadoop集群時,沒有使用節點的hostname,而是在hosts文件里添加了ip要域名的解析,部署後的hadoop沒有問題,但是在為集群添加kerberos認證時因為這一點,遇到很多的問題。所以,建議還是使用節點的hostname來做解析。
集群中包含一個NameNode/JobTracker,兩個DataNode/TaskTracker。
hosts文件
172.18.6.152 nn.hadoop.local
172.18.6.143 dn143.hadoop.local
172.18.6.145 dn145.hadoop.local
注意:hosts文件中不要包含127.0.0.1的解析。
2、hadoop安裝部署相關
hadoop 和kerberos的部署需要hadoop-sbin和hadoop-native。
如果使用的是rpm部署的hadoop,需要安裝上面的兩個rpm包。
我的集群使用的是tar包部署的,所以默認是包含這兩部分文件的,可以檢查一下:
hadoop-sbin對應的文件是:
/usr/local/hadoop/sbin/Linux-amd64-64
文件夾中包含兩個文件:jsvc、task-controller
hadoop-native對應的目錄是:
/usr/local/hadoop/lib/native
3、AES-256加密
我的系統使用的是centos6.2和centos5.7,對於使用centos5.6及以上的系統,默認使用AES-256來加密的。這就需要集群中的所有節點和hadoop user machine上安裝 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File
打開上面的鏈接,在頁面的下方,下載jdk對應的文件,jdk1.6.0_22下載下面的文件:
註:如果後面出現login failed的錯誤,應先檢查是否是從官方網站下載的JCE。
下載的文件是一個zip包,解開後,將裡面的兩個文件放到下面的目錄中:
/usr/java/jdk1.6.0_22/jre/lib/security
註:也可以不使用AED-256加密,方法見官方文檔對應的部分。
三、部署KDC
1、安裝kdc server
只需要在kdc中安裝
yum install krb5-server.x86_64 krb5-devel.x86_64
2、配置文件
kdc伺服器涉及到三個配置文件:
/etc/krb5.conf、
/var/kerberos/krb5kdc/kdc.conf、
/var/kerberos/krb5kdc/kadm5.acl
hadoop集群中其他伺服器涉及到的kerberos配置文件:/etc/krb5.conf。
將kdc中的/etc/krb5.conf拷貝到集群中其他伺服器即可。
集群如果開啟selinux了,拷貝後可能需要執行restorecon -R -v /etc/krb5.conf
/etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = for_hadoop
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 2d
forwardable = true
renewable = true
[realms]
for_hadoop = {
kdc = 172.18.6.152:88
admin_server = 172.18.6.152:749
}
[domain_realm]
[kdc]
profile=/var/kerberos/krb5kdc/kdc.conf
/var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
for_hadoop = {
master_key_type = aes256-cts
max_life = 25h
max_renewable_life = 4w
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md
5:normal des-cbc-crc:normal
}
/var/kerberos/krb5kdc/kadm5.acl
*/admin@for_hadoop *
3、創建資料庫
#kdb5_util create -r for_hadoop -s
該命令會在/var/kerberos/krb5kdc/目錄下創建principal資料庫。
4、關於kerberos的管理
可以使用kadmin.local或kadmin,至於使用哪個,取決於賬戶和訪問許可權:
kadmin.local(on the KDC machine)or kadmin (from any machine)
如果有訪問kdc伺服器的root許可權,但是沒有kerberos admin賬戶,使用kadmin.local
如果沒有訪問kdc伺服器的root許可權,但是用kerberos admin賬戶,使用kadmin
5、創建遠程管理的管理員
#kadmin.local
addprinc root/admin@for_hadoop
密碼不能為空,且需妥善保存。
6、創建測試用戶
#kadmin.local
addprinc test
7、常用kerberos管理命令
#kadmin.local
列出所有用戶 listprincs
查看某個用戶屬性,如 getprinc hdfs/nn.hadoop.local@for_hadoop
注意,是getprinc,沒有's'
添加用戶 addprinc
更多,查看幫助
8、添加kerberos自啟動及重啟服務
chkconfig --level 35 krb5kdc on
chkconfig --level 35 kadmin on
service krb5kdc restart
service kadmin restart
9、測試
使用之前創建的test用戶
# kinit test
Password for test@for_hadoop:
#
㈢ hadoop哪些組件完成了認證
Hadoop是一個分布式系統基礎架構,用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力高速運算和存儲。簡單地說來,Hadoop是一個可以更容易開發和運行處理大規模數據的軟體平台。
Hadoop主要子項目:
* Hadoop Common:
在0.20及以前的版本中,包含HDFS、MapRece和其他項目公共內容,從0.21開始HDFS和MapRece被分離為獨立的子項目,其餘內容為Hadoop
Common
* HDFS: Hadoop 分布式文件系統 (Distributed File System) - HDFS (Hadoop Distributed
File System)
* MapRece:並行計算框架,0.20前使用 org.apache.hadoop.mapred
舊介面,0.20版本開始引入org.apache.hadoop.maprece的新API
* HBase: 類似Google BigTable的分布式NoSQL列資料庫。(HBase 和 Avro 已經於2010年5月成為頂級 Apache
項目[1])
* Hive:數據倉庫工具,由Facebook貢獻。
* Zookeeper:分布式鎖設施,提供類似Google Chubby的功能,由Facebook貢獻。
* Avro:新的數據序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制。
㈣ hadoop除simple模式外還支持什麼用戶認證模式
目前Hadoop的穩定版本為1.2.1,我們的實驗就在hadoop-1.2.1上進行
Hadoop 版本:1.2.1
OS 版本: Centos6.4
環境配置
機器名
Ip地址
功能
用戶
Hadoop1
192.168.124.135
namenode, datanode,
secondNameNode
jobtracker, tasktracer
hadoop
Hadoop2
192.168.124.136
Datanode, tasktracker
hadoop
Hadoop3
192.168.124.137
Datanode, tasktracker
hadoop
client
192.168.124.141
client
test
簡單介紹一下hadoop安全需要哪些授權
先來看一下hdfs,當一個用戶需要讀寫hadoop集群上的一個文件時,他通常先跟namenode聯系,這就需要namenode的認證(org.apache.hadoop.hdfs.protocol.ClientProtocol定義了需要授權的介面),當namenode成功的認證client用戶時,會返回給用戶存儲文件的datanode,client需要讀寫datanode上的數據時,同樣也需要datanode的認證(org.apache.hadoop.hdfs.protocol.ClientDatanodeProtocol定義了需要授權的介面)。datanode和namenode之間也需要聯系,datanode需要定時向namenode發送heartbeat和數據塊的信息(org.apache.hadoop.hdfs.server.protocol.DatanodeProtocol定義了需要授權的介面)。Datanode之間也要發生數據交換,比如負載均衡,數據失效(org.apache.hadoop.hdfs.server.protocol.InterDatanodeProtocol定義了需要授權的介面)。Hadoop通常還需要一個secondnamenode來備份數據,因為secondnamenode定期向namenode發送數據請求,這中間也需要namenode的認證(org.apache.hadoop.hdfs.server.protocol.NamenodeProtocol定義了需要授權的介面)。還有兩個不常用的授權org.apache.hadoop.security.authorize.和org.apache.hadoop.security.RefreshUserMappingsProtocol,這兩個授權時檢查是否有刷新授權和用戶的許可權。
我們再來看一下mapred框架需要哪些授權
當一個client寫好map和rece以及其他相關的程序後,他首先向jobtracker提交job,這就需要得到jobtracker的授權(org.apache.hadoop.mapred.JobSubmissionProtocol定義了需要授權的介面)。提交的job經過jobtracker調度後,會合理的分配到tasktracker節點上,hadoop採用的是tasktracker向jobtracker發送heartbeat或其他信息的返回值來得到task的信息,而不是jobttracker將task推送給tasktracker,也就是說tasktracker需要jobtracker的認證(org.apache.hadoop.mapred.InterTrackerProtocol定義了需要授權的介面)。還有一個必要重要的授權,tasktracker在得到task後,不是直接在自己的進程里執行,而是啟動一個叫做Child的子進程,tasktracker和這些Child子進程(通常最多隻有兩個map和兩個rece)需要交換數據。盡管linux存在很多種進程共享數據的方式,Child和tasktracker還是通過網路的方式來的,這個交換過程主要都是由Child發起的。所以這些Child也需要得到tasktracer的認證(org.apache.hadoop.mapred.TaskUmbilicalProtocol定義了需要授權的介面)。跟hdfs一樣,mapre中也有兩個不常用的授權org.apache.hadoop.security.authorize.和org.apache.hadoop.security.RefreshUserMappingsProtocol,這兩個授權時檢查是否有刷新授權和用戶的許可權。
這些授權都在org.apache.hadoop.hdfs.HDFSPolicyProvider和org.apache.hadoop.mapred.MapRecePolicyProvider中定義,有興趣的可能看看。
簡單方式配置
conf/core-site.xml加上
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hadoop.security.authentication</name>
<value>simple</value>
</property>
下面做一些簡單測試,來驗證一下配置
測試代碼1
Configuration conf = new Configuration();
conf.set("fs.default.name", "hdfs://hadoop1:9000");
FileSystem hdfs = FileSystem.get(conf);
Path path = new Path("/user/hadoop/input");
FileStatus[] files = hdfs.listStatus(path);
for(int i=0; i< files.length; i++ ){
System.out.println(files[i].getPath());
}
控制台打出的結果
㈤ cloudera的hadoop認證具體考什麼啊,在哪報名啊什麼時候考啊去哪咨詢啊
的Hadoop認證目前包括兩類:開發員和管理員。而這兩個認證考試和其相應Hadoop培訓課程往往是綁定在一起的。
不用多說,Cloudera大有發展成為Hadoop領域RedHat之趨勢,其提供的認證考試自然會考核到那些非常重要的知識點和技能。他們的開發員資格證書和管理員資格證書在全球業內是目前唯一的也自然是最具權威性的。目前我們正處在大數據時代,企業要向「數據驅動」模式轉換,Hadoop人才需求很大,但是國內外Hadoop人才短缺。國外譬如Oracle,Apple和HP等都不再坐等合適的具有Hadoop技能的應聘者上門,而是逐漸採取派遣其員工參加Cloudera的Hadoop培訓和認證考試。
綜上所述,回答是Cloudera的Hadoop培訓和認證非常有用:1)獲得了讓大家信得過的Hadoop技能 2)所以,在其他條件相同的情況下,用人單位會更相信以及會優先考慮持有Cloudera認證的工程師,為企業保障了Hadoop人員的質量,而這對個人的職業發展也無疑將是很大的幫助。
BTW,等拿到了證書,加入他們在Linkedin上的認證群,也許會經常被不乏國內外知名公司的眾獵頭所「騷擾」,這算不算的上也是一個好處呢 :)
㈥ cloudera的hadoop認證有用嗎
Cloudera的Hadoop認證目前包括兩類:開發員和管理員。而這兩個認證考試和其相應Hadoop培訓課程往往是綁定在一起的。
不用多說,Cloudera大有發展成為Hadoop領域RedHat之趨勢,其提供的認證考試自然會考核到那些非常重要的知識點和技能。他們的開發員資格證書和管理員資格證書在全球業內是目前唯一的也自然是最具權威性的。目前我們正處在大數據時代,企業要向「數據驅動」模式轉換,Hadoop人才需求很大,但是國內外Hadoop人才短缺。國外譬如Oracle,Apple和HP等都不再坐等合適的具有Hadoop技能的應聘者上門,而是逐漸採取派遣其員工參加Cloudera的Hadoop培訓和認證考試。
綜上所述,回答是Cloudera的Hadoop培訓和認證非常有用:1)獲得了讓大家信得過的Hadoop技能 2)所以,在其他條件相同的情況下,用人單位會更相信以及會優先考慮持有Cloudera認證的工程師,為企業保障了Hadoop人員的質量,而這對個人的職業發展也無疑將是很大的幫助。
BTW,等拿到了證書,加入他們在Linkedin上的認證群,也許會經常被不乏國內外知名公司的眾獵頭所「騷擾」,這算不算的上也是一個好處呢 :)
㈦ hadoop的eclipse插件支持kerberos認證嗎
hadoop的eclipse插件支持:
使用HadoopRandomTextWriter生成數據,並對數據進行排序WordCount(wordcount):統計輸入數據中回每個單詞的出答現次數,輸入數據使用HadoopRandomTextWriter生成TeraSort(terasort):這是由微軟的資料庫大牛JimGray(2007年失蹤)創建的標准benchmark,輸入數據由HadoopTeraGen產生!
㈧ hadoop有認證的證書么費用大概是多少
先不說好考,這了解這個證書的含金量,如果社會上未得到認可,考了意義也不大,還有國人會怕考試嗎,沒有考不過的試,只有你有沒有下功夫,好考的東西不值錢,值錢的不好考!
㈨ 如何對要使用hadoop服務的用戶進行登錄認證
首先你先確定集群里的電腦都能ping通,ssh登錄成功,防火牆關閉,還有就是format格式化回的問題了,格式化時要防止答NameNode的namespaceID與DataNode的namespaceID的不一致,因為每格式化一次會產生Name、Data、tmp等臨時文件記錄信息,多次格式化會產生很多,會導致ID的不同,所以已經格式化過的集群要先刪除各個電腦中的臨時文件等。這些都弄好了就沒有問題了,加油!