hadoop

7 篇文章 0 订阅
4 篇文章 0 订阅

1)hadoop介绍

Hadoop是一个生态圈,由Apache基金会提供,是一个分布式处理系统,可以解决海量数据存储和计算分析问题

2)Hadoop优势

1)高可靠性:数据非常重要,数据在存储或者计算过程中出现问题之后可以还原再次处理。

2)高扩展性:节点的上线或者下线不影响集群的正常使用

3)高效性:处理数据的速度很快

4)高容错性:数据存到Hadoop中后有备份,多个节点发生故障容错容灾,是必要的的,Hadoop给备份进行数据维护。

3)Hadoop组成

我们使用Hadoop主要进行数据的离线处理分析,Hadoop两个重要的功能,存储数据和计算分析数据。

(1).HDFS:分布式文件存储数据

(2).MapReduce:分布式数据分析计算系统

(3).YARN:Hadoop资源调度系统,管理Hadoop工作运行(Hadoop2.X之后引入)

(4).Common:辅助Hadoop运行

1.HDFS

        Namenode(nn)

        Datanode(dn)

        Secondary Namenode(2nn)

2.YARN

        Nodemanager

        Resourcemanager

3.MapReduce

         Map:分布式并行计算

         Reduce:汇总每个map阶段的结果

4)Hadoop安装

(1).准备工作

          准备好一台虚拟机,修改静态ip,关闭防火墙,修改ip映射,安装JDK并且配置环境变量

(2)安装hadoop

            1.上传

                    将hadoop的安装包上传到/usr/local目录下(使用Xshall6进行上传)

          

        2.解压

                   运行命令:cd /usr/local

                   运行命令:tar -zxvf hadoop-2.7.3.tar.gz

          目录结构:

                    bin:操作hadoop集群命令

                    sbin:启动关闭hadoop集群命令

                    etc:hadoop的配置文件存放目录

                    libhadoop运行时的依赖包

                    sharehadoop案例存放位置                  

                               Include:不重要

                               libexec:不重要

(3).配置环境变量

            编辑/etc/profile文件

            vi /etc/profile

JAVA_HOME=/usr/local/jdk1.8

HADOOP_HOME=/usr/local/hadoop-2.7.3

CLASSPATH=$JAVA_HOME/lib/

PATH=$PATH:$JAVA_HOME/bin/:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export PATH JAVA_HOME CLASSPATH HADOOP_HOME

          只需要将红色部门添加即可

(4).重新加载/etc/profile文件

          运行命令:source /etc/profile

(5).测试

           运行命令:hadoop version

           这个时候hadoop已经成功的安装了

5)Hadoop运行模式

         (1)本地模式

                   不需要任何配置就可以启动,该模式在学习和测试中使用,计算文件和计算过程都在本地完成

         (2).伪分布式

                     跟完全分布式类似,但是只有一个节点

        (3).完全分布式

                     多节点协同工作,实际生产过程中使用完全分布式

6)本地模式

         grep案例

                    概述:通过正则表达式找目标文件中匹配的数据,并将匹配的数据放到一个新文件中

         (1)将文件上传到linux上(这里怎么上传我就在不逼逼了)

                     在hadoop目录中创建input目录

                     将计算文件上传到input目录下

          (2) 使用grep案例

                     案例位置:/usr/local/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar

                                计算:hadoop  jar  hadoop-mapreduce-examples-2.7.3.jar   grep  /usr/local/hadoop-2.7.3/input/greptest.txt  

                                           /usr/local/hadoop-2.7.3/output     'zhi[a-z.]+'

                                          hadoop  :是运行hadoop的命令

                                           jar  :说明运行的文件是jar包文件

                                           hadoop-mapreduce-examples-2.7.3.jar   :要运行的jar包

                                           grep:linux中的命令

                                           /usr/local/hadoop-2.7.3/input/greptest.txt   :要计算的文件

                                           /usr/local/hadoop-2.7.3/output:计算完成后将计算结果存储的位置,注意,这个文件夹不能存在

                                          'zhi[a-z.]+':要匹配的规则正则表达式

              wordcount案例

                         统计一样单词出现的次数

                        命令:hadoop   jar   /usr/local/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-

                                    2.7.3.jar      wordcount     /usr/local/hadoop-2.7.3/input/wctest.txt      /usr/local/hadoop-

                                    2.7.3/wcoutput/

                        注意:结果输出目录不能存在

                                   输入路径是一个目录那么会计算该目录下所有的文件

                                   如果目录下的文件类型多种多样txt,jpg,png,mp4(数据清洗)

7)伪分布式,运行在HDFS上

(1) 特点: 跟完全分布式是一样的,只不过只有一台节点,我们需要将数据上传到HDFS上分布式存储,从HDFS上获取数据使用MapReduce进行分布式计算

(2)配置:伪分布式运行在HDFS上

        1.配置hadoop-env.sh文件         

                        只需要配置JAVA_HOME即可,第25行

                        export JAVA_HOME=/usr/local/jdk1.8.0_181

        2. 配置 core-site.xml

<!-- 指定HDFS中NameNode的地址 -->

<property>

        <name>fs.defaultFS</name>

        <value>hdfs://zhiyou101:9000</value>

</property>

 

<!-- 指定hadoop运行时产生文件的存储目录 -->

<property>

        <name>hadoop.tmp.dir</name>

        <value>/var/hadoop-2.7.3/data/tmp</value>

</property>

3.配置hdfs-site.xml文件

<!-- 指定HDFS副本的数量,默认是3,因为我们是伪分布式只有一台计算机,设置副本数为1 -->

         <property>

                  <name>dfs.replication</name>

                  <value>1</value>

         </property>

 

(3)启动hadoop集群

            1.格式化namenode

                      仅第一次启动时格式化,之后就不要格式化

                      运行命令:hadoop namenode -format

                      格式化之后,在core-site.xml文件中配置的hadoop运行时目录就已经创建,里边就保存了namenode的信息

              2.启动namenode

                      [root@zhiyou101 sbin]# ./hadoop-daemon.sh start namenode

               3.启动datanode

                      [root@zhiyou101 sbin]# ./hadoop-daemon.sh start datanode

   (4) 查看启动结果

            1.终端查看

 

            2.浏览器查看

(5)HDFS文件系统

                    HDFS文件系统与Linux文件系统类似,根目录都是/,里边的目录都是我们自定义的,

                    真正的文件还是存放在磁盘上的

                Namenode/var/hadoop-2.7.3/data/tmp/dfs/name

                Datanode/var/hadoop-2.7.3/data/tmp/dfs/data

(6)关闭     

                [root@zhiyou101 /]# hadoop-daemon.sh stop datanode

                [root@zhiyou101 /]# hadoop-daemon.sh stop namenode

 

8)伪分布式运行在YARN上

(1)配置

      1.配置yarn-env.sh文          

                           配置JAVA_HOME

                           export JAVA_HOME=/usr/local/jdk1.8.0_181

       2.配置yarn-site.xml文件

<!-- reducer获取数据的方式 -->

<property>

 <name>yarn.nodemanager.aux-services</name>

 <value>mapreduce_shuffle</value>

</property>

<!-- 指定YARN的ResourceManager的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>zhiyou101</value>

</property>

        3.配置mapred-env.sh文件

               配置JAVA_HOME

               export JAVA_HOME=/usr/local/jdk1.8.0_181

        4.配置mapred-site.xml文件         

                              该文件是没有的,重命名

                              [root@zhiyou101 hadoop]# cp mapred-site.xml.template mapred-site.xml

<!-- 指定mr运行在yarn上 -->

         <property>

                  <name>mapreduce.framework.name</name>

                  <value>yarn</value>

</property>

(2)启动

          1.先启动hdfs

          2.启动nodemanager

                      [root@zhiyou101 hadoop]# yarn-daemon.sh start nodemanager

          3.启动resourcemanager

                    [root@zhiyou101 hadoop]# yarn-daemon.sh start resourcemanager

           4.一键启动yarn

                    start-yarn.sh

(3)停止

          [root@zhiyou101 hadoop]# yarn-daemon.sh stop nodemanager

           [root@zhiyou101 hadoop]# yarn-daemon.sh stop resourcemanager

           stop-yarn.sh

(4)查看yarn

          1.使用jps命令

          2.浏览器查看

               http://zhiyou101:8088

9)操作hdfs

                     (1)创建目录

                              [root@zhiyou101 /]# hdfs dfs -mkdir -p /usr/input

                            

                      (2)上传文件

                              [root@zhiyou101 input]# hdfs dfs -put wctest.txt /usr/input

                               hdfs上存储的路径

                            

                           实际在磁盘上存储的位置

                            /var/hadoop-2.7.3/data/tmp/dfs/data/current/BP-1865685381-192.168.163.101-1554123196289/current    

                            /finalized/subdir0/subdir0

                        (3)计算文件

                                  hadoop jar /usr/local/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-

                                  2.7.3.jar grep /usr/input/greptest.txt /usr/grepoutput 'zhi[a-z.]+'

                        

                      (4)下载文件

                               [root@zhiyou101 hadoop-2.7.3]# hdfs dfs -get /usr/output/part-r-00000 目标目录

                       (5)查看文件

                              [root@zhiyou101 hadoop-2.7.3]# hdfs dfs -cat /usr/output/part-r-00000

 

10)历史任务

(1)目的

       可以看到YARN上执行过的所有任务

(2)配置

         修改mapred-site.xml

<!--添加历史服务-->

<property>

<name>mapreduce.jobhistory.address</name>

<value>zhiyou101:10020</value>

</property>

<!--web网页访问配置-->

<property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>zhiyou101:19888</value>

</property>

(3)启动历史服务

            [root@zhiyou101 sbin]# ./mr-jobhistory-daemon.sh start historyserver

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阁下大名

您的鼓励就是我前进的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值