Hadoop常用操作
Hadoop常用操作
1、Hadoop安装
略
2、Hadoop配置
略
3、Hadoop多目录配置
namenode和datanode节点下都可以进行多个目录的配置,但是意义不同。namenode的多目录配置是副本策略,保证数据可靠性,datanode多目录配置是对容量进行扩容,由于datanode已经有副本机制了。
[hdfs-site.xml]
<!-- namenode多目录配置 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name1,file://${hadoop.tmp.dir}/dfs/name2</value>
</property>
<!-- datanode多目录配置 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data1,file://${hadoop.tmp.dir}/dfs/data2</value>
</property>
其中${hadoop.tmp.dir}是hadoop临时目录配置。
[core-site.xml]
<property>
<name>hadoop.tmp.dir</name>
<value>/home/centos/hadoop/ha</value>
</property>
4、hadoop配额管理
配额是对空间和目录个数进行限制,放置目录下的文件个数或大小过于庞大。因此配额分为空间配额和目录配额。
目录配额
限制目录所含文件或文件夹的个数。如果为1,则保持目录为空(可以认为将目录本身也包含在内)。
#设置配额
$>hdfs dfsadmin -setQuota 1 data
#清除配额
$>hdfs dfsadmin -clsQuota data
空间配额
由于每份文件都有三个副本,空间配额计算时也将副本数计算在内,加上每个数据块文件默认为128m,因此空间配额至少要指定384m的空间值。即128 * 3 = 384。
#该设置会出错,说至少是384m空间
$>hdfs dfsadmin -setSpaceQuota 384m data
5、快照
快照是对hdfs的目录进行瞬间照相,内部采用差异化存储机制。因此不会空间造成大量的消耗。这可以通过查看blockid来考察。默认情况下目录是不允许快照的,因此如果要使用该功能,还需要对特定目录先启用快照。
#启用快照
$>hfds dfsadmin -allowSnapshot data
#禁用快照
$>hfds dfsadmin -disallowSnapshot data
#创建快照
$>hdfs dfs -createSnapshot data sp1
#删除
$>hdfs dfs -deleteSnapshot data sp1
#重命名
$>hdfs dfs -renameSnapshot data sp1 sp2
注意:删除目录时,如果是可快照目录并且有快照,需要先删除快照,再删除目录。
6、元数据管理
6.1 镜像文件查看
镜像文件存放的是hdfs的元数据,是最重要的数据文件。可以通过多种格式进行查看。内容包括目录、权限、配额、数据块等信息。
#i:input o:output p:处理方式
$>hdfs oiv -i fsimage_0000000000000207400 -o ~/1.xml -p XML
6.2 编辑日志查看
对hdfs的每个写操作都会记录到编辑日志中,查看方式同镜像类似。
$>hdfs oev -i edits_0000000000000200088-00000000000002000199 -o 2.xml -p XML
6.3 镜像控制
2nn节点对nn节点会进行周期性检查,以完成元数据的备份与融合。具体可以通过以下属性进行控制:
dfs.namenode.checkpoint.period
检查周期,多长时间生成一次新的检查点,默认为3600秒,即1小时。
dfs.namenode.checkpoint.txns
操作记录数控制,默认1000,000,发生这些次操作也会生成新的检查点,即时时间不到1小时。
dfs.namenode.checkpoint.check.period
<property>
<name>dfs.namenode.checkpoint.check.period</name>
<value>60</value>
<description>The SecondaryNameNode and CheckpointNode will poll the NameNode
every 'dfs.namenode.checkpoint.check.period' seconds to query the number
of uncheckpointed transactions.
</description>
</property>
dfs.namenode.num.checkpoints.retained
<property>
<name>dfs.namenode.num.checkpoints.retained</name>
<value>2</value>
<description>The number of image checkpoint files (fsimage_*) that will be retained by
the NameNode and Secondary NameNode in their storage directories. All edit
logs (stored on edits_* files) necessary to recover an up-to-date namespace from the oldest retained
checkpoint will also be retained.
</description>
</property>
7、旧节点下线操作
7.1 介绍
旧节点下线操作,需要通过黑白名单进行控制。下线时主要完成旧节点数据的安全转移。成功后,就可以安全下线了。hdfs的黑白名单由dfs.hosts.exclude和dfs.hosts控制,yarn的黑白名单由yarn.resourcemanager.nodes.exclude-path和yarn.resourcemanager.nodes.include-path控制。
dfs.hosts
白名单,可以连到namenode的datanode节点列表。
dfs.hosts.exclude
黑名单,不允许连接到namenode的datanode节点列表。
黑白名单组合规则:
dfs.hosts | dfs.hosts.exclude | 结果 |
---|---|---|
NO | NO | Not |
NO | YES | Not |
YES | NO | YES |
YES | YES | YES并将退役 |
7.2 HDFS旧节点下线操作
准备黑白名单
- dfs_exclude.conf
- dfs_include.conf
配置hdfs-site.xml的黑白名单属性
[hdfs-site.xml]
<!-- 白名单 -->
<property>
<name>dfs.hosts</name>
<value>/soft/hadoop/etc/full/dfs_include.conf</value>
</property>
<!-- 黑名单 -->
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop/etc/full/dfs_exclude.conf</value>
</property>
添加退役节点地址到黑名单,不要更新白名单
[dfs_exclude.conf]
s102
刷新nn
$>hdfs dfsadmin -refreshNodes
进入webui,查看退役的节点是否显式为"退役中",开始复制数据块到其他节点。
http://s101:50070/
一旦复制完成,状态显式"Decommissioned",停止退役节点
从白名单中删除退役节点
再次刷新节点
$>hdfs dfsadmin -refreshNodes
从slaves中删除退役节点
8、HDFS新节点上线
新节点上线时,需要先配置ssh和hadoop软件包。上线实操过程如下:
配置新节点ssh和安装hadoop软件包以及配置环境变量
略
添加新地址到白名单
刷新名称节点
$>hdfs dfsadmin -refreshNodes
更新slaves文件
单独启动新节点的datanode进程
$>hadoop-daemon.sh start datanode
检查webui
9、YARN旧节点下线
准备黑白名单
yarn_exclude.conf
yarn_include.conf
配置yarn-site.xml的黑白名单属性
[yarn-site.xml]
<!-- yarn白名单 -->
<property>
<name>yarn.resourcemanager.nodes.include-path</name>
<value>/soft/hadoop/etc/full/yarn_include.conf</value>
</property>
<!-- yarn黑名单 -->
<property>
<name>yarn.resourcemanager.nodes.exclude-path</name>
<value>/soft/hadoop/etc/full/yarn_exclude.conf</value>
</property>
添加退役节点地址到黑名单,不要更新白名单
[yarn-exclude.conf]
s102
刷新yarn
$>yarn rmadmin -refreshNodes
进入webui,查看退役的节点是否显式为"退役中",开始复制数据块到其他节点。
http://rm:8088/
一旦复制完成,状态显式"Decommissioned",停止退役节点
从白名单中删除退役节点
再次刷新节点
$>yarn rmadmin -refreshNodes
从slaves中删除退役节点
Hadoop常用操作的更多相关文章
- Hadoop常用操作汇总
Hadoop Streaming示例程序(wordcount) run_hadoop_word_counter.sh $HADOOP_BIN streaming \ -input "${IN ...
- Hadoop HDFS文件常用操作及注意事项
Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...
- Hdfs常用操作
一.linux rm是删除,不是del 二.常用操作 package hdfs; import java.io.FileInputStream; import java.io.FileNotFound ...
- linux常用操作指令
Linux常用操作指令: 常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(a ...
- hadoop 常用配置项【转】
hadoop 常用配置项[转] core-site.xml name value Description fs.default.name hdfs://hadoopmaster:9000 定义 ...
- 【Hadoop篇】--Hadoop常用命令总结
一.前述 分享一篇hadoop的常用命令的总结,将常用的Hadoop命令总结如下. 二.具体 1.启动hadoop所有进程start-all.sh等价于start-dfs.sh + start-yar ...
- Hbase常用操作记录
Hbase常用操作记录 Hbase 创建表 查看表结构 修改表结构 删除表 创建表 语法:create <table>, {NAME => <family>, VERSI ...
- Hadoop2.7.6_02_HDFS常用操作
1. HDFS常用操作 1.1. 查询 1.1.1. 浏览器查询 1.1.2. 命令行查询 [yun@mini04 bin]$ hadoop fs -ls / 1.2. 上传文件 [yun@mini ...
- Hadoop常用命令总结
一.前述 分享一篇hadoop的常用命令的总结,将常用的Hadoop命令总结如下. 二.具体 1.启动hadoop所有进程start-all.sh等价于start-dfs.sh + start-yar ...
随机推荐
- JS模式和原型精解
首先需要知道的是 模式只是思想.不要用 结构 看模式. ES中函数是对象,因此函数也有属性和方法. 每个函数含有两个属性: length 和 prototype 每个函数含有两个非继承的方法: app ...
- Applese 的毒气炸弹(最小生成树)
链接:https://ac.nowcoder.com/acm/contest/330/G 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 江西财经大学第一届程序设计竞赛 A
链接:https://www.nowcoder.com/acm/contest/115/A来源:牛客网 题目描述 "挤需体验五番钟,里造会挨上这款游戏!" 怎么可能嘛!当我是傻子吗 ...
- Newtonsoft.Json 自定义序列化格式转化器
public static class JsonHelper { static JsonHelper() { Newtonsoft.Json.JsonSerializerSettings settin ...
- Tcpdump命令抓包详细分析
1 起因 前段时间,一直在调线上的一个问题:线上应用接受POST请求,请求body中的参数获取不全,存在丢失的状况.这个问题是偶发性的,大概发生的几率为5%-10%左右,这个概率已经相当高了.在排查问 ...
- jdk的环境配置
今天在网上找了关于jdk配置的教程,发现比较繁琐,因此更新下jdk的简单配置教程 注意:jdk的安装必须正确,绝对不允许将jdk和jdr安装在同一层目录!!(建议在java目录下新建jdk和jdr目录 ...
- DRF-->2序列化组件的使用和接口设计--get,post,put,delete&优化组件
!!!!! !!!!! 记住这个图 !!!!! 上篇博客说道DRF序列化组件的get,只是简单的举一个实例,然而在现实生活中我们前后端进行交互的时候更多的用到了Json数据格式,这也就是说前后端交互的 ...
- jquery.getParams.js
本文参照:http://www.cnblogs.com/cocos/archive/2010/05/14/1735046.html jQuery.extend({ /** * Returns get ...
- 使用require.js
requirejs使用入门 什么是requirejs? RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤.可以用它来加速.优化代码,但其主要 ...
- 明码(C++)
2.明码(结果填空) (满分7分) 注意事项:问题的描述在考生文件夹下对应题号的“题目.txt”中.相关的参考文件在同一目录中.请先阅读题目,不限解决问题的方式,只要求提交结果.必须通过浏览器提交答案 ...