小云云

Hadoop20Federation

Hadoop20Federation

原文:http://www.linuxidc.com/Linux/2014-05/101179.htm

1 概述

Hadoop1.0的架构中,HDFS的所有的元数据都放在一个namenode中,只有一个namespace(名字空间)。这样随着HDFS的数据越来越多,单个namenode的资源使用必然会达到上限,而且namenode的负载也会越来越高,限制了HDFS的性能。

在hadoop2.0架构中,namenode federation(联合)通过多个namenode/namespace把元数据的存储和管理分散到多个节点中,使到namenode/namespace可以通过增加机器来进行水平扩展,并且能把单个namenode的负载分散到多个节点中,在HDFS数据规模较大的时候不会也降低HDFS的性能。还有可以通过多个namespace来隔离不同类型的应用,把不同类型应用的HDFS元数据的存储和管理分派到不同的namenode中。

2 架构

如果上图所示,一个block pool由属于同一个namespace的数据块组成,每个namenode管理一个namespace,即每个namenode负责存储和管理一个block pool的元数据。而每个datanode是会连接所有的namenode的,为所有的block pools所共享,即每个datanode都会存储所有的block pools的数据块。每个block pool通过namespace隔离开来,对一个block pool的操作不会影响另外一个block pool。

从配置和使用的角度来看,整个HDFS有一个唯一的clusterid,如“hellokitty”,它可以配置多个block pool/namespace(也叫name service),如“mycluster”和“yourcluster”。为了方便访问不同名字空间的目录和文件,federation还提供了一个类似linux的Client Side Mount Table的挂载机制,提供了一个统一的全局的文件系统视图(viewfs)。用户可以根据自己的需要把各个namespace挂载到一个叫做viewFS的文件系统视图的不同目录下。例如namespace/name service “mycluster”和“yourcluster”分别挂载到viewfs的“/my”和“/your”目录下,如下图所示:

3 federation和HA

上面提到的每个namespace/name service配置一个namenode,这样这个namespace/name service的单点问题还是存在,因此可以给每个namespace/name service配置成HA。

假设我们有4台namenode,分别是namenode1,namenode2,namenode3,namenode4。其中namenode1和namenode2是namespace/name service“mycluster”的两个主备namenode节点,NN_ID分别是“mycluster”的“nn1”和“nn2”;而namenode3和namenode4是namespace/name service“yourcluster”的两个主备namenode节点,NN_ID分别是“yourcluster”的“nn1”和“nn2”。

“mycluster”和“yourcluster”分别挂载在viewfs的“/my”和“/your”目录下。

结构如下图所示:

4 实战tips

一般1000台机器一下的中小规模的hadoop集群,一个namespace/name service就足够了,不需要考虑federation,以免增加不必要的复杂性。

Apache Hadoop HDFS federation官方wiki:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/Federation.html

扩展阅读:http://www.sizeofvoid.net/hadoop-2-0-namenode-ha-federation-practice-zh/

使用CDHManager安装Kerberos之一步一步配置

使用CDHManager安装Ker

一、部署Kerberos到集群

1.选择集群

2.安装Kerberos

wKioL1QSX7TSXoYCAANJ5v_Jbg4783.jpg

二、启用Kerberos

1.启用向导

wKiom1QSX-GRvOd_AAMpGvkN7Ic317.jpg

2.逐项检测

wKioL1QSYDST2SaAAAQM_DUQ7Ds202.jpg

这一步一些问题的参考:http://bananalighter.blog.51cto.com/6386339/1551473

3.创建KDC的管理员账户

填入CM窗口,注意用户名后面要@安全域

4.无脑下一步

参考:

http://debugo.com/kerberos-5-conf/

http://blog.chinaunix.net/uid-1838361-id-3243243.html

http://wgzhao.com/2005/12/02/kerberos-authentication-configuration/

还有师父的人肉指导╮(╯▽╰)╭

使用CDHManager安装Kerberos服务——之初始化失败

原文:http://blog.sina.com.cn/s/blog_6ccfa4f30100v06s.html

我碰到了:第一、二

No.1
# kinit admin@test.com
kinit: Cannot find KDC for requested realm whilegetting initial credentials
Adding “dns_lookup_kdc = true” to the [libdefaults] section of krb5.conf seems to fix the problem.
—————————————————————-
No.2
# kinit admin@test.com
kinit: Client not found in Kerberos database while getting initial credentials
This is Kerberos way of saying “User not found”,solution as follows:
# kinit administrator@test.com
Password for administrator@test.com:<input domain controller’s password>
kinit: Clock skew too great while getting initial credentials
ntpdate -b 172.16.153.130
26 Oct 17:05:06 ntpdate[29684]: step time server 172.16.153.130 offset 14586.370253 sec
——————————————————————–
No.3
# kinit administrator@test.com
kinit: Cannot resolve network address for KDC in realm “test.com” while getting initial credentials
# vim /etc/resolv.conf
nameserver 172.16.153.2  # (DNS Servers’ IP)
warning: if the ip is writen wrong, you cannot ping test.com successfully.
/etc/resolv.conf is DNS configure file
——————————————————————-
No.4
[root@chenjintao etc]# kinit administrator@test.com
Password for administrator@test.com:
kinit: KDC reply did not match expectations while getting initial credentials
[root@chenjintao etc]# kinit administrator@TEST.COM
Password for administrator@TEST.COM: 

(本地源)安装CDHManager

(本地源)安装CDHManager

参考链接:http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cm_ig_install_path_b.html#cmig_topic_6_6_1_unique_1

一、安装jdk配java环境

打开/etc/profile

增加:

二、安装mysql

三、安装cdh Manager

四、启动cdh Manager

五、访问管理页面

http://localhost:7180

账号密码:admin/admin

 

参考:

http://debugo.com/cm5-install/

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CM5/latest/Cloudera-Manager-Installation-Guide/cm5ig_mysql.html

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CM5/latest/Cloudera-Manager-Installation-Guide/cm5ig_install_path_C.html?scroll=cmig_topic_6_7