hadoop04

hadoop
--------------
    分布式计算框架。
    common        //
    hdfs        //存储
    mapreduce    //MR,编程模型.
    yarn        //资源调度.
集群部署
-----------
    1.standard alone/local    //本地模式
        nothing.
    2.伪分布式
        一台机器.
        NN    //目录
        DN    //DataNode,block(128M:更改配置文件更改大小)
        RM
        NM
        2NN
    3.完全分布式
项目管理
--------------------
    (由于在第三方进行开发时依赖的很多jar包,jar又依赖jar包,需要通过maven将所有依赖的jar包找到)
    某些开发会将 所有jar包放置到lib下,此方法有时不便于管理
    pom.xml        //项目对象模型文件
    artifact    //项目所依赖的工件
安装maven
----------------
    项目管理软件。
    软件之间的依赖关系。
    ${user_home}/.m2
    [windows]
    1.解压即可
        不要放中文或空格目录。
    2.配置环境变量.
        M2_HOME=c:\myprograme\apache-maven-3.3.9
        PATH=...;%M2_HOME%\bin
    
    3.验证是否安装成功
        cmd>mvn -v

    4.修改默认的仓库位置
        [${maven_home}/conf/setttings.xml]
        <settings ...>
            ...
            <localRepository>e:/repo</localRepository>
            ...
        </settings>

    5.配置idea使用指定settings.xml文件.(安装目录\conf\settings)
        idea>>settings(扳手图标)>>maven>>设置用户的user setting file和local repository到指定路径

    [Centos]
    1.tar开文件
        /soft/apache-maven-3.3.9
        /soft/maven --> maven-3.3.9
    2.配置环境
        [/etc/profile]
        M2_HOME=/soft/maven
        PATH=$PATH:$M2_HOME/bin

    3.验证是否成功
        $>mvn -v
            Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T12:39:06-07:00)
            Maven home: /home/hadoop/soft/maven
            Java version: 1.8.0_131, vendor: Oracle Corporation
            Java home: /home/hadoop/soft/jdk1.8.0_131/jre
            Default locale: en_US, platform encoding: UTF-8
            OS name: "linux", version: "3.10.0-514.el7.x86_64", arch: "amd64", family: "unix"
maven工作原理
--------------
    依赖于互联网
    通过互联网,maven将所依赖的包逐级查找并下载,存储在maven仓库中(C:\Users\Administrator\.m2\repository)
    如果没有本地仓库.m2,可通过早idea中写入依赖,刷新maven project后,便可在本地产生仓库文件(以下为举例)
            <dependencies>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
            </dependency>
            </dependencies>
    maven查找依赖时先走本地仓库,然后到互联网下载
依赖(maven工件是三级定位)
-------------
    <dependency>
        <!-- 组id,解析成目录org/apache/hadoop/hadoop-hdfs/2.7.3 -->
        <groupId>org.apache.hadoop</groupId>
        <!-- 工件id  artifact -->
        <artifactId>hadoop-hdfs</artifactId>
        <!-- 版本 -->
        <version>2.7.3</version>
    </dependency>
maven仓库导入
-------------
    将仓库所在路径下的压缩包打开,直接拖至该位置,覆盖写入即可
    当需要将仓库更改位置时

安转idea
-----------------
    缺点:调试困难,不支持在一个窗口中打开多个项目
    1.右键点击ideaIU.exe文件,选择管理员身份运行.
    2.打开idea.网上查找注册码注册
    使用:file>>新建project>>新建模块(module)>>模块右键/框架支持>>maven>>
    3.设置快捷键
        选中快捷键内容>>tools>>sava as file template>>abbreviation设置快捷键/template设置快键键对应文本>>点击change,勾选快捷键应用的场景

    eclipse----->idea
--------------------------
    工作空间---->项目
    项目-------->模块
hadoop
--------------
    web UI http://hadoop01:50070
    数据节点可以配置多个目录,将一个文件分开存储到多个目录下
    名称节点配置的多个目录是将相同的文件存放在多个目录下
    hdfs切块是物理切割
    文件按块存储后将每块下载,拼接到一块,可以完全恢复成原来的文件

hdfs常见操作
-------------------
    1.查看hdfs帮助
        $>hdfs      $>hdfs dfsadmin -help setQuato
    2.hdfs  dfs

    3.hdfs getconf -namenodes    //查看集群中的名称节点
    hdsf getconf <name>    //取集群中的配置

    4.hdfs getcon -confkey dfs.namenode.fs-limits.min-block-size    //查看键值>dfs.namenode.fs-limits.min-block-size

    5.hdfs dfs -appendToFile dir dst    //对hdfs文件系统中的文件追加,dir追加文件,dst目标文件

配置hadoop的最小blocksize,必须是512的倍数。
-------------------------------------------
    [hdfs-site.xml]
    dfs.namenode.fs-limits.min-block-size=1024
    hdfs在写入过程中需要进行校验,512B进行一次校验。
    在windows下向hdfs文件系统中写入时,需要有权限写入
单独配置辅助名称节点
---------------------
    [hdfs-site.xml]
    dfs.namenode.secondary.http-address=hadoop05:50090

使用oiv命令查询hadoop镜像文件
------------------------------
    hdfs oiv -i fsimage -o a.xml -p XML            //查看镜像文件。
    hdfs oev -i edits -o a.xml -p XML            //查看编辑日志文件

hdfs dfsadmin管理命令
----------------------
    $>hdfs dfsadmin                //查看帮助
    $>hdfs dfsadmin    -help rollEdits        //查看指定命令的帮助
    $>hdfs dfsadmin -rollEdits        //滚动编辑日志
    

启动hdfs时,进入安全模式,镜像文件编辑日志进行融合,编辑日志滚动。

查看hdfs是否在安全模式
------------------------
    $>hdfs dfsadmin -safemode  enter        //进入
    $>hdfs dfsadmin -safemode  get            //查看
    $>hdfs dfsadmin -safemode  leave        //退出
    $>hdfs dfsadmin -safemode  wait            //等待
hadoop 
--------------------
    $>hadoop fs            //hdfs dfs
    $>hadoop checknative        //检查压缩库本地安装情况
    $>hadoop namenode -format    //格式化名称
    $>hadoop classpath        //查看类路径,hadoop中有的jar包
    $>hadoop trace            ///守护日志

hdfs管理命令
--------------------
    hdfs dfsadmin                

保存名字空间,需要进入安全模式
--------------------------------
    $>hdfs dfsamdin -saveNamespace    //将名称空间存储在名称节点的镜像文件的同一目录,保存格式为镜像文件fsimage,滚动保存

hadoop启动命令
------------------
    //凡是和slaves有关系的,启动时都是使用hadoop-daemons.sh脚本进行启动
    $>start-all.sh        //start-dfs.sh + start-yarn.sh
    $>start-dfs.sh        //hadoop-daemon.sh start namenode    单独启动名称节点
                //hadoop-daemons.sh start datanode    单独启动数据节点
                //hadoop-daemons.sh start secondarynamenode    //单独启动辅助名称节点
    $>start-yarn.sh        //yarn-daemon.sh start resourcemanager    单独启动资源管理器    
                //yarn-daemons.sh start nodemanager    单独启动节点管理器

配额管理(quota)
-------------------
    [目录配额]
    计算目录下的所有文件的总数。如果1,表示空目录。
    目录配额为长整数(long),需要管理员用户进行设置,只能配置目录,不能配置文件或其他
    $>hdfs dfsadmin -setQuota 1 dir1 dir2        //设置目录配额
    $>hdfs dfsadmin -clrQuota 1 dir1 dir2        //清除配额管理

    [空间配额]
    计算目录下的所有文件的总大小.包括副本.(即一个文件的存储占用的空间相当于所有副本存放在同一位置占用的空间大小)
    空间配置至少消耗384M的空间大小(目录本身会占用384M的空间)。
    $>hdfs dfsadmin -setSpaceQuota 3 data    //3表示空间配额为3B
    $>echo -n a > k.txt    //>覆盖写入    >>追加写入    -n表示在在文件的末尾不加入换行符,如果没有-n则文件中便会加入换行符
    $>hdfs dfs -put k.txt data2
    $>hdfs dfsadmin -clrSpaceQuota dir1            //清除配额管理


快照管理
--------------------
    1.描述
      迅速对文件(夹)进行备份。不产生新文件,使用差值存储。按照树的方式备份,备份根即可备份全部
      默认是禁用快照,产生快照需要先启用快照。
    2.命令
      $>hdfs dfsadmin -allowSnapShot dir1        //在dir1启用快照
      $>hdfs dfsadmin -disallowSnapShot dir1    //在dir1禁用快照
      $>hdfs dfs -createSnapshot dir ss1        //创建快照
      $>hdfs dfs -renameSnapshot dir ss1 ss2    //重命名
      $>hdfs dfs -deleteSnapshot dir ss1        //删除快照


slaves:集群启动时向该文件中的主机发送启动数据节点的命令,不是由其决定数据节点连接到集群上的
    是由名称节点上的白名单dfs.include决定,需要在hdfs-site.xml文件中进行配置

黑白名单的组合情况
-------------------------
include        //dfs.include
exclude        //dfs.hosts.include

include        exclude        Interpretation
No            No            不能连接
No            Yes            不能连接
Yes            No            可以连接
Yes            Yes            可以连接,将会退役状态。

节点的服役和退役(hdfs)
----------------------
    [添加新节点]
    1.在dfs.include文件中包含新节点名称,该文件在nn的本地目录。
        [白名单]
        [s201:/soft/hadoop/etc/dfs.include.txt]
        s202
        s203
        s204
        s205
    2.在hdfs-site.xml文件中添加属性.
        <property>
            <name>dfs.hosts</name>
            <value>/soft/hadoop/etc/dfs.include.txt</value>
        </property>

    3.在nn上刷新节点
        $>hdfs dfsadmin -refreshNodes

    4.在slaves文件中添加新节点ip(主机名)
        s202
        s203
        s204
        s205        //新添加的

    5.单独启动新的节点中的datanode
        [s205]
        $>hadoop-daemon.sh start datanode

        
    [退役]
    1.添加退役节点的ip到黑名单,不要更新白名单.
        [/soft/hadoop/etc/dfs.hosts.exclude.txt]
        s205

    2.配置hdfs-site.xml
        <property>
            <name>dfs.hosts.exclude</name>
            <value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
        </property>

    3.刷新nn节点
        $>hdfs dfsadmin -refreshNodes

    4.查看webui,节点状态在decommisstion in progress.

    5.当所有的要退役的节点都报告为Decommissioned,数据转移工作已经完成。

    6.从白名单删除节点,并刷新节点
        [s201:/soft/hadoop/etc/dfs.include.txt]
        ...

        $>hdfs dfsadmin -refreshNodes

    7.从slaves文件中删除退役节点

节点的服役和退役(yarn)
----------------------
    [添加新节点]
    1.在dfs.include文件中包含新节点名称,该文件在nn的本地目录。
        [白名单]
        [s201:/soft/hadoop/etc/dfs.include.txt]
        s202
        s203
        s204
        s205
    2.在yarn-site.xml文件中添加属性.
        <property>
            <name>yarn.resourcemanager.nodes.include-path</name>
            <value>/soft/hadoop/etc/dfs.include.txt</value>
        </property>

    3.在nn上刷新节点
        $>yarn rmadmin -refreshNodes

    4.在slaves文件中添加新节点ip(主机名)
        s202
        s203
        s204
        s205        //新添加的

    5.单独启动新的节点中的nodemananger
        [s205]
        $>yarn-daemon.sh start nodemananger

        
    [退役]
    1.添加退役节点的ip到黑名单,不要更新白名单.
        [/soft/hadoop/etc/dfs.hosts.exclude.txt]
        s205

    2.配置yarn-site.xml
        <property>
            <name>yarn.resourcemanager.nodes.exclude-path</name>
            <value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
        </property>

    3.刷新rm节点
        $>yarn rmadmin -refreshNodes

    4.查看webui,节点状态在decommisstion in progress.

    5.当所有的要退役的节点都报告为Decommissioned,数据转移工作已经完成。

    6.从白名单删除节点,并刷新节点

        $>yarn rmadmin -refreshNodes

    7.从slaves文件中删除退役节点


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值