[Hadoop] 简介及集群搭建

前言

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

Hadoop特点

  1. 高可靠性
  2. 高扩展性
  3. 高效性
  4. 高容错性
  5. 低成本

Hadoop核心架构

HDFS

对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。

存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。

NameNode

NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。

DataNode

DataNode 也是一个通常在 HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。

准备工作

  1. hadoop-2.7.2.tar.gz (已编译)
  2. Linux机器 * 3

Linux环境准备

1:修改主机名(三台机器都要修改)
vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=Hadoop1
#其他机器依次修改为
HOSTNAME=Hadoop2
HOSTNAME=Hadoop3
2:修改host映射(三台机器都要修改)
vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.211.133 Hadoop1
192.168.211.134 Hadoop2
192.168.211.135 Hadoop3
3:配置免密登陆
#主
[Hadoop1] ssh-keygen
#先给自己一份
ssh-copy-id Hadoop1
#分发给其他机器
ssh-copy-id Hadoop2
ssh-copy-id Hadoop3
// ...
4:访问hadoop官网

http://hadoop.apache.org/

1

1

在这里可以下载Hadoop源码包

这里需要注意的是Hadoop官网上下载下来的包是32位的,需要自己编译成64位

5:关闭防火墙
service iptables stop

Hadoop 完全分布式集群部署

1:解压hadoop
tar -xzvf hadoop-2.7.2.tar.gz -C /usr/hadoop/
2:配置Hadoop环境变量
cd /usr/hadoop/hadoop-2.7.2/etc/hadoop/
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_121

1

3:配置Hadoop

指定hadoop使用的文件系统

mkdir -p /usr/data/hadoop

指定hadoop运行时产生的文件路径
vim core-site.xml

<configuration>
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://Hadoop1:9000</value>
    </property>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/data/hadoop</value>
    </property>
</configuration>
4:指定HDFS副本数量,默认是3

vim hdfs-site.xml

<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>Hadoop2:50090</value>
</property>
5:指定mr运行时框架,这里指定在yarn上,默认是local

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

<!-- 指定mr运行时框架,这里指定在yarn上,默认是local -->
<property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
</property>
6:指定yarn的leader地址

vim yarn-site.xml

<property>
      <name>yarn.resourcemanager.hostname</name>
      <value>Hadoop1</value>
</property>
<property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
</property>
7:修改 slaves 写入三个主机节点
vim slaves 

Hadoop1
Hadoop2
Hadoop3

1

8:修改环境变量
vim /etc/profile

export HADOOP_HOME=/usr/hadoop/hadoop-2.7.2
export PATH=$HADOOP_HOME/bin:$PATH

source /etc/profile

1

9:将Hadoop 发送到其他两台机器
scp -r /usr/hadoop/ root@Hadoop2:/usr/hadoop/
scp -r /usr/hadoop/ root@Hadoop3:/usr/hadoop/
10:修改其他两台机器的环境变量(参考上面)

其他两台机器新增Hadoop运行时文件路径
mkdir -p /usr/data/hadoop

HDFS 格式化

启动Hadoop需要启动HDFS和YARN两个集群

注意:首次启动HDFS时,必须对其进行格式化操作,本质上是一些清理和准备工作,因为此时HDFS物理上是不存在的,格式化成功之后,不要再次进行格式化了,格式化操作在HDFS主节点操作

cd /
#执行
hdfs namenode -format

1

格式化成功之后可以查看节点信息

cd /usr/data/hadoop/dfs/name/current/
#可以查看到节点ID
vim VERSION

1

Hadoop 集群启动

启动hdfs
cd /usr/hadoop/hadoop-2.7.2/sbin/
./start-dfs.sh

1

启动yarn
./start-yarn.sh

1

停止
停止
./stop-dfs.sh
./stop-yarn.sh


停止所有
./stop-all.sh (相当于停止dfs与yarn)

访问Hadoop

Hadoop 的 NameNode 默认是 50070 端口

http://hadoop1:50070

Hadoop 的 ResourceManager 默认是8088端口

http://hadoop1:8088

1

HDFS 常用命令

1

1

至此,Hadoop集群就搭建完成了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值