Apache Hadoop

Apache Hadoop

_狭义上说,Hadoop指Apache一款java语言开发的开源框架,它的核心组件有:
HDFS(分布式文件系统):解决海量数据存储
YARN(作业调度和集群资源管理的框架):解决资源任务调度
MAPREDUCE(分布式运算编程框架):解决海量数据计算
_广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈,包括大数据处理流程中的各个阶段的软件:
HDFS:分布式文件系统
MAPREDUCE:分布式运算程序开发框架
HIVE:基于HADOOP的分布式数据仓库,提供基于SQL的查询数据操作
HBASE:基于HADOOP的分布式海量数据库
ZOOKEEPER:分布式协调服务基础组件
Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库
OOZIE:工作流调度框架
Sqoop:数据导入导出工具(比如用于mysql和HDFS之间)
FLUME:日志数据采集框架
IMPALA:基于hive的实时sql查询分析
等等

hadoop版本

  1. hadoop1.x和hadoop2.x的区别: yarn(资源管理) 解决了单点故障问题 提高资源的利用率
    Hadoop的版本很特殊,是由多条分支并行的发展着。大的来看分为3个大的系列版本:1.x、2.x、3.x。
    Hadoop1.0由一个分布式文件系统HDFS和一个离线计算框架MapReduce组成。
    Hadoop 2.0则包含:
    一个支持NameNode横向扩展的HDFS,
    一个资源管理系统YARN
    一个运行在YARN上的离线计算框架MapReduce。
    相比于Hadoop1.0,Hadoop 2.0功能更加强大,且具有更好的扩展性、性能,并支持多种计算框架。企业主流版本2.5-2.8的版本(稳定性软件兼容性最好), 3.x使用不多(软件间的兼容性还未升级完毕)
    _我们使用CDH版本和对应Hadoop版本号CDH5.14 Hadoop 2.6

    1. hadoop的特性
      1. 扩容能力
      2. 成本低
      3. 高效率
      4. 高可靠

Apache Hadoop--发行版本介绍

下载地址:http://archive.cloudera.com/cdh5/cdh/5/
搜索引擎搜索: cdh archive
官网下载页面:http://archive.cloudera.com/cdh5/cdh/5/
搜索hadoop-2.6.0-cdh5.14.0.tar.gz

集群简介

HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
01) HDFS集群(主从架构):
主角色: NameNode(nn)
从角色: DataNode(dn)
主角色的辅助角色(秘书角色而不是主角色的备份): secondaryNameNode(snn)
02) yarn集群(主从架构):
主角色: ResourceManager(rm)
从角色: NodeManager(nm)
03) MapReduce是需要开发的程序组件:
Map组件:
Reduce组件:

02) 部署模式:
    01) standalone(单机)独立模式:
        一台机器,没有HDFS, 只能测试MapReduce程序(一个进程),处理本地linux系统的文件,主要用于调试
    02) Pseudo-Distributed mode 伪集群模式 :
         一台机器上模拟一个分布式环境,即运行HDFS的NameNode和DataNode、YARN的 ResourceManger和NodeManager,但分别启动单独的java进程,具备hadoop的主要功能,用于学习调试。
    03) cluster mode 分布式集群模式:
        集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。
    04) 高可用(HA high availability)集群模式:
        主要解决单点故障 保证集群的高可用,提高可靠性
    我们今天的部署模式:  分布式集群模式
    hadoop-01     NameNode   DataNode    ResourceManager 
    hadoop-02     DataNode   NodeManager  SecondaryNameNode 
    hadoop-03      DataNode  NodeManager 

_一句话介绍MapReduce
mapreduce是一个分布式运算编程框架,是应用程序开发包,由用户按照编程规范进行程序开发,后打包运行在HDFS集群上,并且受到YARN集群的资源调度管理。

-Apache Hadoop--集群部署安装--集群角色介绍&部署模式

###服务器环境准备
01) 准备三台服务器
    1   vmware虚拟机
    2   静态ip
    3   主机名称
    4   ip与主机映射
    5   关闭防火墙: iptables 和 selinux
    6   ssh免密登录
    7   时间同步
    8   jdk环境 配置JAVA_HOME环境变量

一,同步时间
同步集群各机器时间
date -s "2019-03-03 03:03:03"
yum install ntpdate
网络同步时间
ntpdate cn.pool.ntp.org

二,设置主机名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node-1

三,配置IP、主机名映射
vi /etc/hosts
192.168.33.101 node-1
192.168.33.102 node-2
192.168.33.103 node-3

四,配置ssh免密登陆
生成ssh免登陆密钥
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
ssh-copy-id node-2

五,配置防火墙
查看防火墙状态
service iptables status
关闭防火墙
service iptables stop
查看防火墙开机启动状态
chkconfig iptables --list
关闭防火墙开机启动
chkconfig iptables off
六. JDK环境安装
上传jdk安装包
jdk-8u65-linux-x64.tar.gz
解压安装包
tar zxvf jdk-8u65-linux-x64.tar.gz
配置环境变量 /etc/profile
export JAVA_HOME=/export/servers/jdk1.8.0_65
export PATH=PATH:JAVA_HOME/bin
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
刷新配置
source /etc/profile

了解源码编译的含义

01) 为什么要编译hadoop的源码?
    01) Hadoop是使用Java语言开发的,可以通过底层JNi去调用C语言C+模块,但是有一些高级功能需求和操作(比如压缩)并不适合使用java,所以就引入了本地库(Native Libraries) 的概念.说白了,就是Hadoop的某些功能,必须通过JNT来协调Java类文件和Native代码生成的库文件一起才能工作.


    02) linux系统要运行Native 代码,首先要将Native 编译成目标CPU 架构的[.so]文件.
        而不同的处理器架构,需要编译出相应平台的动态库[.so] 文件,
        才能被正确的执行,所以最好重新编译一次hadoop源码,让[.so]文件与自己处理器相对应.
            注意: windows平台是动态库[.dll]文件

    总结: 主要是要重新编译本地库(Native Libraries) 代码(Linux下对应[.so]文件,window下对应[.dlI]文件),也就是编译生成linux下的[.so] 文件。
    当然如果自己修改了源码,也需要自己重新编译

02) 编译环境准备

        01) 安装jdk1.7
        02) 安装maven
        03) 参考详细笔记

7.2. 编译环境的准备

_准备linux环境
准备一台linux环境,内存4G或以上,硬盘40G或以上,这里使用的是Centos6.9 64位的操作系统(注意:一定要使用64位的操作系统)。
虚拟机联网,关闭防火墙,关闭selinux
关闭防火墙命令:
service iptables stop
chkconfig iptables off
关闭selinux:
vim /etc/selinux/config

_安装jdk1.7
注意:亲测证明hadoop-2.6.0-cdh5.14.0 这个版本的编译,只能使用jdk1.7,如果使用jdk1.8那么就会报错。
查找出 centos6.9系统自带的openjdk
rpm -qa | grep java
将所有这些openjdk全部卸载掉
rpm -e xxxx(包名)

将oracle 公司的jdk的安装包上传服务器并且解压
mkdir -p /export/servers
mkdir -p /export/software
cd /export/software
tar -zxvf jdk-7u71-linux-x64.tar.gz -C ../servers/
配置环境变量
vim /etc/profile
export JAVA_HOME=/export/servers/jdk1.7.0_71
export PATH=:JAVA_HOME/bin:PATH
重新加载环境变量文件,立即生效
source /etc/profile

_安装maven
理论上使用maven3.x以上的版本应该都可以,此处不建议使用太高的版本。
将maven的安装包上传到/export/softwares,然后解压maven的安装包到/export/servers
cd /export/softwares/
tar -zxvf apache-maven-3.0.5-bin.tar.gz -C ../servers/
配置maven的环境变量
vim /etc/profile
export MAVEN_HOME=/export/servers/apache-maven-3.0.5
export MAVEN_OPTS="-Xms4096m -Xmx4096m"
export PATH=:MAVEN_HOME/bin:PATH

让修改立即生效
source /etc/profile

解压已经下载好的一份maven仓库,用来编译hadoop会比较快。
tar -zxvf mvnrepository.tar.gz -C /export/servers/
修改maven的配置文件
cd /export/servers/apache-maven-3.0.5/conf
vim settings.xml
指定我们本地仓库存放的路径

添加阿里云的镜像地址,下载jar包更快。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

安装findbugs
解压findbugs
tar -zxvf findbugs-1.3.9.tar.gz -C ../servers/
配置findbugs的环境变量
vim /etc/profile
export FINDBUGS_HOME=/export/servers/findbugs-1.3.9
export PATH=:FINDBUGS_HOME/bin:PATH
让修改立即生效
source /etc/profile
在线安装一些依赖包
yum install autoconf automake libtool cmake
yum install ncurses-devel
yum install openssl-devel
yum install lzo-devel zlib-devel gcc gcc-c++
bzip2压缩需要的依赖包
yum install -y bzip2-devel
安装protobuf
解压protobuf并进行编译
cd /export/softwares
tar -zxvf protobuf-2.5.0.tar.gz -C ../servers/
cd /export/servers/protobuf-2.5.0
./configure
make && make install

安装snappy
cd /export/softwares/
tar -zxf snappy-1.1.1.tar.gz -C ../servers/
cd ../servers/snappy-1.1.1/
./configure
make && make install
下载cdh源码准备编译
源码下载地址为:
http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.14.0-src.tar.gz
解压cdh源码进行编译
tar -zxvf hadoop-2.6.0-cdh5.14.0-src.tar.gz -C ../servers/
cd /export/servers/hadoop-2.6.0-cdh5.14.0
编译不支持snappy压缩:
mvn package -Pdist,native -DskipTests –Dtar
编译支持snappy压缩:
mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy
编译完成之后安装包的tar.gz文件就在下面这个路径里面

常见编译错误
如果编译时候出现这个错误:
An Ant BuildException has occured: exec returned: 2
这是因为tomcat的压缩包没有下载完成,需要自己下载一个对应版本的apache-tomcat-6.0.53.tar.gz的压缩包放到指定路径下面去即可
这两个路径下面需要放上这个tomcat的 压缩包
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-common-project/hadoop-kms/downloads

    ......

安装包目录结构

01) 上传编译好的安装包到/export/software
    rz  hadoop-2.6.0-cdh5.14.0-with-centos6.9.tar.gz
02) 解压安装包到/export/servers
    tar -zxvf hadoop-2.6.0-cdh5.14.0-with-centos6.9.tar.gz -C /export/servers/
03) hadoop的目录结构
    bin: Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现
    etc: hadoop配置文件目录
    include:对外提供的编程库头文件(具体动态库和静态库在lib目录中)
    lib: 该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用
    libexec: 各个服务对用到的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
    sbin: hadoop集群启动关闭的脚本(单节点逐个启动  一键启动)
    share: Hadoop各个模块编译后的jar包所在的目录  官方案例jar包

09配置文件详解--上

01) _hadoop-env.sh
    vim /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hadoop-env.sh
    export JAVA_HOME=/export/servers/jdk1.8.0_144
    
02) xml配置文件(hdfs mapreduce yarn  common四个模块的配置)
    参考配置: http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.14.0/
    01) _core-site.xml
        <!-- 指定hadoop所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <!--  hdfs文件系统,所以fs.defaultFS = File:///(hdfs://) -->
            <value>hdfs://hadoop01:8020</value>
        </property>
        <!-- 指定hadoop运行时产生文件的存储目录,默认/tmp/hadoop-${user.name} -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/export/data/hadoopdata</value>
        </property>
    02) _hdfs-site.xml
        <!-- 指定HDFS副本的数量 -->
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        <!-- secondaryNameNode所在的地址-->
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>hadoop02:50090</value>
        </property>
    03) _mapred-site.xml
        改名:  mv mapred-site.xml.template mapred-site.xml
        vi mapred-site.xml

        <!-- 指定mr运行时框架,这里指定在yarn上,默认是local -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    04)_ yarn-site.xml
        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop01</value>
        </property>

        <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序默认值:"" -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>

        大量的默认配置: http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.14.0/

10-配置文件详解--下

01) _slaves文件
    01) 文件作用
        配合一键启动脚本,决定哪些服务器上启动从角色
        通过dfs.hosts 指定文件中的机器才能加入hadoop集群中
    02) 配置内容: 一行一个主机名
        vim /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/slaves

        hadoop01
        hadoop02
        hadoop03
02) 将主节点上的hadoop的安装包分发到hadoop02 和 hadoop03
    cd  /export/servers/
    scp -r hadoop-2.6.0-cdh5.14.0/ root@hadoop02:/export/servers/
    scp -r hadoop-2.6.0-cdh5.14.0/ root@hadoop03:/export/servers/
03) 配置hadoop的环境变量:
    vim /etc/profile 添加如下内容:
        export HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    将主节点上配好的/etc/profile文件 分发到hadoop02 和 hadoop03 上
        scp /etc/profile root@hadoop02:/etc/profile
        scp /etc/profile root@hadoop03:/etc/profile
    将三台的环境变量生效:(在三台上执行如下)
        source /etc/profile
    验证hadoop环境变量是否生效
        hadoop version

11-_-namenode format
01) 为什么需要format?
01) format主要创建hadoop运行依赖的一些文件和文件夹, 本质就是一些清理和准备工作
02) 首次启动集群前,需要针对hdfs进行format操作
03) format操作只需要进行一次(如果成功的话)
02) namenode format操作(在namenode所在的机器上)
hadoop namenode -format (过时的命令)
hdfs namenode -format
成功的标识:
Storage directory /export/data/hadoopdata/dfs/name has been successfully formatted.
可以查看初始化后的文件内容: cd /export/data/hadoopdata/dfs/name/current
03) 不小心再次执行了format会如何? 怎么解决?
会如何: 上一次初始化的集群会出现主从角色互相不识别的情况 之前集群的元数据全部丢失
如何解决:将3台服务器上hadoop.tmp.dir指定的目录全部删除,重新format一次(相当于一个新的集群)

12--Apache Hadoop--集群两种启动方式
01) 单节点逐个启动:
01) 在主节点上使用以下命令启动HDFS NameNode
hadoop-daemon.sh start namenode
02) 在每个从节点上使用以下命令启动HDFS DataNode
hadoop-daemon.sh start datanode
03) 在主节点上使用以下命令启动YARN ResourceManager
yarn-daemon.sh start resourcemanager
04) 在每个从节点上使用以下命令启动YARN nodemanager
yarn-daemon.sh start nodemanager
05) 在hadoop02上使用如下命令启动HDFS secondaryNameNode
hadoop-daemon.sh start secondarynamenode
说明: 以上脚本位于$HADOOP_PREFIX/sbin/目录下.如果想要停止某个节点上某个角色,只需要把命令中的start改为stop即可。
好处: 可以精准的控制每台机器上每个进程的状态,便于排查单个服务器的异常问题
02) 一键启动脚本:
01) 前提:
配置好ssh免密登录
配置好slaves文件
02) 启动hdfs集群:
start-dfs.sh stop-dfs.sh
03) 启动yarn集群:
stat-yarn.sh stop-dfs.sh
04) 一键启动两个集群:
start-all.sh stop-all.sh

感受hadoop

命令行,JavaAPI,WEBUI界面

命令行:

[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum <src> ...]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>]
[-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-count [-q] [-h] [-v] [-x] <path> ...]
[-cp [-f] [-p | -p[topax]] <src> ... <dst>]
[-createSnapshot <snapshotDir> [<snapshotName>]]
[-deleteSnapshot <snapshotDir> <snapshotName>]
[-df [-h] [<path> ...]]
[-du [-s] [-h] [-x] <path> ...]
[-expunge]
[-find <path> ... <expression> ...]
[-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-getfacl [-R] <path>]
[-getfattr [-R] {-n name | -d} [-e en] <path>]
[-getmerge [-nl] <src> <localdst>]
[-help [cmd ...]]
[-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]]
[-mkdir [-p] <path> ...]
[-moveFromLocal <localsrc> ... <dst>]
[-moveToLocal <src> <localdst>]
[-mv <src> ... <dst>]
[-put [-f] [-p] [-l] <localsrc> ... <dst>]
[-renameSnapshot <snapshotDir> <oldName> <newName>]
[-rm [-f] [-r|-R] [-skipTrash] <src> ...]
[-rmdir [--ignore-fail-on-non-empty] <dir> ...]
[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]
[-setfattr {-n name [-v value] | -x name} <path>]
[-setrep [-R] [-w] <rep> <path> ...]
[-stat [format] <path> ...]
[-tail [-f] <file>]
[-test -[defsz] <path>]
[-text [-ignoreCrc] <src> ...]
[-touchz <path> ...]
[-usage [cmd ...]]

Generic options supported are
-conf <configuration file> specify an application configuration file
-D <property=value> use value for given property
-fs <local|namenode:port> specify a namenode
-jt <local|resourcemanager:port> specify a ResourceManager
-files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.

The general command line syntax is
bin/hadoop command [genericOptions] [commandOptions]

###webUI界面
    01) namenode的界面: http://hadoop01:50070
        50070是webUI端口   之前配置的8020是rpc通信端口
        参考:http://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
    02) resourceManager的界面: http://hadoop01:8088
###初体验:
    01) hdfs存储文件体验:
        显示帮助: hadoop fs
        创建目录:hadoop fs -mkdir  /test
        上传文件:hadoop fs -put 1.txt /log/20190909
        【这里存储的是默认地址配置hdfs://hadoop01:8020下面的/log/20190909】
        下载文件:hadoop fs -get /test/1.txt ./
        体验:
            1 hdfs本质就是文件存储的
            2 结构上也是树形目录结构, 从/ 根目录开始
            3 有文件夹和文件
            4 操作起来比较慢? 为什么慢? 难道是因为分布式文件存储的原因?
            
    02) yarn体验,需要结合mr:
        01) 运行wordcount
            1   /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce
            2   hadoop fs -mkdir -p /wordcount/input
            3   vim wc.txt
            4   hadoop fs -put wc.txt /wordcount/input
            5   hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.14.0.jar wordcount /wordcount/input /wordcount/output
            6   hadoop fs -cat /wordcount/output/part-r-00000
        体验:
            mr程序本质上就是一个jar包(自己写的程序打成jar包)
            mr第一步先去找rm? 申请运行需要的资源吗?
            mr程序分成了两个阶段: map  和 reduce阶段
            mr输出的结果好像有序, 按照字典序进行升序排列(a-z,0-9)
        02) 圆周率计算
            hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.14.0.jar pi 2 4

job history服务的开启

01) 为什么需要job history服务?
    重启yarn集群后,上次运行的mr程序的状态都丢失了,我们需要保存之前运行的mr程序信息(日志形式)
02) 如何开启job history服务?
    01) 默认情况下没有开启此功能,需要在mapred-site.xml中配置并手动启动
    02) 关闭hdfs集群
        stop-dfs.sh或者关闭stop-yarn.sh
    03) 修改mapred-site.xml
        cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
        vim mapred-site.xml
            <!-- MapReduce JobHistory Server IPC host:port -->
            <property>
                <name>mapreduce.jobhistory.address</name>
                <value>hadoop01:10020</value>
            </property>
            <!-- 查看历史服务器已经运行完的Mapreduce作业记录的web地址,需要启动该服务才行 -->
            <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>hadoop01:19888</value>
            </property>
    04) 把修改好的配置文件scp给其他机器
        scp mapred-site.xml  root@hadoop02:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/mapred-site.xml
        scp mapred-site.xml  root@hadoop03:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/mapred-site.xml
    05)启动hdfs集群:
        start-dfs.sh
    _06) 单独启动/关闭historyserver服务(只需要在配置的指定机器上启动即可hadoop01)
        启动: mr-jobhistory-daemon.sh start historyserver
        关闭: mr-jobhistory-daemon.sh stop  historyserver
    _07) 访问job history服务器
        http://hadoop01:19888

    注意: job history服务需要手动启动

hdfs垃圾桶机制功能

01) 为什么需要垃圾桶机制?
    误操作删除一些重要文件,可以进行恢复.
02) 垃圾桶机制的配置
    默认误操作删除重要文件,无法恢复.
    01) vim core-site.xml
        <!-- 删除文件在回收站的保存时间  -->
        <property>
            <name>fs.trash.interval</name>
            <value>1440</value>
        </property>
    02) 把配置文件scp给其他机器
        scp core-site.xml  root@hadoop02:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml
        scp core-site.xml  root@hadoop03:/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml
    03) 重启hdfs集群:
        stop-dfs.sh
        start-dfs.sh
03) 垃圾桶机制验证
    01) 删除文件: hadoop fs -rm /test/1.txt
    02) 开启垃圾桶机制后: 本质是把删除的文件移动到一个指定的文件夹中(每个用户在/user/root/.Trash下都有自己的垃圾目录)
    03) 如何恢复:
        重新移动回来: hadoop fs -mv /user/root/.Trash/Current/test/1.txt /test/
    04) 什么时候真正删除:  垃圾桶机制配置的时间到了(1天=1440分钟)
    05) 如何跳过垃圾桶直接永久删除: hadoop fs -rm -skipTrash /test/1.txt
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容