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专业书籍。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业微信hook接口协议,ipad协议http,取消扫码返回

简要描述&#xff1a; 取消扫码返回 返回类型&#xff1a; 100003 返回uuid&#xff1a; f7503bb5-7d27-408f-ab24-8c4ace7f 返回示例 {"Vid":1688853790599424,"Qrcode_key":"D368DC88254A3E79FF72942B588D7FBE","Corpid":197…

PLSQL 报错 could not locate oci.dll

0、确保PLSQL已激活。 1、在PLSQL安装包内搜索oci.dll&#xff0c;如果没有搜到需要下载 链接&#xff1a;https://pan.baidu.com/s/1HOfKAEFfuAGYACjfcwqJ1g 提取码&#xff1a;6evh 2、打开PLSQL&#xff0c;设置oci.dll的路径 ps&#xff1a;PLSQL安装包 链接&#xff…

AI预测体彩排3采取888=3策略+和值012路或双胆下一测试6月11日新模型预测第1弹

很抱歉各位小伙伴&#xff0c;端午节三天去了趟外地&#xff0c;没有按时更新3D和排三的预测。前面跟大家说过&#xff0c;8码定位是关键&#xff0c;8码定位能稳定在80%的命中率&#xff0c;才有望通过缩号缩至200-250注以内通过等额方式进行投资。由于前面的模型对8码定位的效…

程序猿大战Python——流程控制——其他控制语句

for循环 目标&#xff1a;掌握for循环的使用。 与while循环功能类似&#xff0c;for语句也能完成反复多次的执行。 for语法&#xff1a; for 临时变量 in 序列:满足条件时&#xff0c;执行的代码1满足条件时&#xff0c;执行的代码2…… [else:当for循环正常执行结束后&#…

odoo15升级odoo16遇到的问题及解决过程

odoo15升级odoo16遇到的问题 PyMuPDF 档案管理整理时,从15升级16出现如下错误: File "f:\od162306\dms\dmssp\models\shenqb.py", line 136, in doc_fj_pdf doc.SaveAs(ftem, FileFormat=17) # input_file.replace(".docx", ".pdf") F…

分离式光电液位传感器有哪些特点?

分离式光电液位传感器是一种先进的液位检测技术&#xff0c;在科学技术的不断推进下得到了广泛应用。相比传统的液位传感器&#xff0c;分离式光电液位传感器具有许多独特的特点。 传感器采用了先进的光学技术&#xff0c;将传感器装在需要检测液位的位置&#xff0c;并采用了…

重温react-01

创建react项目 // 第一步 npm install create-react-app -g // 第二步 create-react-app my-app目录介绍 my-app/README.md# 项目第三方依赖包node_modules/package.json# 一般用来存放静态依赖public/index.htmlfavicon.ico# 存放项目源代码&#xff0c;注意只有放在scr目录…

期末复习4---PTA之前题目复习

怎么在不能用strlen也就四没有string.h头文件的时候实现统计字符串的长度&#xff1f; 字符串的逆序&#xff08;看收藏里面的题&#xff09; #include <stdio.h> void f(char *p);int main() {char s[1000];gets(s);f(s);printf("%s",s);return 0; }void f(…

为啥影像导入GIS后,颜色会变?两个方法解决它!

不知道你有没有遇到过这种情况&#xff0c; 影像的正常颜色是这样的—— 可是导入到GIS后&#xff0c; 颜色竟然变了&#xff0c; 而且变得很奇怪—— 你也不必惊讶&#xff0c; 极大概率是因为数据源类型没有正确识别&#xff0c; 有两个方法可以解决这个问题—— 方法一…

告别Proteus,拥抱SmartEDA:电路设计新纪元,效率飞跃不是梦!

在数字化浪潮席卷而来的今天&#xff0c;电路设计行业也迎来了前所未有的变革。曾经&#xff0c;Proteus以其稳定可靠的性能&#xff0c;赢得了众多电路设计工程师的青睐。然而&#xff0c;随着技术的不断进步和市场的快速变化&#xff0c;我们需要一款更加高效、智能的工具来应…

苹果一夜间重塑iPhone!GPT-4o赋能Siri,AI深入所有应用,库克:开启苹果AI新时代

千呼万唤&#xff0c;苹果如何用AI重塑iPhone&#xff0c;答案终于揭晓&#xff01; 各种令人激动的传闻&#xff0c;通通都是真的—— 苹果确定与OpenAI达成合作&#xff0c;接入ChatGPT&#xff0c;使用GPT-4o模型。 GPT-4o深夜发布&#xff01;Plus免费可用&#xff01;http…

工业4.0下的PLC进化论:ARMxy计算机如何重塑自动化

智能物流系统的高效与精准成为企业竞争力的关键。在这个背景下&#xff0c;传统的PLC系统因其固有的局限性&#xff0c;如扩展性差、系统封闭等&#xff0c;开始显得力不从心。ARMxy工业计算机作为新一代的PLC替代方案&#xff0c;凭借其低功耗、高性能以及高度的灵活性&#x…

使用LangChain与ChatGLM实现本地知识库(一)

前言 本篇主要内容为介绍ChatGLM3的安装使用&#xff0c;后续才会涉及到使用LangChain实现本地知识库的内容&#xff1b; ChatGLM为智谱与清华大学开源的一个大语言模型&#xff0c;支持多轮对话、内容创作等&#xff0c;ChatGLM3-6B为ChatGLM3系列中门槛相对较低的一个&…

成都跃享未来教育抖音小店深度解析靠谱与否

在如今网络购物日益繁荣的时代&#xff0c;抖音小店以其独特的平台优势和庞大的用户基础&#xff0c;吸引了越来越多的商家入驻。成都跃享未来教育咨询有限公司便是其中之一&#xff0c;它的抖音小店究竟靠不靠谱呢&#xff1f;今天&#xff0c;我们就来一起揭开这个谜底。 首…

vue实现拖拽元素;vuedraggable拖拽插件

效果图&#xff1a; 中文文档 以下代码可直接复制使用 安装依赖 npm i -S vuedraggable使用 <template><div class"container"><div>使用flex竖轴布局 <br>handle".mover" 可拖拽的class类名 <br>filter".forbid&qu…

解析ISP许可证:构建安全可靠的网络空间

在当今数字化时代&#xff0c;互联网已成为人们生活和工作中不可或缺的一部分。作为连接世界的纽带&#xff0c;互联网服务提供商&#xff08;ISP&#xff09;承担着重要的责任&#xff0c;为用户提供稳定、高效的网络接入和服务。而ISP许可证&#xff0c;则是保障这些服务合法…

SmartEDA:革新教育电路,点亮学生创新之光!

在当今快速发展的科技时代&#xff0c;电路设计与电子技术的融合已成为教育领域不可或缺的一部分。而SmartEDA作为一款新兴的电路设计工具&#xff0c;正以其独特的优势助力学生创新实践&#xff0c;引领教育界迈向更加智能化的未来。 SmartEDA不仅具备传统电路设计软件的基本…

maven在setting.xml配置文件中限制某个包不走某个镜像的配置案例

一、以阿里云镜像为例 1、验证示例&#xff0c;在 ideal 项目的父 pom.xml 文件中&#xff0c;配置了如下指定镜像 <repositories><repository><id>osgeo</id><url>https://repo.osgeo.org/repository/release/</url><snapshots>&l…

知识管理与集体创新——从企业到新型研发机构的实践与思考︱PMO大会

全国PMO专业人士年度盛会 鹏城实验室人力资源处人才发展主管&#xff0c;原华为供应链管理部知识管理负责人王万翎女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“知识管理与集体创新——从企业到新型研发机构的实践与思考”。大会将于6月29-…

72V降3.3V1A降压恒压WT6039

72V降3.3V1A降压恒压WT6039 WT6039是设计用于满足宽电压输入需求的一款高效DC-DC降压转换器芯片&#xff0c;它被优化以在12V到90V的宽电压范围内操作。该器件整合了多种功能&#xff0c;包括使能开关控制、精准的参考电源提供、误差放大器、以及为安全性能考虑的过热保护、限…