【大数据Hadoop实战篇】 1

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 【大数据Hadoop实战篇】

第1章 Hadoop概述

1.1 Hadoop是什么


c61fb34f06724874be5bbb17f98cc852.png

1.2 Hadoop发展历史(了解)


6e3e272173f642939cfd231c1eb97cb5.png


8d42ce908c3b4a09a97b1f1dfb67bf6f.png

1.3 Hadoop三大发行版本(了解)

Hadoop三大发行版本:Apache、Cloudera、Hortonworks。

Apache版本最原始(最基础)的版本,对于入门学习最好。2006

Cloudera内部集成了很多大数据框架,对应产品CDH。2008

Hortonworks文档较好,对应产品HDP。2011

Hortonworks现在已经被Cloudera公司收购,推出新的品牌CDP。

1)Apache Hadoop

官网地址:http://hadoop.apache.org

下载地址:https://hadoop.apache.org/releases.html

2)Cloudera Hadoop

官网地址:https://www.cloudera.com/downloads/cdh

下载地址:https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_6_download.html

(1)2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训。

(2)2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support

(3)CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。Cloudera的标价为每年每个节点10000美元。

(4)Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。

3)Hortonworks Hadoop

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

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

(1)2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建。

(2)公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。

(3)Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。

(4)2018年Hortonworks目前已经被Cloudera公司收购。

1.4 Hadoop优势(4高)

527253771569473fa830e2a3c9d88561.png

aa52f303e53a4ad79bf933db24a4a0e4.png

1.5 Hadoop组成(面试重点)

hadoop1.x 2.x 3.x 区别


885973cd9bf9491b8cea50af74be55d4.png

1.5.1 HDFS架构概述

Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。

1.5.2 YARN架构概述

Yet Another Resource Negotiator简称YARN,另一种资源协调者,是Hadoop的资源管理器。

e46e7d101f2247af84349462fdf4b356.png

1.5.3 MapReduce架构概述

MapReduce将计算过程分为两个阶段:MapReduce

1)Map阶段并行处理输入数据

2)Reduce阶段对Map结果进行汇总

1.5.4 HDFS、YARN、MapReduce三者关系


04221d2bda5c46bb8be172a2fb17d785.png

1.6 大数据技术生态体系


1d90de649094469f90be46965a4ca212.png

图中涉及的技术名词解释如下:

1)Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

2)Flume:Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;

3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统;

4)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。

5)Flink:Flink是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。

6)Oozie:Oozie是一个管理Hadoop作业(job)的工作流程调度管理系统。

7)Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

8)Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

9)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

1.7 大数据推荐系统架构图


f42985fabf0c407cbf742f089c58131b.png

第2章 Hadoop运行环境搭建(开发重点)

2.1 模板虚拟机环境准备

0)安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G

1)hadoop100虚拟机配置要求如下(本文Linux系统全程以CentOS-7.5为例,并用root用户权限进行操作)

(1)使用yum安装需要虚拟机可以正常上网,yum安装前可以先测试下虚拟机联网情况

(2)安装epel-release

注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方 repository 中是找不到的)

yum install -y epel-release

(3)注意:如果Linux安装的是最小系统版,还需要安装如下工具;如果安装的是Linux桌面标准版,不需要执行如下操作

net-tool:工具包集合,包含ifconfig等命令

yum install -y net-tools

vim:编辑器

yum install -y vim

2)关闭防火墙,关闭防火墙开机自启

systemctl stop firewalld
systemctl disable firewalld.service

5)在/opt目录下创建文件夹,并修改所属主和所属组

(1)在/opt目录下创建module、software文件夹

mkdir /opt/module
mkdir /opt/software


c9d9006ee83a4331a32c2071a3e02dd6.png

6)卸载虚拟机自带的JDK

注意:如果你的虚拟机是最小化安装不需要执行这一步。

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

参数含义:

rpm -qa:查询所安装的所有rpm软件包

grep -i:忽略大小写

xargs -n1:表示每次只传递一个参数

rpm -e –nodeps:强制卸载软件

7)重启虚拟机

reboot

2.2 克隆虚拟机

1)利用模板机hadoop100,克隆三台虚拟机:hadoop102 hadoop103 hadoop104

注意:克隆时,要先关闭hadoop100

2)修改克隆机IP,以下以hadoop102举例说明

(1)修改克隆虚拟机的静态IP

vim /etc/sysconfig/network-scripts/ifcfg-ens33

改成:

DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="ens33"
IPADDR=192.168.10.102
PREFIX=24
GATEWAY=192.168.10.2
DNS1=192.168.10.2

b7cc1d41de4043099bc7c2095e254b54.png

(2)查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8



9625ca9eda6b4abcb01cda01c69c8ba1.png


e57dfbb1bc4b4add8bbca1d746b457cc.png

(3)查看Windows系统适配器VMware Network Adapter VMnet8的IP地址

ac07ce5fd7514212a3c46fb02dc125cf.png

(4)保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。

3)修改克隆机主机名,以下以hadoop102举例说明

(1)修改主机名称

vim /etc/hostname
hadoop102

(2)配置Linux克隆机主机名称映射hosts文件,打开/etc/hosts

vim /etc/hosts
192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108

**4)重启克隆机hadoop102 **

reboot

5)修改windows的主机映射文件(hosts文件)

window10用户,先拷贝出来,修改保存以后,再覆盖即可

(a)进入C:\Windows\System32\drivers\etc路径

(b)拷贝hosts文件到桌面

(c)打开桌面hosts文件并添加如下内容

192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102
192.168.10.103 hadoop103
192.168.10.104 hadoop104
192.168.10.105 hadoop105
192.168.10.106 hadoop106
192.168.10.107 hadoop107
192.168.10.108 hadoop108

(d)将桌面hosts文件覆盖C:\Windows\System32\drivers\etc路径hosts文件

2.3 在hadoop102安装JDK

0)下载好准备工具

Xshell 网盘(链接:https://pan.baidu.com/s/1Xf-KvOFhkefQ6ZFCI-0ZTg?pwd=2022

提取码:2022)

XFTP (链接:https://pan.baidu.com/s/19aAf8-neEyA2e_8lTx-LUQ?pwd=2022

提取码:2022)

JDK1.8 (链接: https://pan.baidu.com/s/1TVcByVQzm5QNaRnU5XlDow?pwd=2022 提取码:2022)

Hadoop3.x (链接:https://pan.baidu.com/s/1RgNH8RYjlBaNcqElZQVb1A?pwd=2022

提取码:2022)

1)卸载现有JDK

注意:安装JDK前,一定确保提前删除了虚拟机自带的JDK。

2)用XShell传输工具将JDK导入到opt目录下面的software文件夹下面


c4a4fa3949914b0283b31db0b9a6fa8d.png

3)在Linux系统下的opt目录中查看软件包是否导入成功

ls /opt/software/


998aeb20595a407d82da16e18adaf8a0.png

4)解压JDK到/opt/module目录下

tar -zxvf jdk-8u333-linux-x64.tar -C /opt/module/

tar -zxvf jdk-8u333-linux-x64.tar.gz -C /opt/module/

cb60933be53a4e78b5b4912f954d3d51.png

5)配置JDK环境变量

(1)新建/etc/profile.d/my_env.sh文件

vim /etc/profile.d/my_env.sh


添加如下内容

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_333
export PATH=$PATH:$JAVA_HOME/bin
(2)保存后退出
:wq!
(3)source一下/etc/profile文件,让新的环境变量PATH生效
source /etc/profile

6)测试JDK是否安装成功

java -version


a1f94ca954af401f9d89b813e5c7df16.png

2.4 在hadoop102安装Hadoop

安装方式同上(JDK)

1)用XShell文件传输工具将hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹下面

2)进入到Hadoop安装包路径下

cd /opt/software/

3)解压安装文件到/opt/module下面

tar -zxvf hadoop-3.3.3.tar.gz -C /opt/module/

4)查看是否解压成功

ls /opt/module/hadoop-3.3.3

5)将Hadoop添加到环境变量

(1)获取Hadoop安装路径

pwd


9d56a3f25e484633beb1c12870235e0c.png

(2)打开/etc/profile.d/my_env.sh文件

vim /etc/profile.d/my_env.sh

在my_env.sh文件末尾添加如下内容


926e76fca2644a24860ada02b742e2ab.png

保存并退出:

:wq!

(3)让修改后的文件生效

source /etc/profile

6)测试是否安装成功

hadoop version


71861ac5e78e43afb8fa7afb7c9b9e5c.png

7)重启(如果Hadoop命令不能用再重启虚拟机)

reboot

2.5 Hadoop目录结构

1)查看Hadoop目录结构

ff657a485d1a4c5dbbc23e0c6bb1c3b4.png

2)重要目录

(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本

(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件

(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)

(4)sbin目录:存放启动或停止Hadoop相关服务的脚本

(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
142 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
6天前
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
33 4
|
1月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
115 2
|
1月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
84 1
|
1月前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
2月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
81 1
|
2月前
|
Oracle 大数据 数据挖掘
企业内训|大数据产品运营实战培训-某电信运营商大数据产品研发中心
本课程是TsingtaoAI专为某电信运营商的大数据产品研发中心的产品支撑组设计,旨在深入探讨大数据在电信运营商领域的应用与运营策略。通过密集的培训,从数据的本质与价值出发,系统解析大数据工具和技术的最新进展,深入剖析行业内外的实践案例。课程涵盖如何理解和评估数据、如何有效运用大数据技术、以及如何在不同业务场景中实现数据的价值转化。
61 0
|
2月前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
165 0
|
1月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
348 7
|
1月前
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
53 2