部署Hadoop高性能集群

发布时间:2025-11-05 点击:3
建站服务器
部署hadoop高性能集群
服务器概述
1)hadoop是什么
hadoop是lucene创始人doug cutting,根据google的相关内容山寨出来的分布式文件系统和对海量数据进行分析计算的基础框架系统,其中包含mapreduce程序,hdfs系统等。
hadoop包括两大核心,分布式存储系统和分布式计算系统。
2)分布式存储
为什么数据需要存储在分布式的系统中哪,难道单一的计算机存储不了吗,难道现在的几个tb的硬盘装不下这些数据吗?事实上,确实装不下。比如,很多的电信通话记彔就存储在很多台服务器的很多硬盘中。那么,要处理这么多数据,必须从一台一台服务器分别读取数据和写入数据,太麻烦了! 我们希望有一种文件系统,可以管辖很多服务器用于存储数据。通过这个文件系统存储数据时,感觉不到是存储到不同的服务器上的。当读取数据时,感觉不到是从不同的服务器上读取。
3)如图:这就是分布式文件系统。
分布式文件系统管理的是一个服务器集群。在这个集群中,数据存储在集群的节点(即集群中的服务器)中,但是该文件系统把服务器的差异屏蔽了。那么,我们就可以像使用普通的文件系统一样使用,但是数据却分散在不同的服务器中。
4)命名空间(namespace):
在分布式存储系统中,分散在不同节点中的数据可能属于同一个文件,为了组织众多的文件,把文件可以放到不同的文件夹中,文件夹可以一级一级的包含。我们把这种组织形式称为命名空间(namespace)。命名空间管理着整个服务器集群中的所有文件。命名空间的职责与存储真实数据的职责是不一样的。负责命名空间职责的节点称为主节点(master node),负责存储真实数据职责的节点称为从节点(slave node)。
5)主从节点:
主节点负责管理文件系统的文件结构,从节点负责存储真实的数据,称为主从式结构(master-slaves)。
用户操作时,也应该先和主节点打交道,查询数据在哪些从节点上存储,然后再从从节点读取。在主节点,为了加快用户访问的速度,会把整个命名空间信息都放在内存中,当存储的文件越多时,那么主节点就需要越多的内存空间。
(1)block:在从节点存储数据时,有的原始数据文件可能很大,有的可能很小,大小不一的文件不容易管理,那么可以抽象出一个独立的存储文件单位,称为块(block)。
(2)容灾:数据存放在集群中,可能因为网络原因或者服务器硬件原因造成访问失败,最好采用副本(replication)机制,把数据同时备份到多台服务器中,这样数据就安全了,数据丢失或者访问失败的概率就小了。
(3)工作流程图:
6)总结:
在以上的主从式结构中,由于主节点含有整个文件系统的目彔结构信息,因为非常重要。另外,由于主节点运行时会把命名空间信息都放到内存中,因此存储的文件越多,主节点的内存就需要的越多。
在hadoop中,分布式存储系统称为hdfs(hadoop distributed file system)。其中,主节点称为名字节点(namenode),从节点称为数据节点(datanode)。
7)分布式计算:
对数据进行处理时,我们会把数据读取到内存中进行处理。如果我们对海量数据进行处理,比如数据大小是100gb,我们要统计文件中一共有多少个单词。要想把数据都加载到内存中几乎是不可能的,称为移动数据。
那么是否可以把程序代码放到存放数据的服务器上哪?因为程序代码与原始数据相比,一般很小,几乎可以忽略的,所以省下了原始数据传输的时间了。现在,数据是存放在分布式文件系统中,100gb的数据可能存放在很多的服务器上,那么就可以把程序代码分发到这些服务器上,在这些服务器上同时执行,也就是并行计算,也是分布式计算。这就大大缩短了程序的执行时间。我们把程序代码移动到数据节点的机器上执行的计算方式称为移动计算。
分布式计算需要的是最终的结果,程序代码在很多机器上并行执行后会产生很多的结果,因此需要有一段代码对这些中间结果进行汇总。hadoop中的分布式计算一般是由两阶段完成的。第一阶段负责读取各数据节点中的原始数据,进行初步处理,对各个节点中的数据求单词数。然后把处理结果传输到第二个阶段,对中间结果进行汇总,产生最终结果,求出100gb文件总共有多少个单词,如图所示:
在hadoop中,分布式计算部分称为mapreduce。mapreduce是一种编程模型,用于大规模数据集(大于1tb)的并行运算。概念map(映射)和reduce(归约),和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。
在分布式计算过程中有以下角色:
主节点称为作业节点(jobtracker),
从节点称为任务节点(tasktracker)。
在任务节点中,运行第一阶段的代码称为map任务(map task),运行第二阶段的代码称为reduce任务(reduce task)。task : 任务 , tracker ,跟踪器
8)关于hadoop的名词解释
(1)hadoop:apache开源的分布式框架。
(2)hdfs:hadoop的分布式文件系统。
(3)namenode:hadoop hdfs元数据主节点服务器,负责保存datanode 文件存储元数据信息,这个服务器是单点的。
(4)jobtracker:hadoop的map/reduce调度器,负责与tasktracker通信分配计算任务并跟踪任务进度,这个服务器也是单点的。
(5)datanode:hadoop数据节点,负责存储数据。
(6)tasktracker:hadoop调度程序,负责map,reduce任务的启动和执行。
注:namenode记录着每个文件中各个块所在的数据节点的位置信息
一:实验拓扑
二:实验目标
实站:搭建hadoop集群:
三:实验环境
xuegod63.cn 192.168.1.63namenode
xuegod64.cn 192.168.1.64 datanode1
xuegod62.cn 192.168.1.62datanode2
四:实验代码
1:基本环境配置如下
1)三台机器上配置hosts文件,如下:
[root@xuegod63 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63 xuegod63.cn
192.168.1.64 xuegod64.cn
192.168.1.62 xuegod62.cn
复制hosts到其它两机器:
[root@xuegod63 ~]# scp /etc/hosts root@192.168.1.64:/etc/
[root@xuegod63 ~]# scp /etc/hosts root@192.168.1.62:/etc/
注意:在/etc/hosts中,不要把机器名字,同时对应到127.0.0.1这个地址,否则会导致数据节点连接不上
namenode,报错如下:
org.apache.hadoop.ipc.client: retrying connect to server: master/192.168.1.10:9000
2)无秘钥登录
配置在xuegod63上,可以ssh无密码登录机器xuegod63,xuegod64,xuegod62 ,方便后期复制文件和启动服务。因为namenode启动时,会连接到datanode上启动对应的服务。
(1)生成公钥和私钥
[root@xuegod63 ~]# ssh-keygen
(2)导入公钥到其他datanode节点认证文件
[root@xuegod63 ~]# ssh-copy-id root@192.168.1.62
[root@xuegod63 ~]# ssh-copy-id root@192.168.1.64
2:三台机器上都要配置安装java环境jdk:
1)安装及配置java运行环境—jdk。升级了jdk的版本
[root@xuegod63 ~]# rpm -ivh jdk-7u71-linux-x64.rpm
[root@xuegod63 ~]#rpm -pql /root/jdk-7u71-linux-x64.rpm#通过查看jdk的信息可以知道jdk的安装目录在/usr/java
[root@xuegod63 ~]#vim/etc/profile#在文件的最后添加以下内容:
export java_home=/usr/java/jdk1.7.0_71
export java_bin=/usr/java/jdk1.7.0_71/bin
export path=${java_home

云服务器租用怎么设置
用阿里云服务器搭建站群网站
香港空间租用指南 只买对的不选贵的
天津云服务器租用报价及时间
射洪云服务器购买
账号账号所有者青岛湛蓝信息科技有限公司变更为青岛诺尔诺达信息
阿里云共享服务器收费
云都网络最新推出无敌不死防套餐