hdfs命令

Hadoop基础

て烟熏妆下的殇ゞ 提交于 2019-12-15 19:08:00
Hadoop基础 简介 Hadoop是 可靠的 、 可扩展 的开源 分布式计算 和 分布式存储 框架 由Hadoop Common,HDFS,MapReduce,Yarn 组成 HDFS :分布式文件系统 MapReduce :分布式计算框架 Yarn :资源调度系统 Hadoop的优势 高可靠 数据存储: 数据块多副本 数据计算: 某个节点崩溃, 会自动重新调度作业计算 高扩展性 存储/计算资源不够时,可以横向的线性扩展机器 一个集群中可以包含数以千计的节点 集群可以使用廉价机器,成本低 Hadoop生态系统成熟 Hadoop能做什么 搭建大型数据仓库 PB级数据的存储 处理 分析 统计等业务 搜索引擎 日志分析 数据挖掘 BI 1、HDFS(数据分块,冗余存储) HDFS的启动 $HADOOP_HOME/sbin/start-dfs.sh 退出安全模式(safemode) hdfs dfsadmin -safemode leave 通过 IP:50070 查看hdfs的运行状态 HDFS的shell命令 和linux指令基本一致 只是需要加上 hadoop fs -命令 常用的例如:ls text mv put rm 例 : hadoop fs - mkdir - p / hadoop001 / test # 在HDFS中创建文件夹 文件基本操作(上传,删除,下载)

运行Hadoop自带的MapReduce程序WordCount

北城余情 提交于 2019-12-15 09:06:24
Hadoop自带了个单词计数的MapReduce程序WordCount,下面用三种方法运行该程序 在开始前先在hdfs上面创建输入和输出路径: 1、使用 hdfs dfs -mkdir /input 命令创建一个input文件夹 2、使用 hdfs dfs -put /home/kingssm/input/data.dat /input 命令将需要执行的文件上传到hdfs上的输入文件夹 3、使用 hdfs dfs -mkdir /output 命令创建输出文件夹,因为hadoop要求输出文件夹不能存在,所以这只是空文件夹,在执行时再确定输出文件夹,如、output/output1 一、Linux系统上直接运行jar包 进入文件查看,最后一个就是我们要执行的程序 运行程序 :输入命令进行执行 hadoop jar /usr/hadoop/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output/output222 如果觉得太长了可以先进入到mapreduce目录再执行。 解释 :hadoop jar是hadoop执行jar文件必须写的命令,中间很长的是jar包的路径,wordcount是启动类,/input是输入路径,/output

HDFS

柔情痞子 提交于 2019-12-14 05:10:22
HDFS HDFS 什么是HDFS HDFS文件的块 为什么是128m HDFS的Shell操作 HDFS的java程序进行操作 HDFS初始操作和结束操作 HDFS文件上传和下载 通过流进行可操作的文件上传和下载 HDFS文件信息的查看 HDFS块信息的处理 练习,HDFS的分块下载 什么是HDFS 它是一个 分布式文件系统 ,适合一次写入多次读出。 不支持文件的随机读写,支持对文件的追加。原因:HDFS在存储文件时,以块的形式存储。如果随机写入,为保证块的顺序,所有内容都要后移(类似于数组),第一块写入一个文件,后面所有块的内容都要后移,会造成大量的网络Io(在hadoop中是非常宝贵的资源)和磁盘Io。而追加的话,直接在最后一块上追加即可。HDFS不适应与低时间延迟的数据访问,大量的小文件存储以及多用户写入,任意修改文件的场景。 HDFS文件的块 在Hadoop中一个文件被存放在多个块之中,每个块默认的大小为128M,如果一个文件不足128m,它同样占据一个块,如果超过128m它将被分割,除最后一个块以外,每一块的大小都是128m,最后一个块的大小小于128m。 为什么是128m 首先128m是一个人为定义的值,在Hadoop中可以通过修改hdfs.site.xml进行修改,应当设置为512byte的倍数。因为HDFS在传输时,每512bytes校验一次/ <

分布式资源调度——YARN框架

柔情痞子 提交于 2019-12-13 13:16:19
YARN产生背景 YARN是Hadoop2.x才有的,所以在介绍YARN之前,我们先看一下MapReduce1.x时所存在的问题: 单点故障 节点压力大 不易扩展 MapReduce1.x时的架构如下: 可以看到,1.x时也是Master/Slave这种主从结构,在集群上的表现就是一个JobTracker带多个TaskTracker。 JobTracker:负责资源管理和作业调度 TaskTracker:定期向JobTracker汇报本节点的健康状况、资源使用情况以及作业执行情况。还可以接收来自JobTracker的命令,例如启动任务或结束任务等。 那么这种架构存在哪些问题呢: 整个集群中只有一个JobTracker,就代表着会存在单点故障的情况 JobTracker节点的压力很大,不仅要接收来自客户端的请求,还要接收大量TaskTracker节点的请求 由于JobTracker是单节点,所以容易成为集群中的瓶颈,而且也不易域扩展 JobTracker承载的职责过多,基本整个集群中的事情都是JobTracker来管理 1.x版本的整个集群只支持MapReduce作业,其他例如Spark的作业就不支持了 由于1.x版本不支持其他框架的作业,所以导致我们需要根据不同的框架去搭建多个集群。这样就会导致资源利用率比较低以及运维成本过高,因为多个集群会导致服务环境比较复杂。如下图:

hadoop + spark+ hive 集群搭建(apache版本)

拟墨画扇 提交于 2019-12-12 15:04:04
0. 引言 hadoop 集群,初学者顺利将它搭起来,肯定要经过很多的坑。经过一个星期的折腾,我总算将集群正常跑起来了,所以,想将集群搭建的过程整理记录,分享出来,让大家作一个参考。 由于搭建过程比较漫长,所以,这篇文章应该也会很长,希望大家能耐心看完。 1. 集群环境和版本说明 3台CentOS 7.4 的服务器,4CPU,8G内存; jdk 1.8 hadoop 2.7.7 spark 2.3.0 hive 2.1.1 节点和主机hostname对应关系: 主节点: 172.18.206.224 nn1 Namenode and YARN Resourcemanage 从节点1: 172.18.206.228 dn1 Datanode and YAR  Nodemanager 从节点2: 172.18.206.229 dn2 Datanode and YARN Nodemanager 为hadoop集群,创建一个non-root 用户,我使用的用户名是 hadoop。安装目录统一在hadoop用户的家目录 /data/hadoop 下。 2. hadoop 集群安装 2.1 安装 jdk 1.8版本 由于 hadoop 集群需要java 环境的支持,所以,在安装集群之前,首先确认你的系统是否已经安装了jdk,检查如下: [root@ND-ES-3 ~]# java

Cannot obtain block length for LocatedBlock

独自空忆成欢 提交于 2019-12-12 01:33:17
当HDFS上文件在被写入时,在未关闭文件之前,写入操作异常终止,此文件就会保有openforwrite的状态。 常见场景:Flume在对HDFS进行文件写入操作时,HDFS服务终止,文件没及时关闭。 当MR读取该文件时,也无法使用cp或者get命令,会抛异常:Cannot obtain block length for LocatedBlock 解决方法 1、先定位到文件 hadoop fsck <path-of-the-directory> -openforwrite 2、释放租约(关闭文件) hdfs debug recoverLease -path <path-of-the-file> -retries <retry times> 批量处理命令 hdfs fsck <path-of-the-directory> -openforwrite | grep '^\.' | grep 'OPENFORWRITE' | grep -o "/[^ ]*" | xargs -Ixarg hdfs debug recoverLease -path xarg 来源: CSDN 作者: 轻风细雨 链接: https://blog.csdn.net/hxiaowang/article/details/103493115

hadoop 集群搭建-suse linux 11

…衆ロ難τιáo~ 提交于 2019-12-11 17:58:51
好久都没写了啊。感觉自己都不像是一个搞技术都了。 来个存货吧! hadoop 集群搭建 3台机器 suse 系统 规划 IP 主机名 hostname hadoop角色 10.96.91.93 namenode93 NameNode、SecondaryNameNode 、ResourceManage、 DataNode 、NodeManager 10.96.91.129 datanode129 DataNode NodeManager 10.96.91.130 datanode130 DataNode NodeManager 创建 hadoop 用户 useradd -u 501 -g users -d /home/hadoop -s /bin/bash hadoop mkdir /home/hadoop chown -R hadoop:users /home/hadoop passwd hadoop 密码设置 方便记忆,我设置到用户名和密码一样 修改主机名 文件位置 /etc/HOSTNAME vim /etc/HOSTNAME文件 /etc/rc.d/boot.localnet start 修改host文件 !三台机器都要修改! 文件位置 /etc/hosts 10.96.91.93 namenode93 10.96.91.129 datanode129 10.96.91

浅谈我的转型大数据学习之路

微笑、不失礼 提交于 2019-12-11 17:01:20
一、背景介绍 本人目前是一名大数据工程师,项目数据50T,日均数据增长20G左右,个人是从Java后端开发,经过3个月的业余自学成功转型大数据工程师。 二、大数据介绍 大数据本质也是数据,但是又有了新的特征,包括数据来源广、数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等。 针对以上主要的4个特征我们需要考虑以下问题: 数据来源广,该如何采集汇总?,对应出现了Sqoop,Cammel,Datax等工具。 数据采集之后,该如何存储?,对应出现了GFS,HDFS,TFS等分布式文件存储系统。 由于数据增长速度快,数据存储就必须可以水平扩展。 数据存储之后,该如何通过运算快速转化成一致的格式,该如何快速运算出自己想要的结果? 对应的MapReduce这样的分布式运算框架解决了这个问题;但是写MapReduce需要Java代码量很大,所以出现了Hive,Pig等将SQL转化成MapReduce的解析引擎; 普通的MapReduce处理数据只能一批一批地处理,时间延迟太长,为了实现每输入一条数据就能得到结果,于是出现了Storm/JStorm这样的低时延的流式计算框架; 但是如果同时需要批处理和流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn

hadoop安全模式

ぃ、小莉子 提交于 2019-12-10 09:09:04
hadoop在安全模式下,是不能在hdfs上操作数据的,所以,如果你出现上次文件失败,这是一种失败的原因。 bin/hdfs dfsadmin -safemode enter:进入安全模式 bin/hdfs dfsadmin -safemode leave:离开安全模式 bin/hdfs dfsadmin -safemode get:获取安全模式 bin/hdfs dfsadmin -safemode wait:模式等待状态 模拟一种情况,就是在安全模式下不能上传文件,离开之后能上传的情况。 hadoop文件夹下执行:bin/hdfs dfsadmin -safemode enter 进入安全模式之后,写一个脚本(vim safemode_operate.sh): #! bin/bash hdfs dfsadmin -safemode wait hdfs dfs -put /opt/module/hadoop-2.10.0/NOTICE.txt / 把我本地的一个文件上传到hdfs的根目录。 写完脚本之后,执行脚本:bash safemode_operate.sh,发现一直是在等待状态,去 http://hadoop101:50070/explorer.html#/ 查看,也没有NOTICE.txt 文件,说明在安全模式下是不能上传文件的。 再打开一个命令行,执行离开命令:bin

HDFS三兄弟(NN,DN,2NN)

我们两清 提交于 2019-12-10 00:37:41
HDFS三兄弟(NN,DN,2NN) HDFS三兄弟(NN,DN,2NN) NN NN的持久化 NN的启动 查看edits和fsimage文件 NN和DN进行通信 NN的多目录配置 2NN 2NN的辅助作用 使用2NN对NN进行恢复 DN DN的启动 服役新节点 白名单配置 黑名单配置 DN的多目录机制 HDFS2.X新特性 集群复制 归档 三兄弟叫起来比较顺口,实际来说者三者之间的关系更像,老板,秘书和工人 NN NN负责对HDFS上的元数据进行管理,在NN中保存有最重要的两份信息,一是文件由哪些块组成(filename->blocksequence (namespace))。二是每个块存在哪个位置)(block->machinelist(“inodes”))。除次之外还有文件名,上传者,上传时间等非关键信息。元数据在磁盘中存储在fsimage之中. NN的持久化 NN负责整个HDFS的负载,当客户端对数据进行写操作时会生成元数据。导致元数据不断增加,存在丢失风险,需要对NN中的元数据进行持久化。存在两种持久化的方法,一是将所有的写操作记录下来,形成日志文件。二是将当前内存的数据形成一个快照。前者,记录速度快,但是恢复时需要执行日志中的所有操作,恢复速度极慢。二后者如果内存中的数据越来越多,镜像会越来越大。在运行之间持久化的话,NN可能会瘫痪。 在HDFS中用到这两种的结合: