Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

Hadoop知识点总结

萌萌哥的春天 2020-06-03 21:01:00 阅读数:159 评论数:0 点赞数:0 收藏数:0

一:大数据概述

    一、大数据简介

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

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

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

           

 

    二、大数据特征

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

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

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

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

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

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

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

 

    三、大数据应用场景

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

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

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

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

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

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

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

 

    四、大数据部门组织结构

       

 

二: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. 历史版本及组成

           

 

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

          

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

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

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

 

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

           

 

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

          

 

    三、Hadoop 生态圈

       

       

       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 安装部署(3.1.3版本)

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

       1. 安装并配置 JDK 及 Hadoop

 # 安装并配置 JDK
 [root@master ~]# tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/
......
 [root@master ~]# vi /etc/profile
 # JAVA_HOME
 export JAVA_HOME=/usr/local/jdk1..0_251
 export PATH=$PATH:$JAVA_HOME/bin

# 安装并配置 Hadoop
 [root@master ~]# tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/
......
 [root@master ~]# vi /etc/profile
 # HADOOP_HOME
 export HADOOP_HOME=/usr/local/hadoop-3.1./
export PATH=$PATH:$HADOOP_HOME/bin
 export PATH=$PATH:$HADOOP_HOME/sbin

# 生效配置文件并校验
 [root@master ~]# source /etc/profile
 [root@master ~]# java -version
 java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
 Java HotSpot(TM) -Bit Server VM (build 25.251-b08, mixed mode)

[root@master ~]# hadoop version
 Hadoop 3.1.
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on --12T02:47Z
 Compiled with protoc 2.5.
From source with checksum ec785077c385118ac91aadde5ec9799
 This command was run using /usr/local/hadoop-3.1./share/hadoop/common/hadoop-common-3.1..jar

 

       2. 部署HDFS(端口:9870)

 # 配置集群
 ### 配置:hadoop-env.sh
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
 export JAVA_HOME=/usr/local/jdk1..0_251

### 配置:core-site.xml
 [root@master ~]# vi +20 /usr/local/hadoop-3.1.3/etc/hadoop/core-site.xml
 <configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-3.1./data/tmp/</value>
</property>
</configuration>
### 配置:hdfs-site.xml
 [root@master ~]# vi +20 /usr/local/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
 <configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value></value>
</property>
<!-- 指定 NameNode 存储地址 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-3.1./tmp/dfs/name</value>
</property>
<!-- 指定 DataNode 存储地址 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-3.1./tmp/dfs/data</value>
</property>
</configuration>
# 启动集群
 [root@master ~]# hdfs --daemon start namenode
 [root@master ~]# hdfs --daemon start datanode
 [root@master ~]# jps
  NameNode
  DataNode
  Jps

# 访问集群web界面(3.1.3版本新端口)
 [root@master ~]# curl http://master:9870
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements. See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
  the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
  limitations under the License.
 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="REFRESH" content="0;url=dfshealth.html" />
<title>Hadoop Administration</title>
</head>
</html>

             

 

       3. 部署YARN(端口:8088)

 # 配置
 ### 配置:mapred-site.xml(MR)
[root@master ~]# vi +20 /usr/local/hadoop-3.1.3/etc/hadoop/mapred-site.xml
 <configuration>
<!-- 指定 MR 在 YARN上运行 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 指定 MR 应用程序路径 -->
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*</value>
  </property>
 </configuration>

### 配置:yarn-site.xml
 [root@master ~]# vi +16 /usr/local/hadoop-3.1.3/etc/hadoop/yarn-site.xml 
 <configuration>
  <!-- 指定 Reducer 获取数据的方式 -->
  <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
  </property>

 <!-- 指定 YARN 的 ResourceManager 的地址 -->
  <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>master</value>
  </property>

 <!-- 指定 NodeManagers 继承的环境属性 -->
  <property>
  <name>yarn.nodemanager.env-whitelist</name>
  <value>JAVA_HOME,HADOOP_HOME</value>
  </property>
39 </configuration>

# 启动集群
 [root@master ~]# yarn --daemon start resourcemanager
 [root@master ~]# yarn --daemon start nodemanager
 [root@master ~]# jps
 12691 DataNode
 20278 Jps
 20136 NodeManager
 12585 NameNode
 19837 ResourceManager

# 查看
 [root@master ~]# curl http://master:8088/cluster
 ......

            

 

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

 # 配置历史服务器
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/mapred-site.xml
 <configuration>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:</value>
</property>
</configuration>
# 配置日志聚集
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/yarn-site.xml
 <configuration>
<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
# 启动
 [root@master ~]# yarn --daemon stop resourcemanager
 [root@master ~]# yarn --daemon stop nodemanager
 [root@master ~]# yarn --daemon start resourcemanager
 [root@master ~]# yarn --daemon start nodemanager
 [root@master ~]# mapred --daemon start historyserver
 [root@master ~]# jps
  DataNode
  NodeManager
  Jps
  NameNode
  JobHistoryServer
 ResourceManager

 

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

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

 # 配置主机地址映射
 [root@master ~]# cat /etc/hosts
 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
 :: localhost localhost.localdomain localhost6 localhost6.localdomain6
 10.0.0.18 master
 10.0.0.15 slaver1
 10.0.0.16 slaver2

# 配置 xsync 脚本
 [root@master ~]# vi /usr/local/bin/xsync
 #! /bin/bash

# 、获取输入参数个数,如果没有参数,直接退出
 pcount=$#
 if((pcount==)); then
  echo no args;
  exit;
  fi

#、获取文件名称
 p1=$
fname=`basename $p1`
 echo fname=$fname

# 、获取上级目录到绝对路径
 pdir=`cd -P $(dirname $p1); pwd`
 echo pdir=$pdir

# 、获取当前用户名称
 user=`whoami`

# 、循环
 for((host=; host<; host++)); do
echo ------------------- slaver$host --------------
rsync -rvl $pdir/$fname $user@slaver$host:$pdir
  done

# 修改执行权限
 [root@master ~]# chmod 777 /usr/local/bin/xsync

# 使用
 [root@master ~]# xsync /usr/local/jdk1.8.0_251/
[root@master ~]# xsync /usr/local/hadoop-3.1./
[root@master ~]# xsync /etc/profile

 

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

 # 生成公钥和私钥
 [root@master ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
 Generating public/private dsa key pair.
 Your identification has been saved in /root/.ssh/id_dsa.
 Your public key has been saved in /root/.ssh/id_dsa.pub.
 The key fingerprint is:
 0c:7d:::0e:d3:b0:1f:::b6:5d:2a:a7:ff: root@master
 The key's randomart image is:
+--[ DSA ]----+
| Bo+ o . |
| . X.B o |
| + B . o |
| = + o |
| . . S |
| . . |
| . E . |
| . . |
| . |
+-----------------+
[root@master ~]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
 [root@master ~]# chmod 0600 ~/.ssh/authorized_keys

# 将公钥拷贝到要免密登录的目标机器
 [root@master ~]# ssh-copy-id slaver1
 The authenticity of host 'slaver1 (192.168.200.55)' can't be established.
ECDSA key fingerprint is ::::ad:::c1:0b:::ce:fc:4f:c0:3e.
 Are you sure you want to continue connecting (yes/no)? yes
 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
 /usr/bin/ssh-copy-id: INFO: key(s) remain to be installed -- if you are prompted now it is to install the new keys
 root@slaver1's password:
Number of key(s) added:
Now try logging into the machine, with: "ssh 'slaver1'"
and check to make sure that only the key(s) you wanted were added.

# 测试无密登录
 [root@master ~]# ssh slaver1
 Last login: Thu Dec ::
 #########################
  # Welcome to XianDian #
  #########################

[root@slaver1~]#

# 配置 ntp 时钟同步服务器
 ## 主节点(master)
 ### 安装 ntp 服务
 [root@master ~]# yum install -y ntp
 ...

### 修改ntp 配置文件(删除server和restrict 开头的)
 [root@master ~]# vi /etc/ntp.conf
 server 127.127.1.0
fudge 127.127.1.0 stratum
## 其他节点进行同步
 ### 安装同步客户端
 [root@master ~]# yum install -y ntpdate
 ### 同步 (-.xxx以内)
 [root@slaver1 ~]# ntpdate master
 Jun :: ntpdate[]: adjust time server 172.16.21.212 offset -0.000439 sec

 

       3. 配置集群

 # 配置集群群起:workers(添加从节点)
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/workers
 slaver1
 slaver2

# 配置环境变量:hadoop-env.sh
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
 export JAVA_HOME=/usr/local/jdk1..0_251
 export HADOOP_HOME=/usr/local/hadoop-3.1.
export HDFS_NAMENODE_USER=root
 export HDFS_DATANODE_USER=root
 export HDFS_SECONDARYNAMENODE_USER=root
 export YARN_RESOURCEMANAGER_USER=root
 export YARN_NODEMANAGER_USER=root

# 核心配置文件:core-site.xml (运行环境)
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/core-site.xml
 <configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-3.1./data/tmp/</value>
</property>
</configuration>
# HDFS配置文件:hdfs-site.xml
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
 <configuration>
<!-- 指定 NameNode 存储地址 -->
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop-3.1./data/tmp/dfs/name</value>
</property>
<!-- 指定 DataNode 存储地址 -->
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop-3.1./data/tmp/dfs/data</value>
</property>
<!-- 指定 Hadoop 主节点主机配置 -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:</value>
</property>
<!-- 指定 Hadoop 辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slaver2:</value>
</property>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value></value>
</property>
<!-- 关闭用户操作权限验证 -->
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>need not permissions</description>
</property>
</configuration>
# YARN配置文件:yarn-site.xml
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/yarn-site.xml
 <configuration>
<!-- 指定 Reducer 获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- 指定 NodeManagers 继承的环境属性 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_HOME</value>
</property>
<!-- 配置 YARN 的资源调度(执行hadoop classpath) -->
<property>
<name>yarn.application.classpath</name>
<value>/usr/local/hadoop-3.1./etc/hadoop:/usr/local/hadoop-3.1./share/hadoop/common/lib/*:此处省略很之值</value>
</property>
</configuration>
# MapReduce配置文件:mapred-site.xml
 [root@master ~]# vi /usr/local/hadoop-3.1.3/etc/hadoop/mapred-site.xml
 <configuration>
<!-- 指定 MR 在 YARN上运行 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 指定 MR 应用程序路径 -->
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_HOME/share/hadoop/mapreduce/*,$HADOOP_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
# 分发集群配置文件
 [root@master ~]# xsync /usr/local/hadoop-3.1.3/etc/
......

# 启动
 [root@master ~]# start-all.sh # 一次性启动
 # [root@master ~]# start-dfs.sh
 # [root@master ~]# start-yarn.sh # resourcemanager部署节点启动
 [root@master ~]# jps
  ResourceManager
  NodeManager
  NameNode
  DataNode
  Jps
 [root@slaver1 ~]# jps
  Jps
  DataNode
  NodeManager
 [root@slaver2 ~]# jps
  SecondaryNameNode
  DataNode
  NodeManager
 Jps

 

       4. 运行 wordcount 案例     

 # 将本地文件上传
 [root@master ~]# hadoop fs -put test.txt /user/input/
......

# 运行 wordcount 程序
 [root@master ~]# hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/input/ /user/output/
-- ::, INFO client.RMProxy: Connecting to ResourceManager at master/10.0.0.18:
-- ::, INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/root/.staging/job_1591233544175_0002
 -- ::, INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
-- ::, INFO input.FileInputFormat: Total input files to process :
-- ::, INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
-- ::, INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
-- ::, INFO mapreduce.JobSubmitter: number of splits:
-- ::, INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
-- ::, INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1591233544175_0002
 -- ::, INFO mapreduce.JobSubmitter: Executing with tokens: []
 -- ::, INFO conf.Configuration: resource-types.xml not found
 -- ::, INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
 -- ::, INFO impl.YarnClientImpl: Submitted application application_1591233544175_0002
 -- ::, INFO mapreduce.Job: The url to track the job: http://master:8088/proxy/application_1591233544175_0002/
-- ::, INFO mapreduce.Job: Running job: job_1591233544175_0002
 -- ::, INFO mapreduce.Job: Job job_1591233544175_0002 running in uber mode : false
-- ::, INFO mapreduce.Job: map % reduce %
-- ::, INFO mapreduce.Job: map % reduce %
-- ::, INFO mapreduce.Job: map % reduce %
-- ::, INFO mapreduce.Job: Job job_1591233544175_0002 completed successfully
 -- ::, INFO mapreduce.Job: Counters:
 File System Counters
 FILE: Number of bytes read=
FILE: Number of bytes written=436328
FILE: Number of read operations=
FILE: Number of large read operations=
FILE: Number of write operations=
HDFS: Number of bytes read=
HDFS: Number of bytes written=
HDFS: Number of read operations=
HDFS: Number of large read operations=
HDFS: Number of write operations=
 Job Counters
 Launched map tasks=
Launched reduce tasks=
Data-local map tasks=
Total time spent by all maps in occupied slots (ms)=
Total time spent by all reduces in occupied slots (ms)=
Total time spent by all map tasks (ms)=
Total time spent by all reduce tasks (ms)=
Total vcore-milliseconds taken by all map tasks=
Total vcore-milliseconds taken by all reduce tasks=
Total megabyte-milliseconds taken by all map tasks=1401856
Total megabyte-milliseconds taken by all reduce tasks=2626560
Map-Reduce Framework
 Map input records=
Map output records=
Map output bytes=
Map output materialized bytes=
Input split bytes=
Combine input records=
Combine output records=
Reduce input groups=
Reduce shuffle bytes=
Reduce input records=
Reduce output records=
Spilled Records=
Shuffled Maps =
Failed Shuffles=
Merged Map outputs=
GC time elapsed (ms)=
CPU time spent (ms)=
Physical memory (bytes) snapshot=518791168
Virtual memory (bytes) snapshot=5129560064
Total committed heap usage (bytes)=383254528
Peak Map Physical memory (bytes)=294596608
Peak Map Virtual memory (bytes)=2557661184
Peak Reduce Physical memory (bytes)=224194560
Peak Reduce Virtual memory (bytes)=2571898880
 Shuffle Errors
 BAD_ID=
CONNECTION=
IO_ERROR=
WRONG_LENGTH=
WRONG_MAP=
WRONG_REDUCE=
 File Input Format Counters
 Bytes Read=
 File Output Format Counters
 Bytes Written=
# 查看结果
 [root@master ~]# hadoop fs -cat /user/output/part-r-
-- ::, INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
Hello
world!!! 

 

四: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版本)

 

    二、安装

 # 安装下载软件
 [root@master ~]# tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/
[root@master ~]# tar -zxvf hadoop-3.1.-src.tar.gz -C /usr/local/
[root@master ~]# tar -zxvf apache-maven-3.6.-bin.tar.gz -C /usr/local
 [root@master ~]# tar -zxvf cmake-3.13..tar.gz -C /usr/local
 [root@master ~]# tar -zxvf apache-ant-1.10.-bin.tar.gz -C /usr/local/
# 安装依赖软件(顺序不能乱)
 [root@master ~]# yum install -y gcc gcc-c++
[root@master ~]# yum install -y autoconf automake libtool curl
 [root@master ~]# yum install -y lzo-devel zlib-devel openssl openssl-devel ncurses-devel
 [root@master ~]# yum install -y lzo-devel zlib-devel openssl openssl-devel ncurses-devel

# 安装Protobuf
 [root@master ~]# tar -zxvf protobuf-2.5..tar.gz
 [root@master ~]# ./protobuf-2.5./configure --prefix=/usr/local/ [root@master ~]# make && make install #时间很长,耐心等待 
# 配置环境变量
[root@master ~]# source /etc/profile
# JAVA_HOME export JAVA_HOME=/usr/local/jdk1..0_251 export PATH=$PATH:$JAVA_HOME/bin # HADOOP_HOME export HADOOP_HOME=/usr/local/hadoop-3.1. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # MAVEN_HOME export MAVEN_HOME=/usr/local/apache-maven-3.6. export PATH=$PATH:$MAVEN_HOME/bin # PROTOC_HOME export PROTOC_HOME= # ANT_HOME export ANT_HOME=/usr/local/apache-ant-1.10. export PATH=$PATH:$ANT_HOME/bin # 生效配置文件并测试 [root@master ~]# source /etc/profile [root@master ~]# java -version java version "1.8.0_251" Java(TM) SE Runtime Environment (build 1.8.0_251-b08) Java HotSpot(TM) -Bit Server VM (build 25.251-b08, mixed mode) [root@master ~]# mvn -v Apache Maven 3.6. (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /usr/local/apache-maven-3.6. Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: /usr/local/jdk1..0_251/jre Default locale: en_US, platform encoding: UTF- OS name: "linux", version: "3.10.0-229.el7.x86_64", arch: "amd64", family: "unix" [root@master ~]# protoc --version libprotoc 2.5. [root@master ~]# ant -version Apache Ant(TM) version 1.10. compiled on May 2020

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


 

版权声明
本文为[萌萌哥的春天]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/mh20131118/p/12146993.html