文章标题

来源:互联网 发布:微机原理接口编程题 编辑:程序博客网 时间:2024/06/07 03:21

一、HDFS

HDFS设计目标

1.大量数据

2.流数据 一次写多次读 不可更改

3.廉价普通硬件设备(需要保证稳定性 数据安全性)

不适合的场景

1.低延时数据

2.小文件

3.无法支持对文件内容随意修改

HDFS架构

1.block为64M(相对传统文件系统大一些),文件可以分块存储,提高读取速度。

2.同一个文件块在不同的节点中有多个副本,冗余容错。

3.namenode(单点、现在是主从结构)保存文件分块信息、文件系统的目录信息,为了不成为瓶颈一般保存在内存中。(master)

4.datanode(多个)存储每块文件的信息(block),运行mapreduce的最小单位。(slaver)

5.HA策略:2.x开始,HDFS支持namenode的active-standy模式,热备份模式。

二、mapreduce

mapreduce原理

mapreduce是一种编程模型,用于大规模数据集的并行计算。

三、hadoop安装

基本概念

jobtracker:接受作业的提交,监控和控制作业运行,负责将任务分发到tasktracer节点。(master)

tasktracker:控制map/reduce任务中当前节点的运行。(slaver)

单机安装步骤

1.下载hadoop包,官网,解压。

  1. 安装ssh

  2. 安装rsync

  3. 配置ssh免密码登录

  4. 配置JDK环境

  5. 修改hadoop配置文件,指定JDK安装路径

  6. 修改hadoop核心配置文件core-site。xml,配置HDFS的地址和端口号

  7. 修改hadoop中的HDFS配置,修改replication

  8. 修改mapreduce的配置文件,配置的是jobtracker的地址和端口

  9. 格式化hadoop的文件系统HDFS

  10. 启动hadoop

  11. 验证hadoop是否成功安装,在浏览器中输入http:/localhost:50030(mapreduce的web页面)或者http:/localhost:50070(HDFS的web页面)

集群安装步骤

1.多台服务器命名、ip。

2.在各台服务器上装好单机版hadoop。

3.在/etc/hosts中修改主机名、配置主机名和ip地址对应关系

4.将hadoop.main节点的~/.ssh/id_rsa.pub文件拷贝到hadoop.slave节点的~/.ssh目录下,然后在hadoop.slave的~/.ssh/目录下运行 cat ./id_rsa.pub>>authorized_keys

5.从节点的conf文件夹中的core-site.xml和mapred-site.xml中的入口要设为主节点的地址和端口号(hadoop.main:9000和hadoop.main:9000)

6.分别修改两台主机中的hadoop配置文件masters和slaves,masters:hadoop.main,slaves:hadoop.main,hadoop.slave。(通过拷贝scp)

7.在hadoop.main节点运行bin/hadoop namenode -format 初始化文件系统(如果以前做了单机模式的,需要清空在bin下用rm -rf /tmp/hadoop-robby/)

8.启动hadoop,bin/start-all.sh

hdfs-site.xml里面的value可以配置为不同的值

配置中有一些注意事项!!

四、HDFS的基本操作

hadoop fs-ls/

hadoop fs-mkdir/test

hadoop fs-get/filename dest

hadoop fs-put srcfile/desfile

五、secondary namenode

namenode始终在内存中保存metadata(源数据),用于处理“读请求”。

“写请求”时候,namenode会首先写editlog到磁盘,成功返回后,才会修改内存,并返回到客户端。

hadoop会维护一个fsimage的文件,也就是metedata的镜像,但是不会实施同步,每隔一段时间合并editlog来更新内容。secondary namenode就是用来更新fsimage的。

原创粉丝点击