【模块04-大数据技术入门】02节-HDFS核心知识

分布式存储
(1) 5PB甚至更大的数据集怎么存储 ?
所有数据分块,每个数据块冗余存储在多台机器上(冗余可提高数据块高可用性)。另外一台机器上启动一个管理所有节点、以及存储在各节点上面数据块的服务。

(2)分布式存储集群: master/slave结构集群
- 存在于slave上的文件:表示真实存放数据的文件即本地磁盘文件
- 存在于master上的文件:表示逻辑文件,它表示这个逻辑文件全路径名,与这个全路径对应的有数据块的存储信息(数据块位置等)
HDFS各组件及作用讲解

1.NameNode
名字节点中维护了两层关系:
(1)HDFS文件系统的文件目录树,以及文件数据块的索引,即每一个文件对应的数据块列表
(2)数据块与数据节点的关系,即某一数据块保存在哪些数据节点中

2.
安装HDFS
(1)下载Hadoop ,选择版本hadoop-2.7.5.tar
(2)master slave1 slave2,使用hadoop-twq用户,家目录下创建目录~/bigdata
mkdir -p ~/bigdata
(3)master,使用hadoop-twq用户,上传安装包到目录~/bigdata,并解压。
cd ~/bigdata
tar -zxvf ~/bigdata/hadoop-2.7.5.tar.gz
(4)master,使用hadoop-twq用户,创建nameNode和dataNode需要的文件目录
mkdir -p ~/bigdata/dfs/name
mkdir -p ~/bigdata/dfs/data
(5)master,使用hadoop-twq用户,修改配置文件【core-site.xml】【hdfs-site.xml】
cd ~/bigdata/hadoop-2.7.5/etc/hadoop
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9999</value>
<description>默认的HDFS路径</description>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>数据块的副本数量,需小于DataNode数量</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop-twq/bigdata/dfs/name</value>
<description>NameNode存放数据的位置</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop-twq/bigdata/dfs/data</value>
<description>DataNode存放数据的位置</description>
</property>
</configuration>
(6)master,使用hadoop-twq用户,配置JAVA_HOME,修改【hadoop-env.sh】
cd ~/bigdata/hadoop-2.7.5/etc/hadoop vi hadoop-env.sh
export JAVA_HOME=/usr/local/lib/jdk1.8.0_161
(7)master,使用hadoop-twq用户,配置集群里所有DataNode的主机名,修改【slaves】
cd ~/bigdata/hadoop-2.7.5/etc/hadoop vi slaves
slave1
slave2
(8)master,使用hadoop-twq用户,将配置好的hadoop分发到每一个slave上
scp -r ~/bigdata/dfs hadoop-twq@slave1:~/bigdata
scp -r ~/bigdata/dfs hadoop-twq@slave2:~/bigdata scp -r ~/bigdata/hadoop-2.7.5 hadoop-twq@slave1:~/bigdata
scp -r ~/bigdata/hadoop-2.7.5 hadoop-twq@slave2:~/bigdata
(9)master salve1 slave2,使用hadoop-twq用户,配置环境变量
vi ~/.bash_profile
export HADOOP_HOME=~/bigdata/hadoop-2.7.5
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source ~/.bash_profile
which hdfs
(10)master,使用hadoop-twq用户,格式化并启停HDFS
hdfs namenode -format ==>格式化
start-dfs.sh ==>启动hdfs
jps
http://master的IP地址:50070/ ==>看下是否部署成功
stop-dfs.sh ==>停止hdfs
安装注意事项:
1..更改salves配置前,需要先停止集群,否则有datanode无法停止。
2.多次格式化,可能会出现namenode和datanode的clusterID不一致。(clusterID在/home/hadoop-twq/bigdata/dfs/data/current/VERSION中)
3.core-site.xml中fs.defaultFS 描述集群中NameNode结点的URI(包括协议、主机名称、端口号)
4.hdfs-site.xml中dfs.namenode.http-address,描述HDFS web界面的监听端口,默认50070
添加节点
(1)修改所有节点的host
(2)修改namenode的配置文件slaves
(3)在新节点的机器上,启动服务
hadoop-daemon.sh start datanode
hadoop-daemon.sh start tasktracker
(4)namenode节点,均衡block
a.如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率。
start-balancer.sh
b.设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长
start-balancer.sh -threshold 5
c.配置hdfs balance时datanode之间数据迁移的带宽设置,默认只有1048576(1M/s)
vi hdfs-site.xml
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>1048576</value>
<description>
Specifies the maximum amount of bandwidth that each datanode
can utilize for the balancing purpose in term of
the number of bytes per second.
</description>
</property>
删除节点
(1)阻止待删除的机器连接Namenode
vi conf/hdfs-site.xml
<property>
<name>dfs.hosts.exclude</name>
<value>~/bigdata/hadoop-2.7.5/etc/hadoop/excludes</value>
<description>
Names a file that contains a list of hosts that are
not permitted to connect to the namenode. The full pathname of the
file must be specified. If the value is empty, no hosts are
excluded.
</description>
</property>
vi ~/bigdata/hadoop-2.7.5/etc/hadoop/excludes ==>待下线机器hostname一个一行
slave3
slave4
(2)强制重新加载配置
hadoop dfsadmin -refreshNodes ==>强制重新加载配置,会在后台进行Block块移动
hadoop dfsadmin -report ==>查看到现在集群上连接的节点, Decommission in progress(执行中), Decommissioned(执行完毕)
(3)关闭节点
等待刚刚的操作结束后,需要下架的机器就可以安全的关闭了
(4)再次编辑excludes文件
一旦完成了机器下架,它们就可以从excludes文件移除了
登录要下架的机器,会发现DataNode进程没有了,但是TaskTracker依然存在,需要手工处理一下。
参考文档:
【模块04-大数据技术入门】02节-HDFS核心知识的更多相关文章
- 大数据学习(02)——HDFS入门
Hadoop模块 提到大数据,Hadoop是一个绕不开的话题,我们来看看Hadoop本身包含哪些模块. Common是基础模块,这个是必须用的.剩下常用的就是HDFS和YARN. MapReduce现 ...
- 大数据技术之Hadoop(HDFS)
第1章 HDFS概述 1.1 HDFS产出背景及定义 1.2 HDFS优缺点 1.3 HDFS组成架构 1.4 HDFS文件块大小(面试重点) 第2章 HDFS的Shell操作(开发重点) 1.基本语 ...
- 大数据技术之Hadoop入门
第1章 大数据概论 1.1 大数据概念 大数据概念如图2-1 所示. 图2-1 大数据概念 1.2 大数据特点(4V) 大数据特点如图2-2,2-3,2-4,2-5所示 图2-2 大数据特点之大量 ...
- 【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可 ...
- 大数据技术生态圈形象比喻(Hadoop、Hive、Spark 关系)
[摘要] 知乎上一篇很不错的科普文章,介绍大数据技术生态圈(Hadoop.Hive.Spark )的关系. 链接地址:https://www.zhihu.com/question/27974418 [ ...
- TOP100summit:【分享实录-WalmartLabs】利用开源大数据技术构建WMX广告效益分析平台
本篇文章内容来自2016年TOP100summitWalmartLabs实验室广告平台首席工程师.架构师粟迪夫的案例分享. 编辑:Cynthia 粟迪夫:WalmartLabs实验室广告平台首席工程师 ...
- 利用大数据技术处理海量GPS数据
我秀中国物联网地图服务平台目前接入的监控车辆近百万辆,每天采集GPS数据7亿多条,产生日志文件70GB,使用传统的数据处理方式非常耗时. 比如,仅仅对GPS做一些简单的统计分析,程序就需要几个小时才能 ...
- 大数据技术之Hadoop3.1.2版本HA模式
大数据技术之Hadoop3.1.2版本HA模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Hadoop的HA特点 1>.主备NameNode 2>.解决单点故障 ...
- 大数据技术之HBase
第1章 HBase简介 1.1 什么是HBase HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储. 官方 ...
随机推荐
- windows之桌面程序引导功能
经常使用windows系统的同学可能都会遇到这样一种情况,刚按照完的应用程序,可能会在桌面产生一个提示信息,指示当前快捷方式可以使用了,并给出相应的文字说明,指示该快捷方式的功能.那么大家有没有考虑过 ...
- Once More
Topic Link http://ctf5.shiyanbar.com/web/more.php 1)源代码分析 发现 ereg()函数使得password必须是数字或字母同时长度必须是小于8val ...
- leetcode — clone-graph
import java.util.*; /** * Source : https://oj.leetcode.com/problems/clone-graph/ * * * Clone an undi ...
- golang - gob与rpc
今天和大家聊聊golang中怎么使用rpc,rpc数据传输会涉及到gob编码,所以先讲讲gob,别担心,就算你完全没有接触过gob与rpc,只要知道rpc的中文是远程过程调用,剩下的我都能给你讲明白( ...
- PE知识复习之PE新增节
PE知识复习之PE新增节 一丶为什么新增节.以及新增节的步骤 例如前几讲.我们的PE文件在空白区可以添加代码.但是这样是由一个弊端的.因为你的空白区节属性可能是只读的不能执行.如果你修改了属性.那么程 ...
- 【野草】SQL Server之索引解析(二)
1.堆表 堆表通过IAM连接一起,查询时全表扫描. 1.1 非聚集索引 结构 叶子节点数据结构:行数据结构+Rid(8字节) 中间节点数据结构: (非聚集非唯一索引)行数据结构+Page(4)+2+ ...
- Docker搭建ElasticSearch+Redis+Logstash+Filebeat日志分析系统
一.系统的基本架构 在以前的博客中有介绍过在物理机上搭建ELK日志分析系统,有兴趣的朋友可以看一看-------------->>链接戳我<<.这篇博客将介绍如何使用Docke ...
- NLP入门(六)pyltp的介绍与使用
pyltp的简介 语言技术平台(LTP)经过哈工大社会计算与信息检索研究中心 11 年的持续研发和推广, 是国内外最具影响力的中文处理基础平台.它提供的功能包括中文分词.词性标注.命名实体识别.依 ...
- 【转】MVC HtmlHelper用法大全
HtmlHelper用来在视图中呈现 HTML 控件. 以下列表显示了当前可用的一些 HTML 帮助器. 本主题演示所列出的带有星号 (*) 的帮助器. ActionLink - 链接到操作方法. B ...
- JQuery官方学习资料(译):Data方法
你可能经常会想需要通过元素来存储一些数据.在JavaScript中你可能需要给元素添加属性来实现这样的功能,但是在某些浏览器中,你可能还需要处理因此造成的内存泄露问题.JQuery提供了一个简 ...