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的不同,所以已经格式化过的集群要先删除各个电脑中的临时文件等。这些都弄好了就没有问题了,加油!