hadoop-hdfs分布式文件系统
- SecondaryNameNode 在一定程度上可以对NameNode进行备份,但不是热备。
- Block的副本放置策略
- 第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
- 第二个副本:放置在与第一个副本不同的机架的节点上。
- 第三个副本:与第二个副本相同机架的节点。(在同一个机架上可以保证传输速度,同一个机架一般是一个交换机)
- 更多副本:随机节点
- HDFS读流程
- 1.客户端发送请求,通过调用API 发送请求给NameNode
- 2.获得相应block的位置信息
- 3.通过API 并发的读各个block
- 4,5 并发的读block (block的副本有多个,只读一个从空闲的机器上)
- 6. 返回给客户端,并关闭流
- 注意,这个一般不会读一个超大的文件
- HDFS 写流程
-
- 注意:副本产生机制是datanode自己进行复制的,不是客户端写三份,dataNode会启动新的线程,进行副本的拷贝。
-
使用3台机器搭建hdfs完全分布式集群 201(NameNode),202(DataNode),203(DataNode)
整体架构
NameNode(192.168.1.201)
DataNode(192.168.1.202,192.168.1.203)
SecondaryNameNode(192.168.1.202)
1.从官网上下载hadoop包,并上传到linux系统上
hadoop-1.2.1.tar.gz
解压
tar -zxvf hadoop-1.2.1.tar.gz linux服务器上需要jdk环境
由于名字长,可以加一条软连
ln -sf /root/hodoop-1.2.1 /home/hodoop-1.2
2.修改 core-site.xml配置文件
vi /home/hadoop-1.2/conf
配置NameNode主机及端口号,配置工作目录
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.201:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-1.2</value>
</property>
</configuration>
默认的工作目录在tmp目录下,linux系统重新启东时会清空tmp目录
在解压hadoop压缩包后
/hadoop-1.2.1/docs/core-default.html
hdfs的工作目录是以tmp临时目录为基础的
3.配置conf/hdfs-site.xml
配置dfs.replication,配置DataNode的副本个数 202,203作为dataNode,所以副本个数 <= 2
同样的副本不能再同一台机器上,副本个数一定是<=DataNode个数
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
4.配置dataNode节点
vi /conf/slaves (可以不使用ip地址,使用主机名)
5.配置SecondaryNameNode,注意不能与NameNode在同一台机器上
vi /conf/masters
192.168.1.202
6.配置免密码登录
免密码登录可以在任意一台机器上输入命令,可以启动所有机器上的进程
如果不做免密码登录,需要在每一台机器上输入启动进程命令
配置201上的免密码登录
在201上生成秘钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
在.ssh目录下生成
- [root@bogon .ssh]# ls
- authorized_keys id_dsa id_dsa.pub known_hosts
- [root@bogon .ssh]#
id_dsa 为私钥,id_dsa.pub为公钥
配置单台机器的免密码登录
执行下列命令
- $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
- $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
配置跨节点的免密码登录
先执行
- $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
生成id_dsa.pub公钥
将id_dsa.pub拷贝到将要免密码登录的那台机器上
- scp id_dsa.pub root@192.168.1.202:~
在 192.168.1.202 上将id_dsa.pub追加到 authorized_keys 日子文件上
- $ cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
使用 more authorized_keys 查看
在201上使用 ssh 192.168.1.202:22 登录到202上
需要先做本地免密码登录,然后做跨节点免密码登录
配置结果为 201-->202,201-->203, 如果需要相反,则主要重复上边相反过程
7.所有节点进行相同配置
拷贝压缩包
scp -r ~/hadoop-1.2.1.tar.gz root@192.168.1.202:~/
解压
tar -zxvf hadoop-1.2.1.tar.gz
创建软连
ln -sf /root/hadoop-1.2.1 /home/hodoop-1.2
进行格式化
- [root@bogon bin]# ./hadoop namenode -format
配置JAVA_HOME
- [root@bogon conf]# vi hadoop-env.sh
- # Set Hadoop-specific environment variables here.
- # The only required environment variable is JAVA_HOME. All others are
- # optional. When running a distributed configuration it is best to
- # set JAVA_HOME in this file, so that it is correctly defined on
- # remote nodes.
- # The java implementation to use. Required.
- export JAVA_HOME=/usr/java/jdk1.7.0_75
- # Extra Java CLASSPATH elements. Optional.
- # export HADOOP_CLASSPATH=
- # The maximum amount of heap to use, in MB. Default is .
- # export HADOOP_HEAPSIZE=
- # Extra Java runtime options. Empty by default.
- # export HADOOP_OPTS=-server
- # Command specific options appended to HADOOP_OPTS when specified
- "hadoop-env.sh" 57L, 2433C
将已配置好的配置文件拷贝到其他机器上(需要拷贝到202,203上)
- [root@bogon conf]# scp ./* root@192.168.1.202:/home/hadoop-1.2/conf/
启动
[root@bogon bin]# ./start-dfs.sh
在启动前需要关闭防火墙
service iptables stop
启动后可以使用 jps 查看是否启动成功
hadoop-hdfs分布式文件系统的更多相关文章
- Hadoop HDFS分布式文件系统 常用命令汇总
引言:我们维护hadoop系统的时候,必不可少需要对HDFS分布式文件系统做操作,例如拷贝一个文件/目录,查看HDFS文件系统目录下的内容,删除HDFS文件系统中的内容(文件/目录),还有HDFS管理 ...
- 我理解中的Hadoop HDFS分布式文件系统
一,什么是分布式文件系统,分布式文件系统能干什么 在学习一个文件系统时,首先我先想到的是,学习它能为我们提供什么样的服务,它的价值在哪里,为什么要去学它.以这样的方式去理解它之后在日后的深入学习中才能 ...
- Hadoop基础-HDFS分布式文件系统的存储
Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...
- 【史上最全】Hadoop 核心 - HDFS 分布式文件系统详解(上万字建议收藏)
1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪 ...
- HDFS分布式文件系统资源管理器开发总结
HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...
- Hadoop HDFS分布式文件系统设计要点与架构
Hadoop HDFS分布式文件系统设计要点与架构 Hadoop简介:一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群 ...
- 通过Thrift访问HDFS分布式文件系统的性能瓶颈分析
通过Thrift访问HDFS分布式文件系统的性能瓶颈分析 引言 Hadoop提供的HDFS布式文件存储系统,提供了基于thrift的客户端访问支持,但是因为Thrift自身的访问特点,在高并发的访问情 ...
- 【转】Hadoop HDFS分布式环境搭建
原文地址 http://blog.sina.com.cn/s/blog_7060fb5a0101cson.html Hadoop HDFS分布式环境搭建 最近选择给大家介绍Hadoop HDFS系统 ...
- 认识HDFS分布式文件系统
1.设计基础目标 (1) 错误是常态,需要使用数据冗余 (2)流式数据访问.数据批量读而不是随机速写,不支持OLTP,hadoop擅长数据分析而不是事物处理. (3)文件采用一次性写多次读的模型, ...
- 1、HDFS分布式文件系统
1.HDFS分布式文件系统 分布式存储 分布式计算 2.hadoop hadoop含有四个模块,分别是 common. hdfs和yarn. common 公共模块. HDFS hadoop dist ...
随机推荐
- History 对象
History 对象 History 对象包含用户(在浏览器窗口中)访问过的 URL. History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问. 注 ...
- AES加密时的 java.security.InvalidKeyException: Illegal key size 异常
程序代码 // 设置加密模式为AES的CBC模式 Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); SecretKe ...
- AAL template: ROI to brain lobe
Reference: Altmann A, Schröter M S, Spoormaker V I, et al. Validation of non-REM sleep stage decodin ...
- Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决)
Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决) 论坛里的帮助:http://bbs.csdn.net/topics/39 ...
- Linux 网络编程详解十一
/** * read_timeout - 读超时检测函数,不含读操作 * @fd:文件描述符 * @wait_seconds:等待超时秒数,如果为0表示不检测超时 * 成功返回0,失败返回-1,超时返 ...
- css 内容超过容器宽度,checkbox等控件不会随着内容延伸
<div a> <div id='内容容器'> <div>很长的内容</div><input type='checkbox'/> </ ...
- rpc框架: thrift/avro/protobuf 之maven插件生成java类
thrift.avro.probobuf 这几个rpc框架的基本思想都差不多,先定义IDL文件,然后由各自的编译器(或maven插件)生成目标语言的源代码,但是,根据idl生成源代码这件事,如果每次都 ...
- tkinter 的两个例子
第一个例子:after 用于定时操作 import tkinter as tk import time class MyApp(tk.Frame): def __init__(self, msecs= ...
- 前端见微知著番外篇:Bitbucket进行代码管控
说道代码管控,一般都会提到TFS.Git等,但是在这里我们将要用到Bitbucket,其实其操作方式和Git基本上一样,但是和TFS则有很大的不同了.但是原理基本上都是一致的. 这里我不会过多的涉及到 ...
- Alpha版本发布说明
软件发布的同时,在团队博客上写一个发布说明 ▪ 列出这一版本的新功能 ▪ 这一版本修复的缺陷 ▪ 对运行环境的要求 ▪ 安装方法 ▪ 描述系统已知的问题和限制 ...