美文网首页大数据
大数据 Hadoop(一)概念与搭建环境

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

作者: 傅二毛 | 来源:发表于2020-05-11 23:51 被阅读0次

    大数据 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常用命令(三)》。

    相关文章

      网友评论

        本文标题:大数据 Hadoop(一)概念与搭建环境

        本文链接:https://www.haomeiwen.com/subject/wtbmnhtx.html