hadoop基础介绍

Hadoop的核心能力

Hadoop是Apache软件基金会下的顶级开源项目,用以提供:

  • 分布式数据存储
  • 分布式数据计算
  • 分布式资源调度
    为一体的整体解决方案。相应的,hadoop有三大组件
  1. hdfs分布式存储组件,提供海量数据存储的分布式存储组件,用于构建分布式文件系统;
  2. map reduce分布式计算组件,提供编程接口供用户开发分布式计算应用程序;
  3. YARN分布式调度组件,供用户调度大规模集群资源

hdfs组件内部角色划分

hdfs全称hadoop distributed file system,hadoop分布式文件系统,是一个典型的主从模式架构

主角色:NameNode,负责发送控制命令
· HDFS系统的主角色,是一个独立的进程
· 负责管理HDFS整个文件系统
· 负责管理DataNode
从角色:DataNode,负责执行及数据存储,即存入数据和取出
主角色辅助角色:SecondaryNameNode,辅助主角色,也是一个独立进程,主要帮助NameNode完成元数据整理工作

hdfs集群启停

Hadoop HDFS:组件内置了HDFS集群的一键启停脚本。

HADOOP HOME/sbin/start-dfs.sh,一键启动HDFS集群

执行原理:
·在执行此脚本的机器上,启动SecondaryNameNode
·读取core-site.xml内容(fs.defaultFS.项),确认NameNode所在机器,启动NameNode
·读取workers内容,确认DataNode)所在机器,启动全部DataNode:

HADOOP_HOME/sbin/stop-dfs.sh,一键关闭HDFS集群

执行原理:
·在执行此脚本的机器上,关闭SecondaryNameNode
·读取core-site.xml内容(fs.defaultFS.项),确认NameNode所在机器,关闭NameNode
·读取workers[内容,确认DataNode)所在机器,关闭全部NameNode

单进程启停

除了一键启停外,也可以单独控制进程的启停。
1.SHADOOP_HOME/sbin/hadoop-daemon.sh,此脚本可以单独控制所在机器的进程的启停
用法:hadoop-daemon.sh(start|status|stop)(namenode|secondarynamenode|datanode)
2.SHADOOP_HOME/bin/hdfs,此程序也可以用以单独控制所在机器的进程的启停
用法:hdfs–daemon(start|status|stop)(namenode|secondarynamenode|datanode)

hdfs基础文件操作命令

hdfs文件系统也是以/作为根目录来描述hdfs,hdfs的命令参数一般都带文件路径操作,那么如何区分linux本地文件和hdfs上的文件?我们可以显式的通过文件头来区分:
·Linux:file:///
·HDFS:hdfs://namenode:port/
如:
·Linux:file:///usr/local/hello.txt
·HDFS:hdfs://node1:8020/usr/local/hello.txt
一般情况下,协议头file:///或hdfs://node1:8020/可以省略
·需要提供Linux路径的参数,会自动识别为fie://
·需要提供HDFS路径的参数,会自动识别为hdfs://
除非你明确需要写或不写会有BUG否则一般不用写协议头。
此外,hdfs提供了两种命令体系:

  1. hadoop命令(老版),格式:hadoop fs + 参数
  2. hdfs命令(新版),格式:hdfs dfs + 参数
    两种命令的操作效果没区别,一些特殊场景需要用到hadoop或hdfs
-mkdir参创建目录

hadoop fs -mkdir -p /home/tmp
hdfs dfs -mkdir -p /home/tmp
这里-p标识父目录不存在也会创建父目录
如果不指定文件头,这里的路径默认hdfs的命令

-ls查看目录

hadoop fs -ls -h -R /home/tmp
hdfs dfs -ls -h -R /home/tmp
-h 人性化显式目录/文锦,-R递归查看目录其子目录,默认也是查看hdfs文件系统

-put上传文件

hadoop fs -put -f -p src_path dest_path
hdfs dfs -put -f -p src_path dest_path

-f 表示强制覆盖,-p保留访问和修改时间,所有权和权限
src_path是本地文件系统路径,dest_path是远程文件系统路径

-cat 查看远程文件

-cat查看全部文件内容
hadoop fs -cat src_path dest_path
hdfs dfs -cat src_path dest_path

通常配合more命令查看大文件
hadoop fs -cat src_path dest_path | more

-get下载文件

hadoop fs -get -f -p src_path dest_path
hdfs dfs -get -f -p src_path dest_path
这里的src_path是远程hdfs文件系统上的路径,dest_path是本地路径,标识要从远程下载到本地,-f也是强制覆盖,-p也是保留权限、访问和修改时间信息

-cp复制文件(hdfs文件系统上的复制)

hadoop fs -cp -f src_path dest_path
hdfs dfs -cp -f src_path dest_path

-f覆盖目标目录下的文件,这个命令的操作路径都是hdfs文件系统上的,
同时,如果dest_path路径我们起一个新名,就起到了改名的效果,如果是目录,就是复制到目录下

-appendToFile追加到远程文件

hadoop fs -appendToFile src_path dest_path
将所有给定本地文件内容追加到远程文件末尾,src_path是本地文件,dest_path市远程文件,如果dest文件不存在,则创建该文件,若本地文件为-,则为从标准输入中读入。hdfs文件系统只支持删除和追加,不能修改其中某个一些内容

-mv移动文件或目录

hadoop fs -mv src_path dest_path
hdfs dfs -mv src_path dest_path
在hdfs文件系统上进行文件的移动操作,也可以进行改名

-rm -r删除文件或目录

删文件不需要加-r参数
hadoop fs -rm -r [-skipTrash] dest_path
hdfs dfs -rm -r [-skipTrash] dest_path
-skipTrash标识跳过回收站,直接删除,回收站功能默认是关闭的

回收站功能默认关闭,如果要开启需要在core-site.xml内配置

fs.trash.interval
1440

fs.trash.checkpoint.interval 120 无需重启集群,在哪个机器配置的,在哪个机器执行命令就生效。 回收站默认位置在:/user/用户名(hadoop)/.Trash

其他操作命令请查看官方文档

https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-common/FileSystemShell.html

hdfs权限控制

hdfs超级权限用户是启动namenode的用户,
修改权限
在HDFS中,可以使用和Linux一样的授权语句,即:chown和chmod
·修改所属用户和组:
hadoop fs -chown [-R]root:root /xxx.txt
hdfs dfs -chown [-R]root:root /xxx.txt
·修改权限
hadoop fs -chmod [-R]777 /xxx.txt
hdfs dfs -chmod [-R]777 /xxx.txt
通常遇到权限问题,一般是用户权限不够导致

big data tools插件

通常我们可以在pycharm、jtbrain、datagrp中安装big data tools插件来实现图形化地hadoop文件操作

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值