Hadoop2.7.6_02_HDFS常用操作
1. HDFS常用操作
1.1. 查询
1.1.1. 浏览器查询

1.1.2. 命令行查询
[yun@mini04 bin]$ hadoop fs -ls /
1.2. 上传文件
[yun@mini05 zhangliang]$ cat test.info [yun@mini05 zhangliang]$ hadoop fs -put test.info / # 上传文件
[yun@mini05 software]$ ll -h
total 641M
-rw-r--r-- yun yun 190M Jun : CentOS-.4_hadoop-2.7..tar.gz
[yun@mini05 software]$ hadoop fs -put CentOS-.4_hadoop-2.7..tar.gz / # 上传文件
[yun@mini05 software]$ hadoop fs -ls /
Found items
-rw-r--r-- yun supergroup -- : /CentOS-.4_hadoop-2.7..tar.gz
-rw-r--r-- yun supergroup -- : /test.info
1.2.1. 文件存放位置
[yun@mini04 subdir0]$ pwd # 根据之前的配置,总共3份相同的文件
/app/hadoop/tmp/dfs/data/current/BP--10.0.0.11-/current/finalized/subdir0/subdir0
[yun@mini04 subdir0]$ ll -h # 默认128M 切片
total 192M
-rw-rw-r-- yun yun Jun : blk_1073741825
-rw-rw-r-- yun yun Jun : blk_1073741825_1001.meta
-rw-rw-r-- yun yun 128M Jun : blk_1073741826
-rw-rw-r-- yun yun 1.1M Jun : blk_1073741826_1002.meta
-rw-rw-r-- yun yun 62M Jun : blk_1073741827
-rw-rw-r-- yun yun 493K Jun : blk_1073741827_1003.meta
[yun@mini04 subdir0]$ cat blk_1073741825 [yun@mini04 subdir0]$
1.2.2. 浏览器访问

1.3. 文件下载
[yun@mini04 zhangliang]$ pwd
/app/software/zhangliang
[yun@mini04 zhangliang]$ ll
total
[yun@mini04 zhangliang]$ hadoop fs -ls /
Found items
-rw-r--r-- yun supergroup -- : /CentOS-.4_hadoop-2.7..tar.gz
-rw-r--r-- yun supergroup -- : /test.info
[yun@mini04 zhangliang]$ hadoop fs -get /test.info
[yun@mini04 zhangliang]$ hadoop fs -get /CentOS-.4_hadoop-2.7..tar.gz
[yun@mini04 zhangliang]$ ll
total
-rw-r--r-- yun yun Jun : CentOS-.4_hadoop-2.7..tar.gz
-rw-r--r-- yun yun Jun : test.info
[yun@mini04 zhangliang]$ cat test.info [yun@mini04 zhangliang]$
2. 简单案例
2.1. 准备数据
[yun@mini05 zhangliang]$ pwd
/app/software/zhangliang
[yun@mini05 zhangliang]$ ll
total
-rw-rw-r-- yun yun Jun : test.info
-rw-rw-r-- yun yun Jun : zhang.info
[yun@mini05 zhangliang]$ cat test.info [yun@mini05 zhangliang]$ cat zhang.info
zxcvbnm
asdfghjkl
qwertyuiop
qwertyuiop qwertyuiop
[yun@mini05 zhangliang]$ hadoop fs -mkdir -p /wordcount/input
[yun@mini05 zhangliang]$ hadoop fs -put test.info zhang.info /wordcount/input
[yun@mini05 zhangliang]$ hadoop fs -ls /wordcount/input
Found items
-rw-r--r-- yun supergroup -- : /wordcount/input/test.info
-rw-r--r-- yun supergroup -- : /wordcount/input/zhang.info
2.1. 运行分析
[yun@mini04 mapreduce]$ pwd
/app/hadoop/share/hadoop/mapreduce
[yun@mini04 mapreduce]$ ll
total
-rw-r--r-- yun yun Jun : hadoop-mapreduce-client-app-2.7..jar
-rw-r--r-- yun yun Jun : hadoop-mapreduce-client-common-2.7..jar
-rw-r--r-- yun yun Jun : hadoop-mapreduce-client-core-2.7..jar
-rw-r--r-- yun yun Jun : hadoop-mapreduce-client-hs-2.7..jar
-rw-r--r-- yun yun Jun : hadoop-mapreduce-client-hs-plugins-2.7..jar
-rw-r--r-- yun yun Jun : hadoop-mapreduce-client-jobclient-2.7..jar
-rw-r--r-- yun yun Jun : hadoop-mapreduce-client-jobclient-2.7.-tests.jar
-rw-r--r-- yun yun Jun : hadoop-mapreduce-client-shuffle-2.7..jar
-rw-r--r-- yun yun Jun : hadoop-mapreduce-examples-2.7..jar
drwxr-xr-x yun yun Jun : lib
drwxr-xr-x yun yun Jun : lib-examples
drwxr-xr-x yun yun Jun : sources
[yun@mini04 mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7..jar wordcount /wordcount/input /wordcount/output
// :: INFO client.RMProxy: Connecting to ResourceManager at mini02/10.0.0.12:
// :: INFO input.FileInputFormat: Total input paths to process :
// :: INFO mapreduce.JobSubmitter: number of splits:
// :: INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1528589937101_0002
// :: INFO impl.YarnClientImpl: Submitted application application_1528589937101_0002
// :: INFO mapreduce.Job: The url to track the job: http://mini02:8088/proxy/application_1528589937101_0002/
// :: INFO mapreduce.Job: Running job: job_1528589937101_0002
// :: INFO mapreduce.Job: Job job_1528589937101_0002 running in uber mode : false
// :: INFO mapreduce.Job: map % reduce %
// :: INFO mapreduce.Job: map % reduce %
// :: INFO mapreduce.Job: map % reduce %
// :: INFO mapreduce.Job: Job job_1528589937101_0002 completed successfully
// :: INFO mapreduce.Job: Counters:
File System Counters
FILE: Number of bytes read=
FILE: Number of bytes written=
FILE: Number of read operations=
FILE: Number of large read operations=
FILE: Number of write operations=
HDFS: Number of bytes read=
HDFS: Number of bytes written=
HDFS: Number of read operations=
HDFS: Number of large read operations=
HDFS: Number of write operations=
Job Counters
Launched map tasks=
Launched reduce tasks=
Data-local map tasks=
Total time spent by all maps in occupied slots (ms)=
Total time spent by all reduces in occupied slots (ms)=
Total time spent by all map tasks (ms)=
Total time spent by all reduce tasks (ms)=
Total vcore-milliseconds taken by all map tasks=
Total vcore-milliseconds taken by all reduce tasks=
Total megabyte-milliseconds taken by all map tasks=
Total megabyte-milliseconds taken by all reduce tasks=
Map-Reduce Framework
Map input records=
Map output records=
Map output bytes=
Map output materialized bytes=
Input split bytes=
Combine input records=
Combine output records=
Reduce input groups=
Reduce shuffle bytes=
Reduce input records=
Reduce output records=
Spilled Records=
Shuffled Maps =
Failed Shuffles=
Merged Map outputs=
GC time elapsed (ms)=
CPU time spent (ms)=
Physical memory (bytes) snapshot=
Virtual memory (bytes) snapshot=
Total committed heap usage (bytes)=
Shuffle Errors
BAD_ID=
CONNECTION=
IO_ERROR=
WRONG_LENGTH=
WRONG_MAP=
WRONG_REDUCE=
File Input Format Counters
Bytes Read=
File Output Format Counters
Bytes Written=
[yun@mini05 zhangliang]$ hadoop fs -ls /wordcount/output
Found items
-rw-r--r-- yun supergroup -- : /wordcount/output/_SUCCESS
-rw-r--r-- yun supergroup -- : /wordcount/output/part-r-
[yun@mini05 zhangliang]$ hadoop fs -cat /wordcount/output/part-r- asdfghjkl
qwertyuiop
zxcvbnm
3. 案例:开发shell采集脚本
3.1. 需求说明
点击流日志每天都10T,在业务应用服务器上,需要准实时上传至数据仓库(Hadoop HDFS)上
3.2. 需求分析
一般上传文件都是在凌晨24点操作,由于很多种类的业务数据都要在晚上进行传输,为了减轻服务器的压力,避开高峰期。
如果需要伪实时的上传,则采用定时上传的方式。比如每小时上传一次。
3.3. web日志模拟
运行jar包模拟web日志
# 必要的目录
# 模拟web服务器目录 /app/webservice
# 模拟web日志目录 /app/webservice/logs
# 模拟待上传文件存放的目录 /app/webservice/logs/up2hdfs # 在这个目录上传到HDFS
[yun@mini01 webservice]$ pwd
/app/webservice
[yun@mini01 webservice]$ ll
total
drwxrwxr-x yun yun Jun : logs
-rw-r--r-- yun yun Jun : testlog.jar
# 运行jar包,打印日志
[yun@mini01 webservice]$ java -jar testlog.jar &
……………………
# 生成web日志查看
[yun@mini01 logs]$ pwd
/app/webservice/logs
[yun@mini01 logs]$ ll -hrt
total 460K
-rw-rw-r-- yun yun 11K Jun : access.log.
-rw-rw-r-- yun yun 11K Jun : access.log.
-rw-rw-r-- yun yun 11K Jun : access.log.
-rw-rw-r-- yun yun 11K Jun : access.log.
-rw-rw-r-- yun yun 11K Jun : access.log.
-rw-rw-r-- yun yun 11K Jun : access.log.
-rw-rw-r-- yun yun 11K Jun : access.log.
-rw-rw-r-- yun yun .6K Jun : access.log
3.4. Shell脚本执行
# 脚本测试
[yun@mini01 hadoop]$ pwd
/app/yunwei/hadoop
[yun@mini01 hadoop]$ ll
-rwxrwxr-x yun yun Jun : uploadFile2Hdfs.sh
[yun@mini01 hadoop]$ ./uploadFile2Hdfs.sh
………………
3.5. 查看结果
3.5.1. 脚本执行结果查看
Web日志转移与上传查看
# web日志转移查看
[yun@mini01 logs]$ pwd
/app/webservice/logs
[yun@mini01 logs]$ ll -hrt
total 28K
-rw-rw-r-- yun yun .3K Jun : access.log ### 表明日志已经转移
drwxrwxr-x yun yun 16K Jun : up2hdfs # 待上传文件存放的目录
[yun@mini01 up2hdfs]$ pwd
/app/webservice/logs/up2hdfs
[yun@mini01 up2hdfs]$ ll -hrt
-rw-rw-r-- yun yun 11K Jun : access.log.7_20180614174001_DONE
-rw-rw-r-- yun yun 11K Jun : access.log.6_20180614174001_DONE
-rw-rw-r-- yun yun 11K Jun : access.log.5_20180614174001_DONE
-rw-rw-r-- yun yun 11K Jun : access.log.4_20180614174001_DONE
-rw-rw-r-- yun yun 11K Jun : access.log.3_20180614174001_DONE
-rw-rw-r-- yun yun 11K Jun : access.log.2_20180614174001_DONE
-rw-rw-r-- yun yun 11K Jun : access.log.1_20180614174001_DONE
## 文件以 DONE 结尾,表明已上传到HDFS
脚本日志查看
# shell脚本日志查看
[yun@mini01 log]$ pwd
/app/yunwei/hadoop/log
[yun@mini01 log]$ ll
total
-rw-rw-r-- yun yun Jun : uploadFile2Hdfs.sh.log
[yun@mini01 log]$ cat uploadFile2Hdfs.sh.log
-- :: uploadFile2Hdfs.sh access.log.1_20180614174001 ok
-- :: uploadFile2Hdfs.sh access.log.2_20180614174001 ok
-- :: uploadFile2Hdfs.sh access.log.3_20180614174001 ok
-- :: uploadFile2Hdfs.sh access.log.4_20180614174001 ok
-- :: uploadFile2Hdfs.sh access.log.5_20180614174001 ok
-- :: uploadFile2Hdfs.sh access.log.6_20180614174001 ok
-- :: uploadFile2Hdfs.sh access.log.7_20180614174001 ok
3.5.2. HDFS命令行上传文件查看
[yun@mini01 ~]$ hadoop fs -ls /data/webservice/
Found items
-rw-r--r-- yun supergroup -- : /data/webservice//access.log.1_20180614174001
-rw-r--r-- yun supergroup -- : /data/webservice//access.log.2_20180614174001
-rw-r--r-- yun supergroup -- : /data/webservice//access.log.3_20180614174001
-rw-r--r-- yun supergroup -- : /data/webservice//access.log.4_20180614174001
-rw-r--r-- yun supergroup -- : /data/webservice//access.log.5_20180614174001
-rw-r--r-- yun supergroup -- : /data/webservice//access.log.6_20180614174001
-rw-r--r-- yun supergroup -- : /data/webservice//access.log.7_20180614174001
3.5.3. 浏览器查看看
http://10.0.0.11:50070/explorer.html#/data/webservice/20180614 路径 : /data/webservice/20180614

3.6. 脚本加入定时任务
[yun@mini01 hadoop]$ crontab -l # WEB日志上传HDFS 每小时执行一次
*/ * * * /app/yunwei/hadoop/uploadFile2Hdfs.sh >/dev/null >&
3.7. 相关的脚本和jar包
在Git上,路径如下:
https://github.com/zhanglianghhh/bigdata/tree/master/hadoop/hdfs

Hadoop2.7.6_02_HDFS常用操作的更多相关文章
- Hadoop HDFS文件常用操作及注意事项
Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
- Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
- python 异常处理、文件常用操作
异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm
- byte数据的常用操作函数[转发]
/// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...
随机推荐
- Android开发之漫漫长途 XVII——动画(续)
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- 从零开始学 Web 之 Vue.js(二)过滤器,按键修饰符,自定义指令
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- git reset命令使用
版本回退 当前有三个commit提交版本commit1commit2commit3Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本上一个版本是HEAD^,上上一个版本是HEAD^^ ...
- set 和hash_set和海量数据的处理问题
什么样的结构决定其什么样的性质,因为set/map/multiset/multimap都是基于RB-tree之上,所以有自动排序功能, 而hash_set/hash_map/hash_multiset ...
- Django 学习笔记(五) --- Ajax 传输数据
人生苦短 ~ Tips:仅适用于 Python 3+(反正差别不大,py2 改改也能用).因为据 Python 之父 Guido van Rossum 说会在 2020 年停止对 Python 2 的 ...
- 支付宝(alipay)即时到账收款接口开发中的那些事儿
不会做,看看也可以会,要做好就还是需要多学习 国庆回来就一直没状态,看完<银河护卫队>,印象最深的竟然是只有两句台词的呆萌groot,昨天才休息一天,大耍大吃,今天还是把昨天的知识学习一下 ...
- [NOI 2017]整数
Description 题库链接 P 博士将他的计算任务抽象为对一个整数的操作. 具体来说,有一个整数 \(x\) ,一开始为 \(0\) . 接下来有 \(n\) 个操作,每个操作都是以下两种类型中 ...
- vmware--查看链接克隆依赖关系
我们都知道,虚拟机克隆有完全克隆和链接克隆两种克隆方式.当根据模版去链接克隆出很多机器时,时间一长或者把克隆后的机器改名了,我们就忘记了哪台机器是克隆出来的,哪台是直接装的.如果不小心把模版机器给删除 ...
- XCode - App installation failed (A valid provisioning profile for this executable was not found)
OSX:10.14 XCode:10.1 iPhone:iPhone 4S IOS9.3.5 我不得不骂那些SB们,不懂就别TMD乱写文章,误导别人!!我今天看了很多关于这个错误的中文文章,结果都没能 ...
- Spring Integration实现分布式锁
学习本篇之前,可以先看下文章 什么是分布式锁,了解下基本概念. 之前都是手写一个分布式锁,其实Spring早就提供了分布式锁的实现.早期,分布式锁的相关代码存在于Spring Cloud的子项目Spr ...