您的位置:首页 > 运维架构

搭建hadoop本地模式和伪分布和hdfs操作四

2018-03-06 23:43 399 查看
一、安装和配置hadoop
   1.准备工作
      (*)安装Linux和JDK  hadoop111
      (*)设置主机名和ip关系 vi /etc/hosts  添加  IP  主机名
       修改主机名 vi /etc/sysconfig/network  NETWORKING=yes  HOSTNAME=hadoop
       (*)关闭防火墙 service iptables status  service iptables stop
   2.安装模式
    解压:tar -zcvf hadoop-2.4.1.tar.gz -C     ~/training/
    设置环境变量:vi ~/.bash_profile
              HADOOP_HOME=/root/training/hadoop-2.4.1
              export HADOOP_HOME

    把hdfs的bin和sbin命令加入到环境变量中 全部直接使用hdfs命令
    PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    export PATH
    执行:source~/.bash_profile 命令使配置的环境变量生效
    (1)本地模式
        (*)不具备 HDFS 的功能,所有数据存在 Linux 上
        (*)只能测试 MapReduce 程序
        (*)vihadoop-env.sh 28exportJAVA_HOME=/root/training/jdk1.7.0_75
        (*)Demo:wordcount hadoopjarhadoop-mapreduce-examples-2.4.1.jar
             wordcount /root/data/input/data.txt /root/data/output/wc1
     (2)伪分布模式
        (*)具备 Hadoop 的所有功能:HDFS 和 Yarn
        (*)在单机上模拟分布式的环境
        (*)开发和测试
        (1)hdfs-site.xml:暂时不改权限(就是是否需要密码登录)
           <!--数据块的冗余度 replication 水平赋值-->
           <property>
            <name>dfs.replication</name>
            <value>1</value>

             <description>数据块的冗余度 replication 水平赋值</description>
            </property>
            <!--是否开启权限验证-->
           <property>
            <name>dfs.permissions</name>
            <value>false</value>
           </property>

        (2)core-site.xml
            <!--NameNode的地址-->
            <!--9000是RPC通信端口号-->
               <property>
                <name>fs.defaultFS</name>
                <value>hdfs://192.168.12.111:9000</value>
            </property>
           <!--HDSF数据,日志和元信息的保存目录  默认是Linux的tmp的目录  目录必须存在-->
                <property>
                <name>hadoop.tmp.dir</name>
                <value>/root/training/hadoop-2.4.1/tmp</value>
            </property>
         (3)cp mapred-site.xml.template   mapred-site.xml
            <!--mapreduce的运行平台-->
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>
            
         (4)yarn-site.xml<!--Yarn的主节点-->
           <property><name>yarn.resourcemanager.hostname</name><value>192.168.12.112</value></property>
           <!--mapreduce处理数据的方式-->  shuffle 洗牌
                   <property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
        (*)对 HDFS 进行格式化 hdfs   namenode  -format  或者hadoop namenode  -format
          日志:17/05/2500:52:13INFOcommon.Storage:Storagedirectory/root/training/hadoop-2.4.1/tmp/dfs/namehasbeensuccessfullyformatted
        (*)启动 hadoop 集群: start-all.sh start-dfs.sh start-yarn.sh
          进程:jps
            10258DataNode
            10817NodeManager
            10532ResourceManager
            10401SecondaryNameNode
            10138NameNode
     (3)全分布模式(3 台)

     (4)配置免密码登陆
        (*)产生密钥对
             ssh-keygen -t rsa (算法)
              日志:
              Youridentificationhasbeensavedin/root/.ssh/id_rsa.
                      Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.
        (*)把自己的公钥给别人 ssh-copy-id -i .ssh/id_rsa.pub root@hadoop111
        (*)Demo:免密码登录

    五、操作 HDFS:
        1、WebConsole
        管理员 NameNode: http://192.168.88.111:50070         SecondaryNameNode 网页:监控日志的合并信息 http://192.168.88.111:50090         2、命令行
        (1)操作命令 -mkdir:创建目录
            (*)hdfsdfs-mkdir/tools
            (*)hdfsdfs-mkdir/parent/child
        -ls 查看目录的文件
        -ls-R 包含子目录
        (*)hdfsdfs-ls/
        (*)hdfsdfs-lsr/
        上传数据 -put -copyFromLocal
        -moveFromLocal: 相当于 ctrl+x
        (*) 举例:上传一个大于 128M 的文件 hdfsdfs-puthadoop-2.4.1.tar.gz/tools/
        (*) 检查数据块:
        /root/training/hadoop-2.4.1/tmp/dfs/data/current/BP-416130860-192.168.88.1111495644733075/current/finalized
        下载数据 -copyToLocal -get
        (*)举例:hdfsdfs-get
        -rm: 删除一个空目录
        -rmr: 删除一个目录和子目录 hdfsdfs-rmr/tools/hadoop-2.4.1.tar.gz
        日志:Deleted/tools/hadoop-2.4.1.tar.gz
        (问题):如果启用回收站,日志???? -----> 本质??

        -getmerge: 将目录下所有文件合并后,再下载
        hdfsdfs-mkdir/students
        hdfsdfs-putstudent0*.txt/students
        hdfsdfs-getmerge/students~/a.txt

        -cp: 拷贝:hdfsdfs-cp/students/student03.txt/students/student04.txt
        -mv:移动
        
        -count [root@hadoop111~]#hdfsdfs-count/students    1 4 49/students

             -du:每个文件的大小[root@hadoop111~]#hdfsdfs-du/students  
        19 /students/student01.txt
        10 /students/student02.txt
        10 /students/student03.txt
        10 /students/student04.txt

        -text、-cat: 查看文件内容
         hdfsdfs-cat/students/student01.txt

        balancer
    (2)管理命令:hdfsdfsadmin******
        -report 显示文件系统的基本数据 hdfsdfsadmin -report

        -safemode HDFS 的安全模式命令 <enter|leave|get|wait>
         举例:hdfsdfsadmin-safemodeenter|leave|get|wait
        (*)安全模式是只读
        [root@hadoop111~]#hdfs dfsadmin -safemode get
        SafemodeisOFF

        [root@hadoop111~]#hdfs dfsadmin -safemode enter
        SafemodeisON

        [root@hadoop111~]#hdfs dfs -mkdir/aaa
        mkdir:Cannotcreatedirectory/aaa.Namenodeisinsafe mode.
        
        [root@hadoop111~]#hdfs dfsadmin -safemode leave
        SafemodeisOFF

         [root@hadoop111~]#
    (3)其他操作命令:
        [-chmod[-R]<MODE[,MODE]...|OCTALMODE>PATH...] 权限

        创建删除快照:snapshot

            [-createSnapshot<snapshotDir>[<snapshotName>]]
            [-deleteSnapshot<snapshotDir><snapshotName>]
            [-renameSnapshot<snapshotDir><oldName> <newName>]

        清空 HDFS 回收站
            [-expunge]
    (4)其他的管理命令 开启和禁用快照
        [-allowSnapshot<snapshotDir>]
        [-disallowSnapshot<snapshotDir>]

    设置 HDFS 目录的配额(quota):
        [-setQuota<quota><dirname>...<dirname>]
        [-clrQuota<dirname>...<dirname>]
        [-setSpaceQuota<quota><dirname>...<dirname>]
            [-clrSpaceQuota<
9ab6
;dirname>...<dirname>]
    
    
    3、JavaAPI
        (*)jar 包:
        /root/training/hadoop-2.4.1/share/hadoop/common
        /root/training/hadoop-2.4.1/share/hadoop/common/lib
        /root/training/hadoop-2.4.1/share/hadoop/hdfs
        /root/training/hadoop-2.4.1/share/hadoop/hdfs/lib
    
    (*)创建目录: hdfsdfs-mkdir/tools
        HDFS 的权限检查:功能非常弱 你说你是谁,你就谁
     当前用户 同组用户 其他人
     根目录的权限:inode="/":root:supergroup:d rwx r-x r-x

PATH=$PATH:$HOME/bin

export PATH
JAVA_HOME=/root/training/jdk1.7.0_75
export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH

HADOOP_HOME=/root/training/hadoop-2.4.1
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: