Hadoop 2.0:主流开源云架构(二)

目录

    • 二、Hadoop 2.0简述
      • (一)Hadoop 2.0由来
      • (二)Hadoop 2.0相关项目
      • (三)Hadoop应用
    • 三、Hadoop 2.0部署
      • (一)部署综述
      • (二)传统解压包部署


二、Hadoop 2.0简述

(一)Hadoop 2.0由来

在这里插入图片描述
  工业界称Hadoop 1.X及其以前的版本(0.23.X除外)为Hadoop 1.0,称Hadoop 2.X及其以后版本为Hadoop 2.0。

在这里插入图片描述
  Hadoop 2.0提供分布式存储(HDFS)和分布式操作系统(Yarn)两大功能软件包。

  将Hadoop 2.0部署至集群后,通过调用Hadoop 2.0程序库,能够用简单的编程模型来处理分布在不同机器上的大规模数据集。由于采用客户-服务器模式,Hadoop 2.0很容易从一台机器扩展至成千上万台机器,并且每台机器都能提供本地计算存储和本地计算。考虑到集群中每台机器都可能会出问题(如硬件失效),Hadoop 2.0本身从设计上就在程序层规避了这些问题。

  Hadoop至少应当包含分布式存储和分布式计算两个模块,下面给出Hadoop1.0项目模块。
(1)Hadoop Common:联系HDFS和MapReduce的纽带,它一方面为另外两组件提供一些公用jar包,另一方面也是程序员访问其他两模块的接口。
(2)HDFS:Hadoop的分布式文件系统。主要提供分布式存储服务。
(3)Hadoop MapReduce:分布式计算框架。主要负责资源管理、任务调度和MapReduce算法实现。

(二)Hadoop 2.0相关项目

  Google云计算组件和Hadoop及其相关项目之间的对应关系:

Hadoop云计算系统Google云计算系统
Hadoop HDFSGoogle GFS
Hadoop MapReduceGoogle MapReduce
HBaseGoogle BigTable
ZooKeeperGoogle Chubby
PigGoogle Sawzall

  近几年工业界围绕Hadoop进行了大量的外围产品开发,下图描述了各个产品项目之间的层次关系。

在这里插入图片描述

(三)Hadoop应用

在这里插入图片描述
1、构建大型分布式集群

  Hadoop最直接的应用就是构建大型分布式集群,提供海量存储和计算服务,像国内的中国移动“大云”、淘宝“云梯”等,都已是大型甚至超大型分布式集群。

2、数据仓库

  很多公司的log日志文件、其他半结构化业务数据并不适合存入关系型数据库,却特别适合存入半结构化的HDFS,然后应用其他工具(如Hive、Hbase)提供报表查询之类的服务。

3、数据挖掘

  大数据环境下的数据挖掘其实并没有太大改变,但大数据却给数据挖掘的预处理工具出了难题。受限于硬盘性能和内存大小限制,普通服务器读取1TB数据需要至少二十分钟,但Hadoop却是每台机器读取1/n TB,加上共享集群内存和CPU,实际处理时间何止n倍。

  Hadoop己广泛应用于分布式集群构建、数据存储、数据挖掘等领域。随着大数据和云计算时代的到来,相信Hadoop 的应用将更加广泛。

三、Hadoop 2.0部署

(一)部署综述

1、部署方式

(1)安装方式:

  • 传统解压包方式:烦琐易错;有助于读者深入理解Hadoop。
  • Linux标准方式:简单易用;隐藏了太多细节。

(2)部署环境:

  • 单机模式:不需要与其他节点交互,不需要使用HDFS,直接读写本地的文件系统。
  • 伪分布模式:在一台单机上运行,用不同的进程模仿分布式运行中的各类节点。
  • 分布式模式:在不同的机器上部署系统。

2、部署步骤
在这里插入图片描述
3、准备环境

(1)硬件环境

  由于分布式计算需要用到很多机器,部署时用户须提供多台机器,至于提供几台,须根据 “部署规划”确定。
  实际上,完全模式部署Hadoop时,最低需要两台机器(一个主节点,一个从节点),此外,硬件方面,每台机器最低要求有1GB内存,20GB硬盘空间。

(2)软件环境

在这里插入图片描述
  大量的实践证明,在Linux环境下使用Hadoop则更加稳定高效。须注意的是新装系统(CentOS)的机器不可以直接部署Hadoop,需要设置:修改机器名,添加域名映射,关闭防火墙,安装JDK。

【例2】 现有一台CentOS系统机器,且装机时用户名为joe,要求将此机器名修改为cMaster,添加域名映射,关闭防火墙,安装JDK。

① 修改机器名

[joe@localhost ~]$ su-root                            #切换成root用户修改机器名
[root@localhost ~]# vim /etc/sysconfig/network        #编辑存储机器名文件

  将“HOSTNAME=localhost.localdomain”中的“localhost.localdomain”替换成需要使用的机器名,按要求,此处应为cMaster,即此行内容为:

HOSTNAME=CMaster                                     #指定本机名为cMaster 

  注意重启机器后更名操作才会生效,用户须通过此命令修改集群中所有机器的机器名,重启后,本机将有自己唯一的机器名cMaster了。

② 添加域名映射

  首先使用如下命令查看本机IP地址,这里以cMaster机器为例。

[root@cMaster ~]# ifconfig                            #查看cMaster机器IP地址

假如看到此机器的IP地址为“192.168.1.100”,机器名为cMaster,则域名映射应为:

192.168.1.100cMaster 

  接着编辑域名映射文件“/etc/hosts”,将上述内容加入此文件。

[root@cMaster ~]# vim /etc/hosts                      #编辑域名映射文件

③ 关闭防火墙

  CentOS的防火墙iptables默认情况下会阻止机器间通信,编者建议系统管理员开启Hadoop使用的端口,也可以暂时关闭或永久关闭iptables(不建议),为简单起见, 永久关闭防火墙,其关闭命令如下(执行命令后务必重启机器才可生效):

[root@cMaster ~]# chkconfig --level 35 iptables off              #永久关闭iptables,重启后生效

④ 安装JDK

  Hadoop部署前须安装JDK,而且Hadoop只能使用Oracle的1.6及以上版本的JDK,不能使用openjdk。用户须首先下载jdk-x.rpm包,如jdk-7u40-linux-x64.rpm。打开刚才己经安装的CentOS机器,将jdk-7u40-linux-x64.rpm复制至虚拟机下某位置, Termianl下执行(此方式安装的JDK无须配置java_home)如下命令:

[root@cMaster ~]# java                                           #查看java是否安装
[root@cMaster ~]# rpm -ivh /home/joe/jdk-7u40-linux-x64.rpm      #以root权限,rpm方式安装JDK
[root@cMaster ~]# java                                           #验证java是否安装成功

4、关于Hadoop依赖软件

  • SSH只是给sbin/start-yarn.sh等几个start-x.shstop-x.sh脚本使用。
  • Hadoop本身是一堆Java代码,而Java代码并不依赖SSH。
  • 本节使用的Hadoop版本为稳定版Hadoop-2.2.0.tar.gz
  • CentOS版本为64位CentOS-6.5。
  • JDK版本为jdk-7u40-linux-x64.rpm

(二)传统解压包部署

【例3】 现有三台机器,且它们都刚装好64位CentOS-6.5,安装系统时用户名为joe,请按要求完成:
① 修改三台机器名为cMaster,cSlave0和cSlave1,并添加域名映射、关闭防火墙和安装JDK。
② 以cMaster作为主节点,cSlave0和cSlave1作为从节点,部署Hadoop。

(1)制定部署规划

  此Hadoop集群需三台机器(cMaster,cSlave0和cSlave1),其中cMaster作为主节点,cSlave0和cSlave1作为从节点。

(2)准备机器

  准备三台机器,它们可以是实体机也可以是虚拟机,若使用虚拟机。

(3)准备机器软件环境

  三台机器都要完成:修改机器名、添加域名映射、关闭防火墙和安装JDK。

(4)下载Hadoop

  谷歌搜索“Hadoop download”并下载,以joe用户身份,将Hadoop分别复制到三台机器上。

(5)解压Hadoop

  分别以joe用户登录三台机器,每台都执行如下命令解压Hadoop文件:

[joe@cMaster ~]# tar -zxvf /home/joe/Hadoop-2.2.0.tar.gz
[joe@cSlave0 ~]# tar -zxvf /home/joe/Hadoop-2.2.0.tar.gz
[joe@cSlave1 ~]# tar -zxvf /home/joe/Hadoop-2.2.0.tar.gz

(6)配置Hadoop

  三台机器都要配置,且配置相同。

  首先,编辑文件“/home/joe/Hadoop-2.2.0/etc/Hadoop/Hadoop-env.sh”,找到如下行:

export JAVA_HOME=${JAVA_HOME}

将这行内容修改为:

export JAVA_HOME=/usr/java/jdk1.7.0_40

这里的“/usr/java/jdk1.7.0_40”就是JDK安装位置,如果不同,读者须根据实际情况更改之,需要注意的是,三台机器都要执行此操作。

  其次,编辑文件“/home/joe/Hadoop-2.2.0/etc/Hadoop/core-site.xml”,并将如下内容嵌入此文件里configuration标签间,和上一个操作相同,三台机器都要执行此操作:

<property><name>hadoop.tmp.dir</name><value>/home/joe/cloudData</value></property>
<property><name>fs.defaultFS</name><value>hdfs://cMaster:8020</value></property>

编辑文件“/home/joe/Hadoop-2.2.0/etc/Hadoop/yarn-site.xml”,并将如下内容嵌入此文件里configuration标签间,同样,三台机器都要执行此操作:

<property><name>yarn.resourcemanager.hostname</name><value>cMaster</value></property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>

  最后,将文件“/home/joe/Hadoop-2.2.0/etc/Hadoop/mapred-site.xml.template”重命名为“ /home/joe/Hadoop-2.2.0/etc/Hadoop/mapred-site.xml”,接着编辑此文件并将如下内容嵌入此文件的configuration标签间,同样,三台机器都要执行此操作:

<property><name>mapreduce.framework.name</name><value>yarn</value></property>

(7)启动Hadoop

  首先,在主节点cMaster上格式化主节点命名空间:

[joe@cMaster ~]# Hadoop-2.2.0/bin/hdfs namenode -format

  其次,在主节点cMaster上启动存储主服务namenode和资源管理主服务resourcemanager。

[joe@cMaster ~]# hadoop-2.2.0/sbin/Hadoop-daemon.sh start namenode         #cMaster启动存储主服务
[joe@cMaster ~]# hadoop-2.2.0/sbin/yarn-daemon.sh start resourcemanager        #启动资源管理主服务

  最后,在从节点上启动存储从服务datanode和资源管理从服务nodemanager,注意,CSlave0和cSlavel 这两台机器上都要执行,对应命令如下:

[joe@cSlave0 ~]# hadoop-2.2.0/sbin/Hadoop-daemon.sh start datanode        #cSlave0启动存储从服务
[joe@cSlave0 ~]# hadoop-2.2.0/sbin/yarn-daemon.sh start nodemanager       #cSlave0启动资源管理从服务
[joe@cSlave1 ~]# hadoop-2.2.0/sbin/Hadoop-daemon.sh start datanode        #cSlavel 启动存储从服务
[joe@cSlave1 ~]# hadoop-2.2.0/sbin/yarn-daemon.sh start nodemanager       #cSlavel启动资源管理从服务

(8)测试Hadoop

  可以分别在三台机器上执行如下命令,查看Hadoop服务是否己启动。

$ /usr/java/jdk1.7.0_40/bin/jps           #jps查看java进程
$ ps -ef | grep java                      #ps查看java进程

  会在cMaster上看到类似的如下信息:

3056 ResourceManager                      #资源管理主服务
2347 NameNode                             #存储主服务

  而cSlave0和cSlave1上看到类似的如下信息:

4021 DataNode                             #存储从服务
2761 NodeManager                          #资源管理从服务

  此外,还可以任选一台机器,如cMaster,打开CentOS默认浏览器Firefox,地址栏输入“cMaster:50070”,即可在Web界面看到HDFS相关信息;同理,地址栏输入“cMaster:8088”,即可在Web界面看到 Yarn相关信息。

  通过上述单机部署和集群部署,可以看出,Hadoop本身部署起来很简单,其大量工作其实都是前期的Linux环境配置,Hadoop安装只是解压、修改配置文件、格式化、启动和验证,关于Linux命令问题,请参考Linux专业书籍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM功耗管理之睡眠锁

安全之安全(security)博客目录导读 思考&#xff1a;什么是睡眠锁&#xff1f;什么是唤醒源&#xff1f;什么是组合唤醒源&#xff1f; Kernel wakelocks的功能&#xff1a; 1&#xff09;允许driver创建wakelock以阻止睡眠、注销wakelock以允许睡眠。 2&#xff09;wake_lo…

计算机网络知识汇总

OSI七层模型 七层模型一般指开放系统互连参考模型&#xff0c;开放系统互连参考模型 &#xff08;Open System Interconnect 简称OSI&#xff09;&#xff0c;OSI参考模型是具有7个层次的框架&#xff0c;自底向上的7个层次分别是物理层、数据链路层、网络层、传输层、会话层、…

信息打点web篇--详解cdn识别与绕过

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文着重整理渗透过程中 cdn的相关知识点 cdn简要说明 我们一台服务器如果让外界访问&#xff0c;距离我们服务器近的地区访问的速度快&#xff0c;而远的地区访问速度则会大大减低。为了保证远区域用户的体验&a…

Ubuntu安装MATLAB

一、准备工作 下载MATLAB安装文件&#xff1a; 访问MathWorks官方网站&#xff08;MathWorks官网&#xff09;&#xff0c;下载适用于Linux的MATLAB安装文件。这通常是一个.iso镜像文件或.zip压缩文件。请注意选择与Ubuntu版本相匹配的MATLAB版本。创建安装目录&#xff1a; 打…

【eNSP模拟实验】单臂路由实现VLAN间通讯(复杂案例)

实验需求 如下图所示&#xff0c;PC1和PC2在vlan10下&#xff0c;PC3和PC4在vlan20下&#xff0c;Server1在vlan30下&#xff0c;需要实现这5台设备之间互相通讯。 实验操作 配置各个终端的ip地址 PC1~PC4都按照下图进行配置&#xff08;注意ip地址和网关有不同的地方&#…

【C++】继承最全解析(什么是继承?继承有什么用?)

目录 一、前言 二、什么是继承 ? &#x1f4a2;继承的概念&#x1f4a2; &#x1f4a2;继承的定义&#x1f4a2; &#x1f95d;定义格式 &#x1f347;继承权限 三、基类与派生类对象的赋值转换 四、继承的作用域 五、派生类中的默认成员函数 &#x1f4a2…

华润万家超市购物卡怎么使用?

前两天整理杂物&#xff0c;翻出来两张华润的礼品卡&#xff0c;好在还没有过期 但是那卡只能在线下使用&#xff0c;而且面值也就一百 让我专门跑一趟华润感觉太不方便了 最后朋友告诉我说&#xff0c;可以在收卡云上面把卡内的余额直接提出来&#xff0c;我两张一百的卡总…

全国最大汽车经销商被曝拖欠员工工资:车主难提车

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 7月12日消息&#xff0c;据国内媒体报道&#xff0c;全国最大的汽车经销广汇集团被爆出深陷困境&#xff0c;不仅拖欠工资&#xff0c;旗下的门店也接连关闭。 有爆料称&#xff0c;广汇公司已经出现…

手机和电脑通过TCP传输

一.工具 手机端&#xff1a;网络调试精灵 电脑端&#xff1a;野火网络调试助手 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信…

redis redisson(仅供自己参考)

redis 通过setnx实现的分布式锁有问题 如图&#xff1a; 解决的新的工具为&#xff08;闪亮登场&#xff09;&#xff1a;redisson redisson可重入锁的原理 实现语言lua&#xff1a; 加锁实现脚本语言&#xff1a; 释放锁的脚本语言&#xff1a; 加锁的lua -- 首先判断这个锁…

复合索引abc,查询的时候查c a和ac都能用到索引吗

复合索引&#xff08;也称为联合索引&#xff09;的使用遵循“最左前缀原则”。这意味着查询条件必须从索引定义的最左边开始&#xff0c;并且连续地匹配索引中的列&#xff0c;才能有效地使用该索引。具体到你提到的复合索引 abc&#xff0c;它意味着索引按照 a、b 和 c 列的顺…

基于docker-compose部署zabbix7.0

1.安装docker和docker-compose 已有可跳过&#xff0c;没有参照我的docker一件安装脚本连接放在下方 一键安装dockerv24.0.6以及docker-compose可离线_docker 24对应docker-compose-CSDN博客 2.运行zabbix-server 1.创建zabbix工作目录 mkdir /zabbix 2.编写docker-compos…

求问DAMASK求解中关于yaml文件,报错显示:type dismatch in yaml date node

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

Transformer神经网络回归预测的MATLAB实现

Transformer神经网络最初是为自然语言处理&#xff08;NLP&#xff09;任务设计的&#xff0c;但它们也可以成功应用于其他序列数据的处理&#xff0c;如时间序列预测和回归任务。 在回归预测中使用Transformer网络通常涉及以下关键步骤和概念&#xff1a; 1. Transformer架…

代码随想录-暑假算法第一天(数组篇)

代码随想录-暑假算法第一天(数组篇) 1. 二分查找 力扣题目链接(opens new window) 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否…

回车不搜索直接页面刷新问题解决

使用技术栈&#xff1a;vue3、elementUiPlus 问题&#xff1a;回车触发方法&#xff0c;会刷新整个页面&#xff0c;不执行搜索 解决方法&#xff1a;在搜索的表单中增加submit.native.prevent submit.native.prevent

GeoTrust ——适合企业使用的SSL证书!

GeoTrust是一家全球知名的数字证书颁发机构&#xff08;CA&#xff09;&#xff0c;其提供的SSL证书非常适合企业使用。GeoTrust的SSL证书为企业带来了多重优势&#xff0c;不仅在验证级别、加密强度、兼容性、客户服务等方面表现出色&#xff0c;而且其高性价比和灵活的证书选…

C 语言中如何实现图结构?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; &#x1f4d9;C 语言百万年薪修炼课程 【https://dwz.mosong.cc/cyyjc】通俗易懂&#xff0c;深入浅出&#xff0c;匠心打磨&#xff0c;死磕细节&#xff0c;6年迭代&…

[图解]分析模式-01-概述1

1 00:00:01,380 --> 00:00:01,770 好 2 00:00:02,340 --> 00:00:06,440 非常感谢大家能够来上我们 3 00:00:06,450 --> 00:00:07,960 分析模式高阶的课程 4 00:00:09,310 --> 00:00:13,440 这个内容之前在分析设计高阶 5 00:00:13,450 --> 00:00:17,840 也就…

电气常用知识

1、常开、常闭 在不加外力作用下&#xff0c;展示的状态就是常 因此&#xff0c;常开就是在不加外力作用下的 开的状态&#xff0c;也就是断开的状态 常闭就是在不加外力作用下的闭合的状态&#xff0c;也就是闭合的状态 2、单控双控 单控&#xff1a;一个东西只有两种状态…