版本-->hadoop0.23.1
下载 wget http://labs.renren.com/apache-mirror/hadoop/core/hadoop-0.23.1/hadoop-0.23.1.tar.gz
1. 前言
首先说下23这个版本,之前namenode一直是单点,现在加入了nameservice(ns) pool这个概念, 官方给出的架构图==>
并且这个ns是配置在datanode中的
看下如下配置
<configuration>
<property>
<name>dfs.federation.nameservices</name>
<value>ns1</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>hdfs://10.5.18.87:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns1</name>
<value>10.5.18.87:50070</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/brucexx/hadoop-0.23.1/hadoop_datanode</value>
</property>
</configuration>
其中 10.5.18.87 为ns1的IP
dfs.federation.nameservices这个属性可以配置多个IP的,机器有限,只加入一个ns1
观察下 ===>hadoop0.23.1的目录结构
./sbin/... 一些sh命令的入口,有start-dfs.sh,start-yarn.sh ...等命令,
yarn是新的mapreduce架构,但是具体的设计理念已经改变,之前 的mapreduce的JobTracker的职责太重了,
单个JobTracker的单点故障和扩展性
1)JobTracker的负载较重。JobTracker负责作业和任务的初始化、以及提供TaskTracker的RPC Server、任务的调度等任务。因此,JobTracker一旦故障,所有执行的任务的状况丢失。
2)扩展性问题。JobTracker目前最多支持4000nodes、40000个concurrent tasks。
所以将这块具体细化出来演化为现在的这种结构模式--》
ResourceManager,NodeManager
./bin/... 一些hdfs支持的命令,fs [-mkdir|-ls|-copyFromLocal..]等。。。具体看一些文档
主要是查看namenode下的一些可用资源,比较有意思的是 ./bin/hadoop fs -ls 会报错,原因是没有主文件夹 ./bin/hadoop fs -ls / 这样即可.
./bin/hadoop fs -mkdir brucexx 创建出来的文件夹是 /user/root/brucexx,./bin/hadoop fs -mkdir /brucexx这样才对。
./etc/hadoop/... 一些配置文件,
core-site.xml 定义 fs协议地址,对应的目录等。
hdfs-site.xml 定义 hdfs nn, snn(secondary namenode),dn, ns等,
yarn-site.xml 定义 resourcemanager,nodemanager等,即以前的job tracker, task tracker
2.实践-->
A 准备三台机器,master,s1,s2(需要在/etc/hosts里添加域名)其中master作为namenode,s1,s2为datanode,需要注意的是
s1,s2里面的/etc/hosts 必须添加 master这台机器域名,为什么?因为在namenode管理里会有跳转到对应的datanode里的,
这时候跳转的时候传入的是master这个域名,如果不添加datanode是不可被识别的。
B
java 环境,这个比较坑爹,1.在全局环境 ~./baserc或者/etc/profile 中配置JAVA_HOME还不行,还需要在
./libexec/hadoop-config.sh 这个目录下配置一个
export JAVA_HOME=/home/admin/jdk6/jdk1.6.0_21
不然会出现相关的错误
C1-->配置namenode
./etc/hadoop/core-site.xml
配置如下-->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
./etc/hadoop/hdfs-site.xml
<configuration>
<!--snn地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/brucexx/hadoop-0.23.1/hadoop-namenode</value>
</property>
</configuration>
namenode是默认端口是50070,如果你要配置的话,加吧
<property>
<name>dfs.namenode.http-address</name>
<value>master:50050</value>
</property>
A1 SecondaryNameNode配置
<property>
<name>dfs.federation.nameservice.id</name>
<value>master:50070</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>3600</value><!--1小时 -->
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value><!--64MB-->
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/home/brucexx/hadoop-0.23.1/checkpoint-data</value>
</property>
<!--dfs.namenode.edits.dir 这个也需要设置下 -->
SecondaryNameNode有两个作用,一是镜像备份,二是日志与镜像的定期合并。两个过程同时进行,称为checkpoint. 镜像备份的作用:备份fsimage(fsimage是元数据发送检查点时写入文件);日志与镜像的定期合并的作用:将Namenode中edits日志和fsimage合并,防止(如果Namenode节点故障,namenode下次启动的时候,会把fsimage加载到内存中,应用edit log,edit log往往很大,导致操作往往很耗时。)
日志与镜像的定期合并总共分五步:
SecondaryNameNode通知NameNode准备提交edits文件,此时主节点产生edits.new
SecondaryNameNode通过http get方式获取NameNode的fsimage与edits文件(在SecondaryNameNode的current同级目录下可见到 temp.check-point或者previous-checkpoint目录,这些目录中存储着从namenode拷贝来的镜像文件)
SecondaryNameNode开始合并获取的上述两个文件,产生一个新的fsimage文件fsimage.ckpt
SecondaryNameNode用http post方式发送fsimage.ckpt至NameNode
NameNode将fsimage.ckpt与edits.new文件分别重命名为fsimage与edits,然后更新fstime,整个checkpoint过程到此结束。 在新版本的hadoop中,SecondaryNameNode两个作用被两个节点替换, checkpoint node与backup node. SecondaryNameNode备份由三个参数控制fs.checkpoint.period控制周期,fs.checkpoint.size控制日志文件超过多少大小时合并, dfs.http.address表示http地址,这个参数在SecondaryNameNode为单独节点时需要设置。
所以在线上snn的配置是相当重要的,不然元数据一旦丢失。。。可想而知
下面说下checkpointNode和backupNode的优点和配置
A2 CheckPoint Node
通过./bin/hdfs namenode -checkpoint 来启动
Checkpoint Node方案与Secondary NameNode的原理基本相同,只是实现方式不同。该方案利用Hadoop的Checkpoint机制进行备份,配置一个Checkpoint Node。该节点会定期从Primary NameNode中下载元数据信息(fsimage+edits),将edits与fsimage进行合并,在本地形成最新的Checkpoint,并上传到Primary NameNode进行更新。
当NameNode发生故障时,极端情况下(NameNode彻底无法恢复),可以在备用节点上启动一个NameNode,读取Checkpoint信息,提供服务。
优点
使用简单方便、无需开发、配置即可。
元数据有多个备份。
缺点
没有做到热备、备份节点切换时间长。
namenode -->
<configuration>
<property>
<name>dfs.namenode.backup.http-address</name>
<value>master:9001</value>
</property>
CheckPointNode -->
<property>
<name>dfs.federation.nameservice.id</name>
<value>master:50070</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>3600</value><!--1小时 -->
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value><!--64MB-->
</property>
A3 backupNode
通过./bin/hdfs namenode -backup 来启动
配置和CheckPointNode配置 一样,但是机制不同,
利用新版本Hadoop自身的Failover措施,配置一个Backup Node,Backup Node在内存和本地磁盘均保存了HDFS系统最新的名字空间元数据信息。如果NameNode发生故障,可用使用Backup Node中最新的元数据信息。
优点
简单方便、无需开发、配置即可使用。
Backup Node的内存中对当前最新元数据信息进行了备份(Namespace),避免了通过NFS挂载进行备份所带来的风险。
Backup Node可以直接利用内存中的元数据信息进行Checkpoint,保存到本地,与从NameNode下载元数据进行Checkpoint的方式相比效率更高。
NameNode 会将元数据操作的日志记录同步到Backup Node,Backup Node会将收到的日志记录在内存中更新元数据状态,同时更新磁盘上的edits,只有当两者操作成功,整个操作才成功。这样即便NameNode上的元数据发生损坏,Backup Node的磁盘上也保存了HDFS最新的元数据,从而保证了一致性。
缺点
高版本(0.21以上)才支持。
from ==> http://book.51cto.com/art/201205/339039.htm
C2--->安装 ssh
sudo apt-get install ssh
namenode要访问datanode的话是需要密码的,我们直接用证书搞之
1. /usr/bin/ssh-keygen -t rsa ,疯狂回车
2. scp /root/.ssh/id_rsa.pub root@s1:/root/.ssh/authorized_keys
ssh s1 立刻登录上
C3-->配置datanode
登陆s1,把master上的hadoop-0.23.1.tar.gz scp到s1上。
设置 JAVA_HOME后
配置 hdfs-site.xml
<configuration>
<property>
<name>dfs.federation.nameservices</name>
<value>ns1</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ns1</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ns1</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/brucexx/hadoop-0.23.1/hadoop_datanode</value>
</property>
</configuration>
万事OK,回到master上
./sbin/start-dfs.sh
会看到
root@ubuntu:/home/brucexx/hadoop-0.23.1# ./sbin/start-dfs.sh
Starting namenodes on [master]
master: starting namenode, logging to /home/brucexx/hadoop-0.23.1/logs/hadoop-root-namenode-ubuntu.out
s2: starting datanode, logging to /home/brucexx/hadoop-0.23.1/logs/hadoop-root-datanode-trade.mysh01.alipay.net.out
s1: starting datanode, logging to /home/brucexx/hadoop-0.23.1/logs/hadoop-root-datanode-settlecore.shd7.alipay.net.out
Starting secondary namenodes [master]
master: starting secondarynamenode, logging to /home/brucexx/hadoop-0.23.1/logs/hadoop-root-secondarynamenode-ubuntu.out
master: SLF4J: Class path contains multiple SLF4J bindings.
这样就OK了。
然后命令行里
./bin/hadoop fs -mkdir /brucexx
./bin/hadoop fs -ls /
会有这个文件夹了
通过浏览器 http://master:50050/ 访问,会看到所有的datanode有两个,lives nodes 2
点击之会看到对应的结点信息。。部署成功!
- 大小: 54.2 KB
- 大小: 75.3 KB
- 大小: 32.3 KB
分享到:
相关推荐
Hadoop介绍,HDFS和MapReduce工作原理
《Hadoop技术内幕:深入解析HADOOP COMMON和HDFS架构设计与实现原理》这本书是IT领域的经典之作,专门探讨了Hadoop的核心组件——Hadoop Common和HDFS(Hadoop Distributed File System)的设计理念、架构及其背后的...
Hadoop 的 HDFS(Hadoop Distributed File System)是 Hadoop 项目中最核心的组件之一,它提供了高可靠、高-performance 的分布式文件系统。HDFS 的核心组件包括 Namenode、Datanode、Block、DataStreamer 等。其中...
《Hadoop技术内幕:深入解析HADOOP COMMON和HDFS架构设计与实现原理》这本书是Hadoop技术领域的一本深入解析之作,它详尽地探讨了Hadoop的两大核心组件——HADOOP COMMON和HDFS(Hadoop Distributed File System)的...
Hadoop 技术内幕:深入解析Hadoop Common 和HDFS 架构设计与实现原理
Hadoop技术内幕:深入解析Hadoop Common 和HDFS 架构设计与实现原理 (大数据技术丛书) 原版书籍,非扫描版,使用kindle可以打开,也可以转换为epub使用ibooks打开
HDFS(Hadoop Distributed File System)是Hadoop的核心组件之一,它是一个高度容错性的系统,能够自动地将数据分布在多台服务器上,确保数据的高可用性和可扩展性。 标题中的"hdfs.rar_hadoop_hadoop ubuntu_hdfs_...
Hadoop作为一个领先的开源分布式计算框架,其核心组成部分之一便是Hadoop Distributed File System(HDFS),它为大规模数据处理提供了高效、可靠且可扩展的存储解决方案。HDFS的设计理念主要侧重于处理大量数据的...
在本实验中,我们将深入探讨Hadoop的安装过程及其核心组件HDFS(Hadoop Distributed File System)的基础操作。Hadoop是大数据处理领域的基石,尤其在云计算环境中,它扮演着至关重要的角色。通过学习Hadoop,我们...
基于hadoop伪分布式hdfs系统完成的云盘项目基于hadoop伪分布式hdfs系统完成的云盘项目源码+项目说明+sql数据库.zip基于hadoop伪分布式hdfs系统完成的云盘项目源码+项目说明+sql数据库.zip基于hadoop伪分布式hdfs系统...
除了HDFS和MapReduce之外,Hadoop还有一系列扩展组件,包括: - **HBase**:一个高性能的分布式列式数据库,基于HDFS构建,支持实时读写访问。 - **Pig**:一种高级的数据流语言和执行框架,简化了在Hadoop上的数据...
赠送jar包:hadoop-hdfs-2.6.5.jar; 赠送原API文档:hadoop-hdfs-2.6.5-javadoc.jar; 赠送源代码:hadoop-hdfs-2.6.5-sources.jar; 赠送Maven依赖信息文件:hadoop-hdfs-2.6.5.pom; 包含翻译后的API文档:hadoop...
赠送jar包:hadoop-hdfs-2.7.3.jar; 赠送原API文档:hadoop-hdfs-2.7.3-javadoc.jar; 赠送源代码:hadoop-hdfs-2.7.3-sources.jar; 赠送Maven依赖信息文件:hadoop-hdfs-2.7.3.pom; 包含翻译后的API文档:hadoop...
《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》由腾讯数据平台的资深Hadoop专家、X-RIME的作者亲自执笔,对Common和HDFS的源代码进行了分析,旨在为Hadoop的优化、定制和扩展提供原理性的指导。...
赠送jar包:hadoop-hdfs-client-2.9.1.jar 赠送原API文档:hadoop-hdfs-client-2.9.1-javadoc.jar 赠送源代码:hadoop-hdfs-client-2.9.1-sources.jar 包含翻译后的API文档:hadoop-hdfs-client-2.9.1-javadoc-...
《Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理》还从源代码实现中对分布式技术的精髓、分布式系统设计的优秀思想和方法,以及Java语言的编码技巧、编程规范和对设计模式的精妙运用进行了总结和...
Hadoop技术-HDFS元数据是Hadoop技术中非常重要的一部分,HDFS(Hadoop Distributed File System)是Hadoop技术的核心组件之一,负责存储和管理大规模数据。HDFS元数据是Hadoop技术中用于维护整个文件系统的数据,...
赠送jar包:hadoop-hdfs-client-2.9.1.jar; 赠送原API文档:hadoop-hdfs-client-2.9.1-javadoc.jar; 赠送源代码:hadoop-hdfs-client-2.9.1-sources.jar; 赠送Maven依赖信息文件:hadoop-hdfs-client-2.9.1.pom;...