Hadoop从入门到入土(二)------------前言及Hadoop集群搭建

前言

Hadoop核心内容

Hadoop是一个大数据的技术(框架/生态),其核心内容包括HDFS(分布式文件存储系统)、MapReduce(分布式运算编程框架)、Yarn(分布式运算资源调度系统)、Commons工具类

在现代大数据中,显而易见需要我们解决的问题   1)海量数据的存储    2)海量数据的运算     3)存储、运算资源的分配、调度

Hadoop技术生态:

解决海量数据的存储:HDFS(分布式文件存储系统

解决海量数据的运算:MapReduce(分布式运算编程框架)

运算资源调度任务监控平台:Yarn(分布式运算资源调度系统)

工具包 Commons

Hadoop的特点:

1)高容错,高可用性

2)容易扩展

3)廉价性

下面将进入HDFS的学习

HDFS的概念

什么是HDFS

HDFS 分布式文件系统  全名 hadoop distribute file system  

什么是文件系统

提供数据的   读取、写入、删除 文件(文件夹)、移动文件(文件夹)、提供目录

分布式文件系统

1)在我们比较常见的电脑中,如windows总,文件总是存在于这一台系统中

2)分布式,就是文件存储于多台机器中,这多台的文件 对外整体看做一个文件管理系统,对外提供虚拟的访问路径,实际上文件存储分布在各个机器上,这就是HDFS  分布式文件存储系统

HDFS文件系统构建前提

1)至少三台服务器(linux)构成的集群,本系列所使用集群服务器为3个,前面文章展示了一个虚拟机的创建,只需要克隆两个即可,即可构成三个一模一样环境的虚拟机,但要记得更改ip地址的配置和别名。

注:集群是同一个组件的多个实例,形成的逻辑上的整体;分布式的关键在于是否通过交换信息的方式进行协作,在这里我们的集群(三台服务器)也是一个分布式文件系统

2)服务器之间要进行免密。(免密操作,这里就不再赘述;)

3)三台虚拟机的防火墙和本地windows防火墙全部关闭,开机禁止启用。

4)java环境变量的配置

5)任意两台服务器之间要可以进行ping通

Hadoop集群搭建(HDFS系统搭建)详解

 

HDFS原理

HDFS架构

HDFS 采用主从架构,即由单个节点Name Node(NN)和多个Data  Node(DN)组成

核心内容

1)NameNode:

初始化集群  集群ID

接受datanode的注册  ,注册成功,更新存储目录

维护datanode的节点列表,对外提供存储空间

接收客户端的读写请求

对外提供虚拟的访问目录

维护管理元数据

接收datanode的心跳汇报,维护集群,接收数据汇报

维护数据安全存储(副本个数的检验和复制)

2)Datanode:

注册  为集群提供存储资源

发送心跳 报告工作情况

执行数据块的复制工作

执行用户的读写请求

环境搭建

我们有三台机器,我们选用其中一台作为name node的主节点机器,这三台同时也是datanode服务的机器

datanode服务和namenode 实际上指的是机器上运行的某个进程服务

上传hadoop包

解压

tar -xzvf hadoop-3.1.1.tar.gz -C /opt/app

 

配置

有三大配置文件需要配置

core-site.xml  配置文件系统默认采用hdfs

hadoop.env.sh  配置hadoop中JAVA_HOME 的环境变量

hdfs-site.xml :

配置namenode的位置   其他机器需要找到namenode

配置namenode存储元数据的位置   元数据(一些字符串:虚拟目录   文件数据块 ----及所在的机器  还有一些其他元数据)

配置datanode存储数据的位置    (我们是三台服务器   其中有一台既扮演着namenode  又扮演datanode)

配置sn的位置   secondary   namenode

配置hadoop.env.sh

vi  /opt/apps/hadoop-3.1.1/etc/hadoop/hadoop-env.sh

:set nu  显示行号

/JAVA_HOME  找到JAVA_HOEM的位置并且配置

按n键进行搜索到的下一个选项    并输入正确的jdk所在的路径   注意 去掉前面的#  #号被视为注释

配置core-site.xml

vi /opt/apps/hadoop-3.1.1/etc/hadoop/core-site.xml

配置内容:

<property>
<name>fs.defaultFS</name>
<value>hdfs://linux01:8020</value>
</property>

配置hdfs-site.xml

vi  /opt/apps/hadoop-3.1.1/etc/hadoop/hdfs-site.xml

配置:

 <!-- 集群的namenode的位置  datanode能通过这个地址注册-->
<property>
    <name>dfs.namenode.rpc-address</name>
    <value>linux01:8020</value>
</property>
 <!-- namenode存储元数据的位置 -->
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/hdpdata/name</value>
</property>
 <!-- datanode存储数据的位置 -->
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/hdpdata/data</value>
</property>
 <!-- secondary namenode机器的位置-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>linux02:50090</value>
</property>

分发

将linux01上的 配置好的文件及包 直接发给另外两台机器   

scp -r  hadoop-3.1.1  linux02:$PWD      scp  是ssh  cp  -r 是递归循环复制    此命令意思是 将hadoop文件夹及其下所有文件复制到  linux02服务器下的 当前目录

scp -r  hadoop-3.1.1  linux03:$PWD

注:上述两条命令需在  /opt/apps/下面执行    因为 此命令将会把hadoop复制给另外两台服务器同样的目录中

初始化

需要在bin目录下执行

./hadoop  namenode -format   出现下列显示 即表示初始化成功

启动

需要在sbin中执行

./hadoop-daemon.sh   start  namenode  

jps查看java 进程  

访问页面  http://linux01:9870/    下列页面显示 当前 文件系统(整体hdfs) 的容量和其他信息

 

启动三台linux机器上的datanode

分别在linux01 linux02  linux03 的sbin目录下执行

./hadoop-daemon.sh   start  datanode

查看页面主机情况

更多学习、面试资料尽在微信公众号:Hadoop大数据开发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值