吐血整理的Hadoop最全开发指南【Hadoop集群搭建篇】(上)

本文涉及的产品
云防火墙,500元 1000GB
简介: 吐血整理的Hadoop最全开发指南【Hadoop集群搭建篇】

在上文我们通过VMWare软件已经搭建好了本地Hadoop的运行环境(详情见环境配置:吐血整理的Hadoop最全开发指南【环境准备篇】1fc814b770dd09cca0c79fda12426b0e.png

这一篇对Hadoop的版本和组件体系进行系统说明,把握Hadoop组件架构,是对其进行开发根本。


一、 Hadoop为何物

1.1 Hadoop的整体认识

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,它主要是用来解决海量数据的存储和分析计算的问题。从广义的角度来说,Hadoop通常是指Hadoop生态圈。

7b6112581b87f5689b72e57ce74b54f7.png


1.2 Hadoop的架构

现有的Hadoop发行版本囊括了1.x2.x3.x。这三个版本在功能组件上存在着一定的差异。

58438b6015ada082bff9fec9e651ceef.png

  • 在Hadoop 1.X时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性非常大。
  • 在Hadoop 2.X时代,增加了Yarn, Yarn只负责资源的调度,而原来的MapReduce只负责运算,Hadoop 3.x 在组成上没有变化。


1.2.1 HDFS架构简介

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

其中有三个重要的节点:NameNodeDataNode 以及 SecondNameNode

52f9adb7cda7ea514039b3d24c71afb0.png

(1)NameNode:存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

(2)DataNode:在本地文件系统存储文件块数据,以及块数据的校验和。

(3)Secondary NameNode(2NN):每隔一段时间对NameNode进行备份。


1.2.2 YARN架构简介

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

eb7f675ec1b1cc42400426e65d6dd564.png


1.2.3 MapReduce架构简介

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

  • 1)Map阶段并行处理输入数据
  • 2)Reduce阶段对Map结果进行汇总

212fccfcaef547d5ea3b314d50f10274.png


1.2.4 Hdfs、Yarn和MapReduce三者关系

c24fb4ed65c7c9fa30828f7c8d7aba70.png


二、Hadoop的发行版本

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


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

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

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

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


2.1 Apache版本

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

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


2.2 Cloudera版本

官网地址: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集群,并对集群的节点及服务进行实时监控。


2.3 Hortonworks版本

官网地址: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公司收购。


三、为Hadoop集群环境构造模板

为了实现快速搭建Hadoop集群环境,我们在本地最快的方式在于通过创建一个虚拟机模板然后进行复制粘贴即可!


3.1 安装模板机

  • 0)安装模板虚拟机,IP地址192.168.10.100、主机名称hadoop100、内存4G、硬盘50G
  • 1)hadoop100虚拟机配置要求如下(本文Linux系统全部以CentOS-7.5-x86-1804为例)


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

[root@hadoop100 ~]# ping www.baidu.com
PING www.baidu.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=8.60 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=7.72 ms


(2)安装epel-release

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

[root@hadoop100 ~]# yum install -y epel-release


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

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

[root@hadoop100 ~]# yum install -y net-tools 


vim:编辑器

[root@hadoop100 ~]# yum install -y vim


  • 2)关闭防火墙,关闭防火墙开机自启
[root@hadoop100 ~]# systemctl stop firewalld
[root@hadoop100 ~]# systemctl disable firewalld.service
注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙


  • 3)创建taoren用户,并修改taoren用户的密码
[root@hadoop100 ~]# useradd taoren
[root@hadoop100 ~]# passwd taoren


  • 4)配置taoren用户具有root权限,方便后期加sudo执行root权限的命令
[root@hadoop100 ~]# vim /etc/sudoers


修改/etc/sudoers文件,在%wheel这行下面添加一行,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
taoren   ALL=(ALL)     NOPASSWD:ALL


注意:taoren这一行不要直接放到root行下面,因为所有用户都属于wheel组,你先配置了taoren具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以taoren要放到%wheel这行下面。


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

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

[root@hadoop100 ~]# mkdir /opt/module
[root@hadoop100 ~]# mkdir /opt/software
(2)修改module、software文件夹的所有者和所属组均为taoren用户 
[root@hadoop100 ~]# chown taoren:taoren /opt/module 
[root@hadoop100 ~]# chown taoren:taoren /opt/software

(3)查看module、software文件夹的所有者和所属组

[root@hadoop100 ~]# cd /opt/
[root@hadoop100 opt]# ll
总用量 12
drwxr-xr-x. 2 root    root    4096 9月   7 2017 rh
drwxr-xr-x. 2 taoren taoren 4096 5月  28 17:18 software
drwxr-xr-x. 2 taoren taoren 4096 5月  28 17:18 module


  • 6)卸载虚拟机自带的JDK
    注意:如果你的虚拟机是最小化安装不需要执行这一步。
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps 
rpm -qa:查询所安装的所有rpm软件包
grep -i:忽略大小写
xargs -n1:表示每次只传递一个参数
rpm -e –nodeps:强制卸载软件


7)重启虚拟机

[root@hadoop100 ~]# reboot


相关文章
|
27天前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
115 6
|
27天前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
64 4
|
27天前
|
SQL 分布式计算 Hadoop
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
30 3
|
27天前
|
分布式计算 Hadoop Shell
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
55 3
|
28天前
|
SQL 存储 分布式计算
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
Hadoop-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog 集群规划 实机配置运行
38 3
|
28天前
|
SQL 分布式计算 Hadoop
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
52 3
|
28天前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
78 3
|
28天前
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
Hadoop-09-HDFS集群 JavaClient 代码上手实战!详细附代码 安装依赖 上传下载文件 扫描列表 PUT GET 进度条显示(二)
38 3
|
28天前
|
SQL 分布式计算 Hadoop
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
Hadoop-19 Flume Agent批量采集数据到HDFS集群 监听Hive的日志 操作则把记录写入到HDFS 方便后续分析
40 2
|
28天前
|
SQL 存储 数据管理
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
51 2