Hadoop笔记——Hadoop集群安装与部署

一、Hadoop安装


(一)两种主流Hadoop版本
(二)环境准备
  • 关闭防火墙#chkconfig [--level 运行级别] iptables off
  • 准备Hadoop安装包
  • 编辑/etc/sysconfig/network修改集群每个主机的主机名
  • 配置静态ip
  • 编辑/etc/hosts文件,添加每台主机的地址映射
  • 安装JDK并配置java环境变量

(注意:配置完全分布式的Hadoop集群时,应当先准备集群分发脚本xsync和ssh免密登录

(三)Hadoop安装步骤
  1. 将准备好的Hadoop安装包解压到Linux
  2. 配置Hadoop环境变量
    编辑/etc/profile文件,在末尾添加
HADOOP_HOME=路径
PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME PATH

然后:

source /etc/profile

二、Hadoop的三种运行模式


(一)本地运行模式

Standalone Operation
By default, Hadoop is configured to run in a non-distributed mode, as a single Java process. This is useful for debugging.

本地模式是在Linux的文件系统上执行程序。

  • 测试官方Grep案例:
  $ mkdir input
  $ cp etc/hadoop/*.xml input
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
  $ cat output/*
  • 测试官方WordCount案例:
  $ mkdir wcinput
  $ cd wcinput
  $ touch wc.input

编辑wc.input文件,随意输入几个单词,然后运行案例并查看结果:

  $ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount wcinput wcoutput
  $ cat wcoutput/*
(二)伪分布式运行模式

Pseudo-Distributed Operation
Hadoop can also be run on a single-node in a pseudo-distributed mode where each Hadoop daemon runs in a separate Java process.

伪分布式模式是在Hadoop的HDFS文件系统上执行程序。因此采用伪分布式运行模式需要修改Hadoop的配置文件,包括:

<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
    <value>hdfs://Hadoop01:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录,不改也能运行 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
<!-- 指定HDFS副本的数量,默认为3,伪分布式只有一台主机,因此改为1 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>
  • etc/hadoop/hadoop-env.sh
# When running a distributed configuration it is best to
# set JAVA_HOME in this file, so that it is correctly defined on
# remote nodes.
export JAVA_HOME=JAVA_HOME绝对路径

启动集群步骤:

  • 格式化NameNode
    (第一次启动时格式化,每次格式化会产生新的集群id并清空本机数据和日志,为了避免与其他节点DataNode冲突,格式化前必须清除所有data和logs文件数据)
  $ bin/hdfs namenode -format
  • 启动NameNode
  $ sbin/hadoop-daemon.sh start namenode
  • 启动DataNode
  $ sbin/hadoop-daemon.sh start datanode

启动集群后查看java进程:

  $ jps
3720 Jps
3640 DataNode
3545 NameNode
(三)完全分布式运行模式

完全分布式的集群最少需要三台主机,以下面表格为例:

主机Hadoop01Hadoop02Hadoop03
HDFSNameNode、DataNodeDataNodeSecondaryNameNode、DataNode
YARNNodeManagerResourceManager、NodeManagerNodeManager

注意:NameNodeResourceManagerSecondaryNameNode不要在相同主机上。

完全分布式的集群配置与前面伪分布式的配置基本一致,需要增加的SecondaryNameNode的主机地址配置并修改副本数:

<!-- 指定HDFS副本的数量,默认为3 -->
<property>
	<name>dfs.replication</name>
	<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop03:50090</value>
</property>

然后使用集群分发脚本xsync,将相应的软件和配置文件分发到其他主机即可。

完全分布式集群的启动:

  1. 单点启动
    单点启动就是一个一个地启动NameNode、DataNode等进程,启动的指令与伪分布式模式一致,按照前面的表格启动三台主机对应的HDFS进程即可。
  2. 群起集群
    群起集群就是在一台主机上(NameNode所在主机)用一个命令就能启动整个集群,需要配置:etc/hadoop/slaves文件,增加集群所有主机名:
Hadoop01
Hadoop02
Hadoop03

然后使用xsyncslaves文件分发到所有主机。
群起集群的指令:

  # 如果第一次启动,格式化NameNode
  $ hdfs namenode -format
  
  # 启动HDFS
  $ sbin/start-dfs.sh

启动Hadoop集群后,实际启动的是HDFS分布式文件系统,为了测试集群,可以在HDFS文件系统上测试创建、删除文件等操作
还可以启动Yarn并测试MR程序

三、Hadoop的监控


HDFS-web:http://主机地址:50070/dfshealth.html#tab-overview 查看HDFS文件系统、集群的状态等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值