大数据 Hadoop(一)概念与搭建环境

大数据 Hadoop

大数据概念

大数据由巨型数据集组成,这些数据集大小常超出人类在可接受时间下的收集、庋用、管理和处理能力。大数据的大小经常改变,截至2012年,单一数据集的大小从数太字节(TB)至数十兆亿字节(PB)不等。

在一份2001年的研究与相关的演讲中,麦塔集团(META Group,现为高德纳)分析员道格·莱尼(Doug Laney)指出数据增长的挑战和机遇有三个方向:量(Volume,数据大小)、速(Velocity,数据输入输出的速度)与多变(Variety,多样性),合称“3V”或“3Vs”。高德纳与现在大部分大数据产业中的公司,都继续使用3V来描述大数据。高德纳于2012年修改对大数据的定义:“大数据是大量、高速、及/或多变的信息资产,它需要新型的处理方式去促成更强的决策能力、洞察力与最优化处理。”另外,有机构在3V之外定义第4个V:真实性(Veracity)为第四特点。

大数据必须借由计算机对数据进行统计、比对、解析方能得出客观结果。美国在2012年就开始着手大数据,奥巴马更在同年投入2亿美金在大数据的开发中,更强调大数据会是之后的未来石油。数据挖掘(data mining)则是在探讨用以解析大数据的方法。[1]

大数据特点

具体来说,大数据具有4个基本特征:

  1. 数据体量巨大。 百度资料表明,其新首页导航每天需要提供的数据超过1.5PB(1PB=1024TB),这些数据如果打印出来将超过5千亿张A4纸。有资料证实,到目前为止,人类生产的所有印刷材料的数据量仅为200PB。
  2. 数据类型多样。 现在的数据类型不仅是文本形式,更多的是图片、视频、音频、地理位置信息等多类型的数据,个性化数据占绝对多数。
  3. 处理速度快。 数据处理遵循“1秒定律”,可从各种类型的数据中快速获得高价值的信息。
  4. 价值密度低。 以视频为例,一小时的视频,在不间断的监控过程中,可能有用的数据仅仅只有一两秒。
  5. 大数据不能取代关系型数据库的技术。

大数据能干什么

大数据的起步数据量:1PB = 124TB ,一台计算显然没有办法保存如此庞大的数据量。如果数据量很大,那么就需要解决一个数据查询的问题。但是,这个不是取代关系型数据库的技术。

主要解决两个问题:

  1. 存数据
  2. 读取数据

而hadoop是大数据的技术的核心以及基石,但是他不是代表了大数据的全部。

大数据背景

  1. Apache中的一个项目叫Lucenne是一个搜索引擎;
  2. Netch 是一个分布式的网络爬虫框架(通过请求把请求到的网页下载到本地中,是一种获取互联网资源的一种技术)。首先需要解决如何查与存储的问题(通过谷歌文件系统文章解决了存储问题)。
  3. Hadoop,是Apache的顶级项目,由下面几个部分组成:
    1. Hadoop Common:在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common
    2. HDFS:Hadoop分布式文件系统(Distributed File System)-HDFS(Hadoop Distributed File System),负责存储
    3. MapReduce:并行计算框架,0.20前使用org.apache.hadoop.mapred旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API,负责读取算。
    4. YARN

Hadoop主要提供了两个部分:HDFS以及MapReduce。

Hadoop 生态圈

Hadoop 生态圈
主要构成

搭建Hadoop

节点配置

在搭建过程中,都可以先部署一台,然后通过FTP将一些配置传输到其他两台服务器上即可。下面主要配置的是Master主机C1。
下面的环境均搭建在CentOS7中,且JDK的版本为1.8.251

安装以及配置如下,如果下面的不清楚的地方可以参考《官方文档》

  1. 需要三台Linux环境。

  2. 关闭服务器的防火墙(可选择永久关闭防火墙)。可使用命令service firewalld stop;关闭开机启动systemctl disable firewalld

  3. 三台电脑都需要安装gcc C语言运行库yum install gcc

  4. 卸载Linux 预装Java(三台服务器都需要卸载);安装自定义JDK版本,并配置环境变量可参见《Linux开发环境安装》

  5. /etc/hosts文件下配置三台主机的IP地址。如下所示。

    $ vim /etc/hosts
    $ cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.0.20 c1
    192.168.0.21 c2
    192.168.0.22 c3
    
  6. 三台服务器都需要配置SSH免密登录。配置公钥私钥。

    1. 配置私钥,创建私钥ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa,三台主机都要生成私钥。此时生成的公私钥将在/root/.ssh目录中。如下所示:

      -rw-------. 1 root root  672 5月  11 17:04 id_dsa           ## 私钥
      -rw-r--r--. 1 root root  601 5月  11 17:04 id_dsa.pub       ## 公钥
      
    2. 将私钥追加到公钥(这个地方主要配置Master主机公钥)。cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys,将生成的公钥重新输出到一个authorized_keys文件中去(避免修改原有公钥)。同时需要将其他两台Slave1与Slave2的公钥的内容复制到authorized_keys中去。如下所示,<font style="color:red;font-weight:bolder">一定要保证三个公钥各自占一行。</font>

      ssh-dss AAAAB3NzaC1kc3MAAACBANFpVIAwyHBgJ3Ww1bWmyCAwsjdOyazUb5xWjINMGyE9b5bAyhtMxs8LLPq+PTqi6JygKX3V4uXU5cvac/hnrlaYXIZtlEmED/CIrmefGkVnmqWwdYSQYhoPxZScWcSTH6B+XmLeLx+IBxtXdkN4LgGfwplyIF1kiiN+swsx5CzNAAAAFQD+JEtvwTbsCOb9B/BP9FujtoeEBQAAAIEAhdjuzcD87MzdEuh4xlS9mndRPFqhi/9ieaOVxYqnwVz41281AK4Yox001nSy0/V+iQ1GnH9ilamla1SaTjoIRHy4y4yl1I5c14wJw21BWAe3H0rPcndtTEfMBcjPXakUahJRbGQVdJ31vu+22uQGSJS9xI/AGPR7b3F2IPvmK3cAAACBAJs7IjCKoCRbZ6Lri+k495y3/1B6JC4OHIur7Kq9bGNOJ7hpL7mr7h/xkuKogXcLIqkH6onWJd4tiAyhiFM7coBhRwZPTmu0L2+dyh5MgYNkeNCyHyLRUfCPOOjeB6rCfkfppcKIEK6GPLYzxksYhsmqN5P6YPXiw4YXAIBSHpkm root@Master
      ssh-dss AAAAB3NzaC1kc3MAAACBAPMsgWaBMQjB3WtFjeIvuJE7qPkB+JL+XPxAvXV2wbTEbXVq0/KBmdDrSXoTG/CfQkxUQVJYoS0UdG69IknfTHSQAt27uYvg0Nj85zh7WIMgACZ8FXDWUOo/K+YKCio/btLMM1x3s87NnL6QW53WKzOb6yy8FEqf4Ih+PzzJrZcHAAAAFQDuhNaDKmfw9nI+XpJJbcB8wdmRTwAAAIEA3yIthtT1ZPEMNsAaYbOE3U9OnVT4rcWjFDRInUeO3Vvx6WD5AkKx8THUhtGSZmUzCawmUFgTdoe5y9g20vdekYODq/cF5vgdzUQ6SnA5kpg9DDuv2hSFpK+HRvOOXOHDPSw0zHPPAsojGCKk81mFNjXR4I3dsHVv3vHCAAxkWogAAACATQdRcfkJCbcVtdUSUd6pGlzPwFNh4/crG64R9zYSry1jWLxzIHT8RPZGBLSsaSHN+FPnT7MYSkPitfbXJg6KPxt8mw0moqKUTom7S/Gs6w4V2m77bn5bDQD0w1Baf0whPipTo0SFfICen4r7vQlokyI9toPLxi+/aSXWSn4Kd3k= root@Slave1
      ssh-dss AAAAB3NzaC1kc3MAAACBALQSi4kCV1/zuXvBzo2L5FmvCfmHpS4BD49CsCMhalXjU1NS2H3WCeFWHBfLzdFl4utzjLht6/rn08ynscW5XfFV1RFtV1Ai/qGb1ETIKw4crzvBnnmg2+/YjXdZ5pA64xZB2Ldyq48N8izBgY4NupsXhYa/p51b7xZyf0XosfYvAAAAFQCQzCkmfY2u+1br8xv8QYQBa653qQAAAIEApGko/kgHHEAHCxH1iljJ0p6VyInoyRMVPcnOT8YLjsTiS8c+8dyqfpFXCl1CE8ysKDkCU3RMnLeWRzgEuhbKwVn6aCOb7RZppevlYiKgov2z4a7tVfGEfA4knrSoOfqU1+p0WHQikcXbM6M5MoxRfRu/VR3/eQ3ErO/KHms2UM4AAACBAKTps94dsj476Rlhcv75gUUfgbMTCqEW4mfCMFJKIWL09DNFENG9VEQ1zkH+qACF3If6QBJflu6l+3eg9JlfOIuQMUJkpoNJm/aLTVb5c419cJkh5v6fQ11aKajO3dY89ctYTDauo8L2OVSURatyz44yvoEZeTsD0uiTu1x24Ylw root@Slave2
      
    3. 远程拷贝至其他两服务器中。使用命令scp local_file remote_username@remote_ip:remote_folderauthorized_keys以及配置好的/etc/hosts文件发送到其他三台服务器中去。[2]

  7. 安装Hadoop。

    1. Apache Hadoop官网下载Hadoop二进制安装包。并传输至Linux服务器上,这里就传输至Master服务器上(192.168.0.20)。

      下载Hadoop

    2. 解压缩Hadoop安装包。

      ## 当前目录为/home/download下
      $ ls -al
      -rw-r--r--. 1 root root    366447449 5月  11 16:35 hadoop-2.9.2.tar.gz
      -rw-r--r--. 1 root root    195132576 4月  21 13:21 jdk-8u251-linux-x64.tar.gz
      -rw-r--r--. 1 root root    403607456 5月   7 18:13 mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz
      -rw-r--r--. 1 root root      1039530 5月   7 22:16 nginx-1.18.0.tar.gz
      
      ## 解压缩hadoop-2.9.2.tar.gz
      $ tar -zxf hadoop-2.9.2.tar.gz
      
      ## 查看当前目录内容
      $ ls -al
      drwxr-xr-x. 9  501 dialout       149 11月 13 2018 hadoop-2.9.2
      -rw-r--r--. 1 root root    366447449 5月  11 16:35 hadoop-2.9.2.tar.gz
      -rw-r--r--. 1 root root    195132576 4月  21 13:21 jdk-8u251-linux-x64.tar.gz
      -rw-r--r--. 1 root root    403607456 5月   7 18:13 mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz
      -rw-r--r--. 1 root root      1039530 5月   7 22:16 nginx-1.18.0.tar.gz
      
    3. /opt目录下创建hadoop目录,并将解压的/home/download/hadoop-2.9.2移动至/opt/hadoop下。

    4. 配置hadoop的环境变量,编辑/etc/profile文件。添加变量HADOOP_HOME=/opt/hadoop/hadoop-2.9.2

    5. 并在PATH变量中追加PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin(这里需要注意,添加了两个环境变量。一个是:$HADOOP_HOME/bin,另一个是$HADOOP_HOME/sbin),并更新环境变量设置source /etc/profile文件。

      # Hadoop环境变量
      export HADOOP_HOME=/opt/hadoop/hadoop-2.9.2
      
      export PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      
    6. 生效后输入命令hadoop测试下,是否配置正确。出现如下信息即可代表配置正确了。

      $ hadoop
      
      Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
        CLASSNAME            run the class named CLASSNAME
       or
        where COMMAND is one of:
        fs                   run a generic filesystem user client
        version              print the version
        jar <jar>            run a jar file
                             note: please use "yarn jar" to launch
                                   YARN applications, not this command.
        checknative [-a|-h]  check native hadoop and compression libraries availability
        distcp <srcurl> <desturl> copy file or directories recursively
        archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
        classpath            prints the class path needed to get the
                             Hadoop jar and the required libraries
        credential           interact with credential providers
        daemonlog            get/set the log level for each daemon
        trace                view and modify Hadoop tracing settings
      
      Most commands print help when invoked w/o parameters.
      
    7. 将环境变量环境传输给其他两台服务器(Slave1以及Slave2)。(同样使用scp命令即可,到时候切换至Slave1以及Slave2时更新下profile文件即可。)

      $ scp /etc/profile root@c2:/etc
      profile                 100% 2238     5.1MB/s   00:00    
      $ scp /etc/profile root@c3:/etc
      profile                 100% 2238     5.4MB/s   00:00 
      
  8. 配置Hadoop。

    1. 在hadoop根目录下创建三个目录,目录名称如下所示:

      • temp:临时目录
      • hdfs/name:namenode目录,用于存放数据
      • hdfs/data:datanode目录,也是用于存放数据
      $ ls -al
      
      drwxr-xr-x.  2  501 dialout    194 11月 13 2018 bin
      drwxr-xr-x.  3  501 dialout     20 11月 13 2018 etc
      drwxr-xr-x.  4 root root        30 5月  11 21:03 hdfs           ## 用于存放hdfs文件系统数据
      drwxr-xr-x.  2  501 dialout    106 11月 13 2018 include
      drwxr-xr-x.  3  501 dialout     20 11月 13 2018 lib
      drwxr-xr-x.  2  501 dialout    239 11月 13 2018 libexec
      -rw-r--r--.  1  501 dialout 106210 11月 13 2018 LICENSE.txt
      -rw-r--r--.  1  501 dialout  15917 11月 13 2018 NOTICE.txt
      -rw-r--r--.  1  501 dialout   1366 11月 13 2018 README.txt
      drwxr-xr-x.  3  501 dialout   4096 11月 13 2018 sbin
      drwxr-xr-x.  4  501 dialout     31 11月 13 2018 share
      drwxr-xr-x.  2 root root         6 5月  11 21:02 temp           ## 临时目录
      
    2. 找到hadoop根目录目录下的配置目录/opt/hadoop/hadoop-2.9.2/etc/hadoop/opt/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml.template将其创建一个副本文件/opt/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml,并需要将找到下面的配置文件做相应的修改。:

      1. /opt/hadoop/hadoop-2.9.2/etc/hadoop/core-site.xml是Hadoop的核心配置文件,该配置文件主要提供Hadoop对外的访问能力,修改内容如下(增加外部访问的地址、配置临时目录):

        <!-- Put site-specific property overrides in this file. -->
        <configuration>
            <!-- 默认访问HDFS地址 -->
            <property>
                <name>fs.default.name</name>
                <value>hdfs://c1:9000</value> 
                <description>对外访问路径</description> 
            </property>
            <!-- 默认访问HDFS地址 -->
            <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoop/hadoop-2.9.2/temp</value> 
                <description>临时文件夹</description> 
            </property>
        </configuration>
        

        配置属性说明如下:

        属性 说明
        fs.default.name hdfs://c1:9000 HDFS的默认访问URI,对外访问地址,一定填写的是主机,而不是从机地址
        hadoop.tmp.dir /opt/hadoop/hadoop-2.9.2/temp 临时文件夹,即上一步安装过程中创建的/opt/hadoop/hadoop-2.9.2/temp
      2. /opt/hadoop/hadoop-2.9.2/etc/hadoop/hadoop-env.sh,找到脚本export JAVA_HOME=${JAVA_HOME}中,将其修改为当前环境变量中的信息export JAVA_HOME=/usr/local/Java/jdk1.8.0_251/bin/java,如下所示:

        # The java implementation to use.
        ## 你可以将原来模板中的JAVA_HOME注释掉。
        # export JAVA_HOME=${JAVA_HOME}
        export JAVA_HOME=/usr/local/Java/jdk1.8.0_251
        
      3. /opt/hadoop/hadoop-2.9.2/etc/hadoop/hdfs-site.xml,主要namenode信息。配置内容如下表:

        属性 说明
        dfs.name.dir /opt/hadoop/hadoop-2.9.2/hdfs/name namenode元数据
        dfs.data.dir /opt/hadoop/hadoop-2.9.2/hdfs/data datanode物理存储位置
        dfs.replication 3 副本个数,根据主从服务器数量合理配置。数据备份数量。如果是伪分布式
        可以只用备份数量1。备份数量不要大于节点数量。

        配置的格式与core-site.xml类似,如下所示:

        <!-- Put site-specific property overrides in this file. -->
        
        <configuration>
          <!-- namenode元数据 --> 
          <property>
              <name>dfs.name.dir</name>
              <value>/opt/hadoop/hadoop-2.9.2/hdfs/name</value> 
              <description>namenode元数据</description> 
          </property>
          <!-- datanode物理存储位置 -->
          <property>
              <name>dfs.name.dir</name>
              <value>/opt/hadoop/hadoop-2.9.2/hdfs/data</value> 
              <description>datanode物理存储位置</description> 
          </property>
          <!-- 数据副本个数,根据主从服务器数量合理配置。 -->
          <property>
              <name>dfs.replication</name>
              <value>3</value> 
              <description>数据副本个数,根据主从服务器数量合理配置。</description> 
          </property>
        </configuration>
        
      4. /opt/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml,实际上配置的是yarn。告诉hadoop需要启动yarn。配置属性如下表:

        属性 说明
        mapreduce.framework.name yarn 整合yarn
        mapreduce.jobhistory.address c1:10020 任务历史
        mapreduce.jobhistory.webapp.address c1:19888 任务历史web端

        可先简单配置如下:

        <!-- Put site-specific property overrides in this file. -->
        
        <configuration>
          <!-- 整合yarn -->
          <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
          </property>
        </configuration>
        
      5. /opt/hadoop/hadoop-2.9.2/etc/hadoop/slaves,如果搭建伪分布式,则可以不用管该文件,如果是搭建全分布式(需要三台服务器),则需要将该文件修改为下面的形式。c1c2以及c3分别对应上面/etc/hosts中所配置的解析IP地址。

        c1
        c2
        c3
        
      6. /opt/hadoop/hadoop-2.9.2/etc/hadoop/yarn-env.sh,同修改/opt/hadoop/hadoop-2.9.2/etc/hadoop/hadoop-env.sh类似,将# export JAVA_HOME=/home/y/libexec/jdk1.6.0/将模板中语句改为export JAVA_HOME=/usr/local/Java/jdk1.8.0_251/即可,如下所示:

        # some Java parameters
        # export JAVA_HOME=/home/y/libexec/jdk1.6.0/
        export JAVA_HOME=/usr/local/Java/jdk1.8.0_251/
        
      7. /opt/hadoop/hadoop-2.9.2/etc/hadoop/yarn-site.xml,启动shuffle管理节点,配置的属性如下表:

        属性 说明
        yarn.nodemanager.aux-services mapreduce_shuffle 启动shuffle
        yarn.resourcemanager.webapp.address c1:8099 yarn的web监视端口(可选配置)

        具体配置如下:

        <!-- Put site-specific property overrides in this file. -->
        
        <configuration>
            <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value> 
                <description>启动shuffle,管理节点信息</description> 
            </property>
            <!-- 需要避开刚刚配置core-site.xml中的端口 -->
            <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>c1:8099</value> 
                <description>yarn的web监视端口(可选配置)</description> 
            </property>
        </configuration>
        

        <font style="color:red;font-weight:bolder">需要避开刚刚配置core-site.xml中的端口</font>

  9. 将Master中已经配置好的hadoop包分别拷贝至c2以及c3服务器(Slave1以及Slave2)中,仍然使用scp命令,分别执行下面两条命令即可。

    $ scp -r ./hadoop root@c2 /opt/
    $ scp -r ./hadoop root@c3 /opt/
    
  10. 在c2以及c3服务器中分别执行source /etc/profile,即,上面第七步中从c1(Master)中所传输过去的/etc/profile环境变量配置文件。分别验证下,环境是否正确。

    ## 输入hadoop命令,是否会出现下面的信息
    $ hadoop
    
    Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
          CLASSNAME            run the class named CLASSNAME
         or
          where COMMAND is one of:
          fs                   run a generic filesystem user client
          version              print the version
          jar <jar>            run a jar file
                               note: please use "yarn jar" to launch
                                     YARN applications, not this command.
          checknative [-a|-h]  check native hadoop and compression libraries availability
          distcp <srcurl> <desturl> copy file or directories recursively
          archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
          classpath            prints the class path needed to get the
                               Hadoop jar and the required libraries
          credential           interact with credential providers
          daemonlog            get/set the log level for each daemon
          trace                view and modify Hadoop tracing settings
        
        Most commands print help when invoked w/o parameters.
    
  11. 格式化hadoop的hdfs文件管理。需要使用到/opt/hadoop/hadoop-2.9.2/bin/下的hdfs命令(另外两台c2以及c3则不用格式话,格式化的只有主机服务器c1——Master)。执行下面的命令

    $ /opt/hadoop/hadoop-2.9.2/bin/hdfs namenode -format
    
    ......
    ## 当看到有successfully格式化成功时,
    20/05/11 22:35:33 INFO common.Storage: Storage directory /opt/hadoop/hadoop-2.9.2/hdfs/data has been successfully formatted.
    20/05/11 22:35:33 INFO namenode.FSImageFormatProtobuf: Saving image file /opt/hadoop/hadoop-2.9.2/hdfs/data/current/fsimage.ckpt_0000000000000000000 using no compression
    20/05/11 22:35:33 INFO namenode.FSImageFormatProtobuf: Image file /opt/hadoop/hadoop-2.9.2/hdfs/data/current/fsimage.ckpt_0000000000000000000 of size 322 bytes saved in 0 seconds .
    20/05/11 22:35:33 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
    20/05/11 22:35:33 INFO namenode.NameNode: SHUTDOWN_MSG: 
    /************************************************************
    SHUTDOWN_MSG: Shutting down NameNode at c1/192.168.0.20
    ************************************************************/
    
  12. 启动hadoop,进入/opt/hadoop/hadoop-2.9.2/sbin/,找下面两个命令脚本start-dfs.sh以及start-yarn.sh——实际就是启动MapReduce——start-dfs.sh,Hadoop必须首先启动HDFS,然后在启动MapReduce——start-yarn.sh。下面还有一个start-all.sh脚本。

    -rwxr-xr-x.  1 501 dialout 2752 11月 13 2018 distribute-exclude.sh
    drwxr-xr-x.  4 501 dialout   36 11月 13 2018 FederationStateStore
    -rwxr-xr-x.  1 501 dialout 6477 11月 13 2018 hadoop-daemon.sh
    -rwxr-xr-x.  1 501 dialout 1360 11月 13 2018 hadoop-daemons.sh
    -rwxr-xr-x.  1 501 dialout 1640 11月 13 2018 hdfs-config.cmd
    -rwxr-xr-x.  1 501 dialout 1427 11月 13 2018 hdfs-config.sh
    -rwxr-xr-x.  1 501 dialout 3148 11月 13 2018 httpfs.sh
    -rwxr-xr-x.  1 501 dialout 3677 11月 13 2018 kms.sh
    -rwxr-xr-x.  1 501 dialout 4134 11月 13 2018 mr-jobhistory-daemon.sh
    -rwxr-xr-x.  1 501 dialout 1648 11月 13 2018 refresh-namenodes.sh
    -rwxr-xr-x.  1 501 dialout 2145 11月 13 2018 slaves.sh
    -rwxr-xr-x.  1 501 dialout 1779 11月 13 2018 start-all.cmd
    -rwxr-xr-x.  1 501 dialout 1471 11月 13 2018 start-all.sh
    -rwxr-xr-x.  1 501 dialout 1128 11月 13 2018 start-balancer.sh
    -rwxr-xr-x.  1 501 dialout 1401 11月 13 2018 start-dfs.cmd
    -rwxr-xr-x.  1 501 dialout 3734 11月 13 2018 start-dfs.sh
    -rwxr-xr-x.  1 501 dialout 1357 11月 13 2018 start-secure-dns.sh
    -rwxr-xr-x.  1 501 dialout 1571 11月 13 2018 start-yarn.cmd
    -rwxr-xr-x.  1 501 dialout 1347 11月 13 2018 start-yarn.sh
    -rwxr-xr-x.  1 501 dialout 1770 11月 13 2018 stop-all.cmd
    -rwxr-xr-x.  1 501 dialout 1462 11月 13 2018 stop-all.sh
    -rwxr-xr-x.  1 501 dialout 1179 11月 13 2018 stop-balancer.sh
    -rwxr-xr-x.  1 501 dialout 1455 11月 13 2018 stop-dfs.cmd
    -rwxr-xr-x.  1 501 dialout 3206 11月 13 2018 stop-dfs.sh
    -rwxr-xr-x.  1 501 dialout 1340 11月 13 2018 stop-secure-dns.sh
    -rwxr-xr-x.  1 501 dialout 1642 11月 13 2018 stop-yarn.cmd
    -rwxr-xr-x.  1 501 dialout 1340 11月 13 2018 stop-yarn.sh
    -rwxr-xr-x.  1 501 dialout 4295 11月 13 2018 yarn-daemon.sh
    -rwxr-xr-x.  1 501 dialout 1353 11月 13 2018 yarn-daemons.sh
    

    启动HDFS——start-dfs.sh成功后,可以通过刚刚配置的http://192.168.0.20:50070/查看HDFS情况。该Web页面主要查看数据节点硬盘使用情况。

    HDFS监控平台

    启动MapReduce成功后,可以通过yarn-site.xml中配置的管理节点信息的c1:8099中查看启动情况。该web平台主要监控yarn的使用情况。

    yarn监控平台

    看到这两个页面,至少说明了yarn以及hdfs启动成功。

<font style="font-weight:bolder;color:green">
下面提供三个常用web地址以及端口,当然主要还是看如何配置的。:

  1. HDFS监控端口,即 {主机IP地址}:50070
  2. YARN监控端口,即 {主机IP地址}:8099
  3. HDFS访问端口,即 {主机IP地址}:9000

</font>

HDFS Shell 操作

基本和Linux Shell 操作一致。可参见《官方文档——命令手册》,此处不在一一列举。

  1. 目录操作 hadoop fs -ls /;
  2. 创建文件操作 hadoop fs -mkdir /input
  3. 上传文件 hadoop fs -put /etc/hosts /input
  4. 下载文件操作 hadoop fs -get /input/hosts ./下载到当前目录。
  5. 删除文件操作 hadoop fs -rmr /out 删除目录。如果版本比较新的话。将出现下面的提示信息。
    $ hadoop fs -rmr /input/profile
    
    # rmr已经过期,请使用 -rm -r 代替。
    rmr: DEPRECATED: Please use '-rm -r' instead.
    Deleted /input/profile
    

下面演示上面几条命令

## 创建目录
$ hadoop fs -mkdir /input
$ hadoop fs -mkdir /out

## 上传文件
$ hadoop fs -put /etc/profile /input

## 查看文件列表
$ hadoop fs -ls /
Found 2 items
drwxr-xr-x   - root supergroup          0 2020-05-11 23:11 /input
drwxr-xr-x   - root supergroup          0 2020-05-11 23:10 /out
$ hadoop fs -ls /input
Found 1 items
-rw-r--r--   3 root supergroup       2238 2020-05-11 23:11 /input/profile

## 删除文件
$ hadoop fs -rmr /input/profile

rmr: DEPRECATED: Please use '-rm -r' instead.
Deleted /input/profile

【注意事项】:

  1. HDFS的Shell操作没有目录切换操作。
  2. 进行操作时,一般都需要全路径操作。

  1. 《大数据》

  2. 关于scp命令如何使用,可参见有道笔记中关于《Linux》中的第三章内容《liunx常用命令(三)》。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351