Hadoop知识点总结

一:大数据概述

    一、大数据简介

       1. 概念:指无法在一定时间范围内使用常规软件工具进项捕捉、管理和处理数据集合,需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。

       2. 作用:解决海量数据的存储和海量数据的分析计算问题。

       3. 大数据与云计算的关系:大数据必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术,有效地处理大量的容忍经过时间内的数据。

           Hadoop知识点总结_第1张图片

 

    二、大数据特征

       1. Volume(容量大):数据的大小决定所考虑的数据的价值和潜在的信息。

       2. Velocity(速度快):获得并处理数据的效率。是区分传统数据挖掘最显著特征。

       3. Variety(多样性):数据类型的多样性。以数据库/文本的结构化数据和以网络日志,图片,音频、视频等为主的非结构化数据。

       4. Value(价值):合理运用大数据,以低成本创造高价值。

       5. Variability(可变性):妨碍了处理和有效地管理数据的过程。

       6. Veracity(真实性):数据的质量。

       7. Complexity复杂性):数据量巨大,来源多渠道。

 

    三、大数据应用场景

       1. 物流仓储:大数据分析系统助力商家精细化运营,提升销量,节约成本。

       2. 零售及商品推荐:分析用户消费习惯,给用户推荐可能喜欢的商品,为用户购买商品提供方便。

       3. 旅游:深度结合大数据能力和旅游行业需求,共建旅游产业智慧管理、智慧服务和智慧营销的未来。

       4. 保险:海量数据挖掘及风险预测,助力保险行业精准直销,提升精细化定价能力。

       5. 金融:多维度体现用户特征,助力金融机构推荐优质用户,防范欺诈风险。

       6. 房地产:大数据全面助力房地产行业,打造精准投资与营销,选出更合适的地,建更合适的楼,卖更合适的用户。

       7. 人工智能:深度结合大数据能力及人工智能,提供数据资源。

 

    四、大数据部门组织结构

        Hadoop知识点总结_第2张图片

 

二:Hadoop 概述

    一、Hadoop 简介

       1. 概念:Hadoop 是由 Apache 基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。

       2. 作用:解决海量数据的存储和海量数据的分析计算问题。

       3. 优点

           1. 高可靠性:Hadoop 能自动维护数据的多份复制,并且在任务失败后能自动地重新部署(redeploy)计算任务。

           2. 高扩展性:Hadoop 在可用的计算机集群间分配数据并完成计算任务的,这些集群可用方便的扩展到数以千计个节点中。

           3. 高效性:Hadoop 可以在节点之间动态并行的移动数据,使得速度非常快。

           4. 成本低:Hadoop 通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低。

 

       3. 发展历程

           1. Hadoop 起源于 Apache Nutch 项目,始于2002年,是 Apache Lucene的子项目之一。Nutch 的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。

           2. 2003年、2004年,Google 发表的"分布式文件系统(GFS):可用于处理海量网页的存储 " 和 “分布式计算框架(MapReduce):可用于处理海量网页的索引计算问题” 两篇论文为该问题提供了可行的解决方案。

           3. 由于 NDFS 和 MapReduce 在 Nutch 引擎中有着良好的应用,所以它们于2006年2月被分离出来,成为一套完整而独立的软件,并被命名为Hadoop(大数据生态圈,包含很多软件)。

           4. 到了2008年年初,Hadoop 已成为 Apache的顶级项目,包含众多子项目,被应用到包括Yahoo在内的很多互联网公司

 

       4. 三大发行版本

           1. Apache Hadoop:免费开源,拥有全世界的开源贡献者,代码更新迭代版本比较快,但难以维护,适合学习使用。

               1. 官网地址:http://hadoop.apache.org/releases.html

               2. 下载地址:https://archive.apache.org/dist/hadoop/common/

 

           2. Cloudera Hadoop:版本兼容性更好,适用于互联网企业。

               1. 官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html

               2. 下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/

 

           3. Hortonworks Hadoop:核心免费开源产品软件HDP(ambari),提供一整套的web管理界面来管理集群。

               1. 官网地址:https://hortonworks.com/products/data-center/hdp/

               2. 下载地址:https://hortonworks.com/downloads/#data-platform

 

    二、Hadoop 核心架构

       1. 历史版本及组成

           Hadoop知识点总结_第3张图片

 

       2. HDFS(Hadoop Distributed File System  分布式文件系统) 架构概述

           Hadoop知识点总结_第4张图片

           1. NameNode:管理集群当中的各种元数据,如文件名,文件属性(生成时间,副本数等)以及每个文件的块列表和块所在的DataNode等。

           2. DataNode:存储集群中的各种块数据到本地文件系统并校验块数据。

           3. Secondary NameNode:监控HDFS状态的辅助后台后台程序,每个一段时间获取HDFS元数据快照。

 

       3. Yarn(Yet Another Resource Negotiator   资源管理调度系统) 架构概述

           Hadoop知识点总结_第5张图片

 

       4. MapReduce(分布式运算框架) 架构概述

           Hadoop知识点总结_第6张图片

 

    三、Hadoop 生态圈

        Hadoop知识点总结_第7张图片

        Hadoop知识点总结_第8张图片

       1. HDFS:Hadoop 分布式文件系统(Hadoop Distributed File System),建立在集群之上,适合PB级大量数据的存储,扩展性强,容错性高。

       2. MapReduce:Hadoop 的计算框架,由 Map 和 Reduce 两部分组成,由Map生成计算的任务,分配到各个节点上,Reduce执行计算。

       3. HBase:源自谷歌的 BigTable,是一个分布式的、面向列存储的开源数据库,性能高,可靠性高,扩展性强

       4. Hive:Hadoop 的数据仓库工具,将个结构化的数据文件映射为一张数据库表,通过类 SQL 语句快速实现简单的 MapReduce 统计,十分适合数据仓库统计。

       5. Sqoop:Hadoop 的数据同步工具,将关系型数据库(MySQL、Oracle等)中的数据表和 HDFS 中的文件进性相互导入导出。

       6. Flume:Hadoop 的日志收集工具,一个分布式、可靠的、高可用的海量日志聚合系统,用于日志数据收集、处理和传输。

       7. Zookeeper:Hadoop 的分布式协作服务,主要作用于统一命名、状态同步、集群管理、配置同步,简化分布式应用协调及其管理难度,提供高性能的分布式服务。

       8. Mahout:Hadoop 的机器学习和数据挖掘算法库,实现了大量数据挖掘算法,解决了并行挖掘的问题。

       9. Spark:Hadoop 的内存计算框架,为大规模数据处理而设计的快速通用的计算引擎。

      10. Pig:Hadoop的大规模数据分析工具,类似于Hive,它提供了 Plight 语言将类 SQL 的数据分析请求转化为一系列经过优化的 MapReduce 运算。

      11. Ambari:一种基于Web的工具,支持Hadoop集群的供应、管理和监控等统一部署

 

    四、Hadoop 实际应用

       1. Hadoop+HBase建立NoSQL分布式数据库应用

       2. Flume+Hadoop+Hive建立离线日志分析系统

       3. Flume+Logstash+Kafka+Spark Streaming进行实时日志处理分析

       4. 在线旅游、移动数据、电子商务、IT安全、医疗保健、图像处理等

           Hadoop知识点总结_第9张图片

 

三:Hadoop 安装部署(3.1.3版本)

    一、伪分布式模式(单节点)

       1. 安装并配置 JDK 及 Hadoop

 1 # 安装并配置 JDK
 2 [root@master ~]# tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/
 3 ......
 4 [root@master ~]# vi /etc/profile 
 5 # JAVA_HOME
 6 export JAVA_HOME=/usr/local/jdk1.8.0_251
 7 export PATH=$PATH:$JAVA_HOME/bin
 8 
 9 # 安装并配置 Hadoop
10 [root@master ~]# tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/
11 ......
12 [root@master ~]# vi /etc/profile 
13 # HADOOP_HOME
14 export HADOOP_HOME=/usr/local/hadoop-3.1.3/
15 export PATH=$PATH:$HADOOP_HOME/bin
16 export PATH=$PATH:$HADOOP_HOME/sbin
17 
18 # 生效配置文件并校验
19 [root@master ~]# source /etc/profile
20 [root@master ~]# java -version
21 java version "1.8.0_251"
22 Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
23 Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
24 
25 [root@master ~]# hadoop version
26 Hadoop 3.1.3
27 Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
28 Compiled by ztang on 2019-09-12T02:47Z
29 Compiled with protoc 2.5.0
30 From source with checksum ec785077c385118ac91aadde5ec9799
31 This command was run using /usr/local/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar

 

       2. 部署HDFS(端口:9870)

 1 # 配置集群
 2 ### 配置:hadoop-env.sh
 3 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
 4 export JAVA_HOME=/usr/local/jdk1.8.0_251
 5 
 6 ### 配置:core-site.xml
 7 [root@master ~]# vi +20 /usr/local/hadoop-3.1.3/etc/hadoop/core-site.xml
 8 
 9    
10    
11        fs.defaultFS
12        hdfs://master:9000
13     
14 
15     
16     
17         hadoop.tmp.dir
18         file:/usr/local/hadoop-3.1.3/data/tmp/
19     
20 
21 
22 ### 配置:hdfs-site.xml
23 [root@master ~]# vi +20 /usr/local/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
24 
25     
26     
27          dfs.replication
28          1
29     
30 
31     
32     
33          dfs.namenode.name.dir
34          file:/usr/local/hadoop-3.1.3/tmp/dfs/name
35     
36 
37     
38     
39          dfs.datanode.data.dir
40          file:/usr/local/hadoop-3.1.3/tmp/dfs/data
41     
42 
43 
44 # 启动集群
45 [root@master ~]# hdfs --daemon start namenode
46 [root@master ~]# hdfs --daemon start datanode
47 [root@master ~]# jps
48 11202 NameNode
49 11322 DataNode
50 11646 Jps
51 
52 # 访问集群web界面(3.1.3版本新端口)
53 [root@master ~]# curl http://master:9870
54 
70 "-//W3C//DTD XHTML 1.0 Strict//EN"
71     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
72 "http://www.w3.org/1999/xhtml">
73 
74 "REFRESH" content="0;url=dfshealth.html" />
75 Hadoop Administration
76 
77 

              Hadoop知识点总结_第10张图片

 

       3. 部署YARN(端口:8088)

 1 # 配置
 2 ### 配置:mapred-site.xml(MR)
 3 [root@master ~]# vi +20  /usr/local/hadoop-3.1.3/etc/hadoop/mapred-site.xml
 4 
 5     
 6     
 7         mapreduce.framework.name
 8         yarn
 9     
10 
11     
12     
13         mapreduce.application.classpath
14         $HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*
15     
16 
17 
18 
19 ### 配置:yarn-site.xml 
20 [root@master ~]# vi +16  /usr/local/hadoop-3.1.3/etc/hadoop/yarn-site.xml   
21 
22     
23     
24         yarn.nodemanager.aux-services
25         mapreduce_shuffle
26     
27 
28     
29     
30         yarn.resourcemanager.hostname
31         master
32     
33 
34     
35     
36         yarn.nodemanager.env-whitelist
37         JAVA_HOME,HADOOP_HOME
38     
39 
40 
41 # 启动集群
42 [root@master ~]# yarn --daemon start resourcemanager 
43 [root@master ~]# yarn --daemon start nodemanager 
44 [root@master ~]# jps
45 12691 DataNode
46 20278 Jps
47 20136 NodeManager
48 12585 NameNode
49 19837 ResourceManager
50 
51 # 查看
52 [root@master ~]# curl http://master:8088/cluster
53 ......

             Hadoop知识点总结_第11张图片

 

       4. 配置历史服务器和日志聚集(端口:19888)

 1 # 配置历史服务器
 2 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/mapred-site.xml
 3 
 4     
 5     
 6        mapreduce.jobhistory.address
 7        master:10020
 8     
 9 
10     
11     
12         mapreduce.jobhistory.webapp.address
13         master:19888
14     
15 
16 
17 # 配置日志聚集
18 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/yarn-site.xml
19 
20     
21     
22         yarn.log-aggregation-enable
23         true
24     
25 
26     
27     
28         yarn.log-aggregation.retain-seconds
29         604800
30      
31 
32 
33 # 启动
34 [root@master ~]# yarn --daemon stop resourcemanager
35 [root@master ~]# yarn --daemon stop nodemanager
36 [root@master ~]# yarn --daemon start resourcemanager
37 [root@master ~]# yarn --daemon start nodemanager
38 [root@master ~]# mapred --daemon start historyserver
39 [root@master ~]# jps
40 12691 DataNode
41 20136 NodeManager
42 20824 Jps
43 12585 NameNode
44 20780 JobHistoryServer
45 19837 ResourceManager

 

    二、完全分布式模式(集群)

       1. 配置 xsync 集群分发脚本(关闭防火墙)

 1 # 配置主机地址映射
 2 [root@master ~]# cat /etc/hosts
 3 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 4 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 5 10.0.0.18 master
 6 10.0.0.15 slaver1
 7 10.0.0.16 slaver2
 8 
 9 # 配置 xsync 脚本
10 [root@master ~]# vi /usr/local/bin/xsync
11   #! /bin/bash
12 
13   # 1、获取输入参数个数,如果没有参数,直接退出
14   pcount=$#
15   if((pcount==0)); then
16   echo no args;
17   exit;
18   fi
19 
20   #2、获取文件名称
21   p1=$1
22   fname=`basename $p1`
23   echo fname=$fname
24 
25   # 3、获取上级目录到绝对路径
26   pdir=`cd -P $(dirname $p1); pwd`
27   echo pdir=$pdir
28 
29   # 4、获取当前用户名称
30   user=`whoami`
31 
32   # 5、循环
33   for((host=1; host<5; host++)); do
34     echo ------------------- slaver$host --------------
35     rsync -rvl $pdir/$fname $user@slaver$host:$pdir
36   done
37 
38 # 修改执行权限
39 [root@master ~]# chmod 777 /usr/local/bin/xsync
40 
41 # 使用
42 [root@master ~]# xsync /usr/local/jdk1.8.0_251/
43 [root@master ~]# xsync /usr/local/hadoop-3.1.3/
44 [root@master ~]# xsync /etc/profile

 

       2. 配置无密登录及时钟同步

 1 # 生成公钥和私钥
 2 [root@master ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
 3 Generating public/private dsa key pair.
 4 Your identification has been saved in /root/.ssh/id_dsa.
 5 Your public key has been saved in /root/.ssh/id_dsa.pub.
 6 The key fingerprint is:
 7 0c:7d:46:22:0e:d3:b0:1f:31:32:b6:5d:2a:a7:ff:85 root@master
 8 The key's randomart image is:
 9 +--[ DSA 1024]----+
10 |    Bo+ o .      |
11 |   . X.B o       |
12 |    + B . o      |
13 |     = + o       |
14 |    . . S        |
15 |     .   .       |
16 |      . E .      |
17 |       . .       |
18 |        .        |
19 +-----------------+
20 [root@master ~]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
21 [root@master ~]# chmod 0600 ~/.ssh/authorized_keys
22 
23 # 将公钥拷贝到要免密登录的目标机器
24 [root@master ~]# ssh-copy-id slaver1
25 The authenticity of host 'slaver1 (192.168.200.55)' can't be established.
26 ECDSA key fingerprint is 37:48:34:56:ad:65:08:c1:0b:53:35:ce:fc:4f:c0:3e.
27 Are you sure you want to continue connecting (yes/no)? yes
28 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
29 /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
30 root@slaver1's password:
31 
32 Number of key(s) added: 1
33 
34 Now try logging into the machine, with:   "ssh 'slaver1'"
35 and check to make sure that only the key(s) you wanted were added.
36 
37 # 测试无密登录
38 [root@master ~]# ssh slaver1
39 Last login: Thu Dec 15 14:34:49 2016
40 
41  #########################
42  #  Welcome to XianDian  #
43  #########################
44 
45 [root@slaver1~]#  
46 
47 # 配置 ntp 时钟同步服务器
48 ## 主节点(master)
49 ### 安装 ntp 服务
50 [root@master ~]# yum install -y ntp
51 ...
52 
53 ### 修改ntp 配置文件(删除server和restrict 开头的)
54 [root@master ~]# vi /etc/ntp.conf 
55 server 127.127.1.0
56 fudge 127.127.1.0 stratum 10
57 
58 ## 其他节点进行同步
59 ### 安装同步客户端
60 [root@master ~]# yum install -y ntpdate
61 ### 同步 (-0.xxx以内)
62 [root@slaver1 ~]# ntpdate master
63  3 Jun 11:51:59 ntpdate[1121]: adjust time server 172.16.21.212 offset -0.000439 sec

 

       3. 配置集群

  1 # 配置集群群起:workers(添加从节点)
  2 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/workers
  3 slaver1
  4 slaver2
  5 
  6 # 配置环境变量:hadoop-env.sh
  7 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
  8 export JAVA_HOME=/usr/local/jdk1.8.0_251
  9 export HADOOP_HOME=/usr/local/hadoop-3.1.3
 10 export HDFS_NAMENODE_USER=root
 11 export HDFS_DATANODE_USER=root
 12 export HDFS_SECONDARYNAMENODE_USER=root
 13 export YARN_RESOURCEMANAGER_USER=root
 14 export YARN_NODEMANAGER_USER=root
 15 
 16 # 核心配置文件:core-site.xml (运行环境)
 17 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/core-site.xml
 18 
 19    
 20    
 21        fs.defaultFS
 22        hdfs://master:9000
 23     
 24 
 25     
 26     
 27         hadoop.tmp.dir
 28         /usr/local/hadoop-3.1.3/data/tmp/
 29     
 30 
 31 
 32 # HDFS配置文件:hdfs-site.xml
 33 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
 34 
 35     
 36     
 37          dfs.name.dir
 38          /usr/local/hadoop-3.1.3/data/tmp/dfs/name
 39     
 40 
 41     
 42     
 43          dfs.data.dir
 44          /usr/local/hadoop-3.1.3/data/tmp/dfs/data
 45     
 46 
 47     
 48     
 49         dfs.namenode.http-address
 50         master:50070
 51     
 52 
 53     
 54     
 55         dfs.namenode.secondary.http-address
 56         slaver2:50090
 57     
 58 
 59     
 60     
 61         dfs.replication
 62         3
 63     
 64 
 65     
 66     
 67         dfs.permissions
 68         false
 69         need not permissions
 70     
 71 
 72 
 73 # YARN配置文件:yarn-site.xml
 74 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/yarn-site.xml
 75 
 76     
 77     
 78         yarn.nodemanager.aux-services
 79         mapreduce_shuffle
 80     
 81 
 82     
 83     
 84         yarn.resourcemanager.hostname
 85         master
 86     
 87 
 88     
 89     
 90         yarn.nodemanager.env-whitelist
 91         JAVA_HOME,HADOOP_HOME
 92     
 93 
 94     
 95     
 96         yarn.application.classpath
 97         /usr/local/hadoop-3.1.3/etc/hadoop:/usr/local/hadoop-3.1.3/share/hadoop/common/lib/*:此处省略很之值
 98     
 99 
100 
101 # MapReduce配置文件:mapred-site.xml
102 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/mapred-site.xml
103 
104     
105     
106         mapreduce.framework.name
107         yarn
108     
109 
110     
111     
112         mapreduce.application.classpath
113         $HADOOP_HOME/share/hadoop/mapreduce/*,$HADOOP_HOME/share/hadoop/mapreduce/lib/*
114     
115 
116 
117 # 分发集群配置文件
118 [root@master ~]# xsync /usr/local/hadoop-3.1.3/etc/
119 ......
120 
121 # 启动
122 [root@master ~]# start-all.sh # 一次性启动
123 # [root@master ~]# start-dfs.sh
124 # [root@master ~]# start-yarn.sh # resourcemanager部署节点启动
125 [root@master ~]# jps 
126 6675 ResourceManager
127 7004 NodeManager
128 6127 NameNode
129 6303 DataNode
130 7471 Jps
131 [root@slaver1 ~]# jps
132 20178 Jps
133 19383 DataNode
134 19563 NodeManager
135 [root@slaver2 ~]# jps
136 17541 SecondaryNameNode
137 16952 DataNode
138 17128 NodeManager
139 17982 Jps

 

       4. 运行 wordcount 案例     

 1 # 将本地文件上传
 2 [root@master ~]# hadoop fs -put test.txt /user/input/
 3 ......
 4 
 5 # 运行 wordcount 程序
 6 [root@master ~]# hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/input/ /user/output/ 
 7 2020-06-04 01:44:45,440 INFO client.RMProxy: Connecting to ResourceManager at master/10.0.0.18:8032
 8 2020-06-04 01:44:45,873 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/root/.staging/job_1591233544175_0002
 9 2020-06-04 01:44:45,935 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
10 2020-06-04 01:44:46,063 INFO input.FileInputFormat: Total input files to process : 1
11 2020-06-04 01:44:46,085 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
12 2020-06-04 01:44:46,118 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
13 2020-06-04 01:44:46,148 INFO mapreduce.JobSubmitter: number of splits:1
14 2020-06-04 01:44:46,266 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
15 2020-06-04 01:44:46,307 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1591233544175_0002
16 2020-06-04 01:44:46,307 INFO mapreduce.JobSubmitter: Executing with tokens: []
17 2020-06-04 01:44:46,489 INFO conf.Configuration: resource-types.xml not found
18 2020-06-04 01:44:46,489 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
19 2020-06-04 01:44:46,549 INFO impl.YarnClientImpl: Submitted application application_1591233544175_0002
20 2020-06-04 01:44:46,577 INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1591233544175_0002/
21 2020-06-04 01:44:46,577 INFO mapreduce.Job: Running job: job_1591233544175_0002
22 2020-06-04 01:44:51,703 INFO mapreduce.Job: Job job_1591233544175_0002 running in uber mode : false
23 2020-06-04 01:44:51,705 INFO mapreduce.Job:  map 0% reduce 0%
24 2020-06-04 01:44:55,790 INFO mapreduce.Job:  map 100% reduce 0%
25 2020-06-04 01:45:00,934 INFO mapreduce.Job:  map 100% reduce 100%
26 2020-06-04 01:45:00,956 INFO mapreduce.Job: Job job_1591233544175_0002 completed successfully
27 2020-06-04 01:45:01,079 INFO mapreduce.Job: Counters: 53
28         File System Counters
29                 FILE: Number of bytes read=33
30                 FILE: Number of bytes written=436328
31                 FILE: Number of read operations=0
32                 FILE: Number of large read operations=0
33                 FILE: Number of write operations=0
34                 HDFS: Number of bytes read=118
35                 HDFS: Number of bytes written=19
36                 HDFS: Number of read operations=8
37                 HDFS: Number of large read operations=0
38                 HDFS: Number of write operations=2
39         Job Counters 
40                 Launched map tasks=1
41                 Launched reduce tasks=1
42                 Data-local map tasks=1
43                 Total time spent by all maps in occupied slots (ms)=1369
44                 Total time spent by all reduces in occupied slots (ms)=2565
45                 Total time spent by all map tasks (ms)=1369
46                 Total time spent by all reduce tasks (ms)=2565
47                 Total vcore-milliseconds taken by all map tasks=1369
48                 Total vcore-milliseconds taken by all reduce tasks=2565
49                 Total megabyte-milliseconds taken by all map tasks=1401856
50                 Total megabyte-milliseconds taken by all reduce tasks=2626560
51         Map-Reduce Framework
52                 Map input records=1
53                 Map output records=2
54                 Map output bytes=23
55                 Map output materialized bytes=33
56                 Input split bytes=103
57                 Combine input records=2
58                 Combine output records=2
59                 Reduce input groups=2
60                 Reduce shuffle bytes=33
61                 Reduce input records=2
62                 Reduce output records=2
63                 Spilled Records=4
64                 Shuffled Maps =1
65                 Failed Shuffles=0
66                 Merged Map outputs=1
67                 GC time elapsed (ms)=87
68                 CPU time spent (ms)=830
69                 Physical memory (bytes) snapshot=518791168
70                 Virtual memory (bytes) snapshot=5129560064
71                 Total committed heap usage (bytes)=383254528
72                 Peak Map Physical memory (bytes)=294596608
73                 Peak Map Virtual memory (bytes)=2557661184
74                 Peak Reduce Physical memory (bytes)=224194560
75                 Peak Reduce Virtual memory (bytes)=2571898880
76         Shuffle Errors
77                 BAD_ID=0
78                 CONNECTION=0
79                 IO_ERROR=0
80                 WRONG_LENGTH=0
81                 WRONG_MAP=0
82                 WRONG_REDUCE=0
83         File Input Format Counters 
84                 Bytes Read=15
85         File Output Format Counters 
86                 Bytes Written=19
87 
88 # 查看结果
89 [root@master ~]# hadoop fs -cat /user/output/part-r-00000
90 2020-06-04 01:48:42,894 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
91 Hello   1
92 world!!!        1

 

四:Hadoop 源码编译

    一、环境准备

       1. Hadoop :hadoop-3.1.3-src.tar.gz

       2. JDK:jdk-8u231-linux-x64.tar.gz  (1.8及以上版本)

       3. Maven:apache-maven-3.6.2-bin.tar.gz (3.5及以上版本)

       4. Protobuf:protobuf-2.5.0.tar.gz (网页最下面,必须是2.5.0版本)

       5. Cmake:cmake-3.13.5.tar.gz(3.13.0及以上版本)

       6. Ant:apache-ant-1.10.7-bin.tar.gz(可不安装,版本1.10.8)

       7. Findbugs:findbugs-3.0.1.tar.gz (可不安装,3.0.1版本)

 

    二、安装

 1 # 安装下载软件
 2 [root@master ~]# tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/
 3 [root@master ~]# tar -zxvf hadoop-3.1.3-src.tar.gz -C /usr/local/
 4 [root@master ~]# tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local
 5 [root@master ~]# tar -zxvf cmake-3.13.5.tar.gz -C /usr/local
 6 [root@master ~]# tar -zxvf apache-ant-1.10.8-bin.tar.gz -C /usr/local/
 7 
 8 # 安装依赖软件(顺序不能乱)
 9 [root@master ~]# yum install -y gcc gcc-c++   
10 [root@master ~]# yum install -y autoconf automake libtool curl 
11 [root@master ~]# yum install -y lzo-devel zlib-devel openssl openssl-devel ncurses-devel
12 [root@master ~]# yum install -y lzo-devel zlib-devel openssl openssl-devel ncurses-devel
13 
14 # 安装Protobuf
15 [root@master ~]# tar -zxvf protobuf-2.5.0.tar.gz
16 [root@master ~]# ./protobuf-2.5.0/configure --prefix=/usr/local/18 [root@master ~]# make && make install #时间很长,耐心等待 20 
21 # 配置环境变量
[root@master ~]# source /etc/profile
22 # JAVA_HOME 23 export JAVA_HOME=/usr/local/jdk1.8.0_251 24 export PATH=$PATH:$JAVA_HOME/bin 25 26 # HADOOP_HOME 27 export HADOOP_HOME=/usr/local/hadoop-3.1.3 28 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 29 30 # MAVEN_HOME 31 export MAVEN_HOME=/usr/local/apache-maven-3.6.3 32 export PATH=$PATH:$MAVEN_HOME/bin 33 34 # PROTOC_HOME 35 export PROTOC_HOME= 36 37 # ANT_HOME 38 export ANT_HOME=/usr/local/apache-ant-1.10.8 39 export PATH=$PATH:$ANT_HOME/bin 40 41 # 生效配置文件并测试 42 [root@master ~]# source /etc/profile 43 [root@master ~]# java -version 44 java version "1.8.0_251" 45 Java(TM) SE Runtime Environment (build 1.8.0_251-b08) 46 Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode) 47 [root@master ~]# mvn -v 48 Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) 49 Maven home: /usr/local/apache-maven-3.6.3 50 Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_251/jre 51 Default locale: en_US, platform encoding: UTF-8 52 OS name: "linux", version: "3.10.0-229.el7.x86_64", arch: "amd64", family: "unix" 53 [root@master ~]# protoc --version 54 libprotoc 2.5.0 55 [root@master ~]# ant -version 56 Apache Ant(TM) version 1.10.8 compiled on May 10 2020
57
58 # 进入 hadoop 源码包执行 Maven 命令(第一次编译需要很长时间,一般在一到二个小时)
59 [root@master hadoop-3.1.3-src]# mvn clean package -DskipTests -Pdist,native -Dtar
60 ......
61 # 编译好的源码包在hadoop-3.1.3-src/hadoop-dist/target里面
62


 

你可能感兴趣的:(Hadoop知识点总结)