在Linux上搭建Hadoop系列:1.Hadoop环境搭建流程图2.搭建Hadoop单机模式3.搭建Hadoop伪分布式模式4.搭建Hadoop完全分布式模式

注:此教程皆是以范例讲述的,当然你可以按照教程搭建一个与教程一样的Hadoop环境,如果你想搭建一个与本教程有一些差异的Hadoop环境,这时请注意配置文件的参数可能不一样以及文件路径不一样。

目录

1.Hadoop集群规划与部署

(1)准备3台虚拟机

(2)分别映射好三台虚拟机的IP与主机名

(3)设置三台机器时钟同步

(4)设置三台机器两两之间SSH密码登录

(5)修改主节点配置文件并远程拷贝到从节点

1.在主节点上修改配置文件

2.将主节点的配置文件分发到两个从节点

2.格式化HDFS并启动Hadoop

(1)在主节点上格式化HDFS

(2)在主节点上启动Hadoop

(3)在各节点上用JPS查看进程

(4)web界面上查看

3.在完全分布式模式下运行Hadoop自带示例程序

1.在完全分布式模式下使用wordcount示例程序完成单词统计

(1)准备数据

(2)运行wordcount程序

(3)查看运行结果

2.在完全分布式模式下使用wordmean示例程序计算文件中单词的平均长度

(1)准备数据:HDFS上的/input

(2)运行wordmean程序

(3)查看结果


1.Hadoop集群规划与部署

一个完全分布式模式Hadoop集群至少由三台机器构成,此处搭建一个三台机器构成的小集群。

一主二从结构
节点角色 虚拟机名 机器IP 主机名 运行进程
主节点 master 192.168.232.200 node

NameNode

ResourceManager

SecondaryNameNode

从节点 slave1 192.168.232.201 node1

DataNode

NodeManager

从节点 slave2 192.168.232.202 node2

DataNode

NodeManager

(1)准备3台虚拟机

3台虚拟机可以是已部署单机模式Hadoop,已部署伪分布模式Hadoop,当然也可以是从零开始的基础环境。

克隆出三台虚拟机

注:为方便管理可以建一个文件夹(full-Distributed),将三台虚拟机放入其中。

(2)分别映射好三台虚拟机的IP与主机名

//1.修改IP避免冲突
vi /etc/sysconfig/network-scripts/ifcfg-ens33 //编辑网络配置
systemctl restart network //重启网络服务

此处为方便记忆,建议master节点IP尾数用200,slave1用201,slave2用202.

//2.修改主机名
hostname //查看主机名
hostnamectl set-hostname node //将主机名改为node
hostnamectl set-hostname node1 //将主机名改为node1
hostnamectl set-hostname node2 //将主机名改为node2

master用node,slave1用node1,slave2用node2.

//3.映射IP与主机名
vi /etc/hosts

(3)设置三台机器时钟同步

完全分布式模式由多台主机组成,如果主机间时间差异较大,运行Hadoop的时候会出现问题,因此需要对每个节点配置时钟同步。

采用NTP服务通过获取网络时间使集群内不同主机的时间保持一致

此处选取阿里云的时间服务器aliyun.com

//1.安装NTP服务
yum install ntp
//2.手动同步时间
ntpdate -u ntp1.aliyun.com
//3.查看时间
date

(4)设置三台机器两两之间SSH密码登录

在完全分布式模式下,集群内任意一台主机可免密登录集群内所有主机,实现两两免密登录。

若是以伪分布模式为基础的机器则需要先删除node,node1,node2主机上原有的.ssh目录

然后分别在node,node1,node2主机上生成公钥/私钥密钥对,再将公钥发送给集群内的所有主机。

//1.在各节点上删除原有.ssh目录,然后重新生成密钥对
rm -rf /root/.ssh //删除原有.ssh目录
ssh-keygen -t rsa //生成密钥对
cd ~/.ssh //进入.ssh目录
ll //查看密钥对
//2.在各节点的.ssh目录下将公钥复制到node节点
cd ~ //进入根目录
ssh-copy-id node //复制公钥到node节点
ssh-copy-id node1 //复制公钥到node1节点
ssh-copy-id node2 //复制公钥到node2节点
//3.查看node节点上的authorized_key文件
cd .ssh //进入.ssh目录
more authorized_keys
//4.将node节点上的authorized_keys文件远程拷贝到node1,node2
scp authorized_keys node1:~/.ssh/authorized_keys //执行过程中输入yes与密码
scp authorized_keys node2:~/.ssh/authorized_keys //执行过程中输入yes与密码
//5.验证免密登录,注意查看提示符中主机名称的变化
ssh node2 //免密登录node2节点
exit //退出远程登录
ssh node1 //免密登录node1节点
exit //退出远程登录

(5)修改主节点配置文件并远程拷贝到从节点

概要:

1.在主节点上修改配置文件(以下皆以伪分布式Hadoop为基础的虚拟机作为示范)
核心配置文件
core-site.xml 修改 HDFS配置文件
hadoop-env.sh 不变
hdfs-site.xml 修改 MapReduce配置文件
mapred-env.sh 修改
mapred-site.xml 不变 Yarn配置文件
yarn-env.sh 修改
yarn-site.xml 修改 slaves 修改

1.在主节点上修改配置文件

核心配置文件

core-site.xml  修改

cd /export/server/hadoop-2.7.2/etc/hadoop
vi core-site.xml
//在<configuration></configuration>中插入<property></property>中的代码。注意主机名与文件路径是否是自己的 <configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node:9000</value>
<description>HDFS的URI,设定namenode的主机名及端口</description>
</property> <property>
<name>hadoop.tmp.dir</name>
<value>/export/server/tmp</value>
<description>节点上本地的hadoop临时文件夹,之前一定要先建立好</description>
</property>
</configuration>

HDFS配置文件

hadoop-env.sh  不变  //在伪分布式已修改过

hdfs-site.xml  修改

vi hdfs-site.xml
//在<configuration></configuration>中插入<property></property>中的代码。注意主机名与文件路径是否是自己的
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/export/server/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property> <property>
<name>dfs.datanode.data.dir</name>
<value>file:/export/server/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property> <property>
<name>dfs.replication</name>
<value>2</value>
<description>副本个数,默认是3,应小于datanode机器数量</description>
</property> </configuration>

MapReduce配置文件

mapred-env.sh  修改

mapred-site.xml 不变

which java //查看java安装路径
vi mapred-env.sh
插入export JAVA_HOME=/bin以前的java安装路径

Yarn配置文件

yarn-env.sh  修改

yarn-site.xml  修改

which java //获取java安装路径
vi yarn-env.sh
插入export JAVA_HOME=/bin以前的java安装路径
vi yarn-site.xml
//在<configuration></configuration>中插入<property></property>中的代码。注意主机名是否是自己的
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node</value>
<description>指定resourcemanager所在的hostname,
即指定yarn的老大即ResourceManger的地址
</description>
</property> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>NodeManager上运行的附属服务。
指定NodeManager获取数据的方式是shuffle
需配置成mapreduce_shuffle,才可运行MapReduce程序
</description>
</property>
</configuration>

slaves 修改

slaves文件给出了Hadoop集群的slave节点列表。启动Hadoop时,系统总是根据当前slaves文件中slave节点名称列表启动集群,不在列表中的Slave节点便不会被视为计算节点。

vi slaves
插入各节点名

2.将主节点的配置文件分发到两个从节点

分发到node1从节点
scp -r /export/server/hadoop-2.7.2/etc/hadoop node1:/export/server/hadoop-2.7.2/etc/
分发到node2从节点
scp -r /export/server/hadoop-2.7.2/etc/hadoop node2:/export/server/hadoop-2.7.2/etc/

2.格式化HDFS并启动Hadoop

(1)在主节点上格式化HDFS

hdfs namenode -format

(2)在主节点上启动Hadoop

start-all.sh //启动所有进程
//或
start-dfs.sh
start-yarn.sh

(3)在各节点上用JPS查看进程

(4)web界面上查看

在浏览器输入主机的IP地址:50070

3.在完全分布式模式下运行Hadoop自带示例程序

1.在完全分布式模式下使用wordcount示例程序完成单词统计

(1)准备数据

(2)运行wordcount程序

cd /export/server/hadoop-2.7.2/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount/input/wcoutput

(3)查看运行结果

hadoop fs -ls /wcoutput
hadoop fs -cat wcoutput/part*

2.在完全分布式模式下使用wordmean示例程序计算文件中单词的平均长度

(1)准备数据:HDFS上的/input

(2)运行wordmean程序

hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordmean/input/wmoutput

(3)查看结果

hadoop fs -ls /wmoutput
hadoop fs -cat /wmouput/part*
搭建完全分布式模式Hadoop
准备3台虚拟机 克隆
在3台机器上分别设置IP和主机名并映射关系

vi /etc/sysconfig/network-scripts/ifcfg-ens33  //更改IP

hostnamectl set-hostname node  //更改主机名

vi /etc/hosts  //映射关系

设置3台机器时钟同步

yum install ntp //安装ntp服务

ntpdate -u ntp1.aliyun.com //手动同步时间

配置3台机器两两之间SSH免密登录

ssh-keygen -t rsa  //获取密钥

ssh-copy-id node  //复制公钥到node节点

修改主节点配置文件并远程拷贝到从节点

vi 各配置文件

scp -r /export/server/hadoop-2.7.2/etc/hadoop

node1:/export/server/hadoop-2.7.2/etc/

格式化HDFS并启动Hadoop

hdfs namenode -format  //格式化HDFS

start-all.sh //启动Hadoop所有进程

jps //查看进程

完全分布式模式运行Hadoop自带示例程序 hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount/input/wcoutput

Hadoop完全分布式模式安装部署的更多相关文章

  1. 初学者值得拥有【Hadoop伪分布式模式安装部署】

    目录 1.了解单机模式与伪分布模式有何区别 2.安装好单机模式的Hadoop 3.修改Hadoop配置文件---五个核心配置文件 (1)hadoop-env.sh 1.到hadoop目录中 ​ 2.修 ...

  2. Hadoop全分布式模式安装

    一.准备 1.准备至少三台linux服务器,并安装JDK 关闭防火墙如下 systemctl stop firewalld.service systemctl disable firewalld.se ...

  3. Hadoop伪分布式模式安装

    一.Hadoop介绍 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上:而且 ...

  4. VMware workstation 下Hadoop伪分布式模式安装

    详细过程: 1.VMware安装: 2.centos 6 安装 3.jdk下载安装配置 4.Hadoop 安装配置 1.VMware Workstation 安装: https://www.vmwar ...

  5. Hadoop伪分布式模式部署

    Hadoop的安装有三种执行模式: 单机模式(Local (Standalone) Mode):Hadoop的默认模式,0配置.Hadoop执行在一个Java进程中.使用本地文件系统.不使用HDFS, ...

  6. hadoop记录-[Flink]Flink三种运行模式安装部署以及实现WordCount(转载)

    [Flink]Flink三种运行模式安装部署以及实现WordCount 前言 Flink三种运行方式:Local.Standalone.On Yarn.成功部署后分别用Scala和Java实现word ...

  7. HBase入门基础教程之单机模式与伪分布式模式安装(转)

    原文链接:HBase入门基础教程 在本篇文章中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建HBase伪分布式环境的前提是我们已经搭建好了Had ...

  8. Hadoop1.X集群完全分布式模式环境部署

    Hadoop1.X集群完全分布式模式环境部署 1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distri ...

  9. Ganglia监控Hadoop集群的安装部署[转]

    Ganglia监控Hadoop集群的安装部署 一. 安装环境 Ubuntu server 12.04 安装gmetad的机器:192.168.52.105 安装gmond的机 器:192.168.52 ...

随机推荐

  1. P2346 四子连棋

    P2346 四子连棋 迭代加深++ 题意描述 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色棋子,7颗黑色棋子,有两个空白地带,任何一颗黑白棋子都可以向上下左右四个方向移动到相邻的空格,这叫行棋 ...

  2. Spring MVC 9大组件概述

    SpringMVC中的Servlet一共有三个层次,分别是HttpServletBean.FrameworkServlet和 DispatcherServlet.HttpServletBean直接继承 ...

  3. JS中使用for-each遍历数组

    1 let array = [1, 3, 6, 8, 9, 0, 5]; 2 /* 3 index是数组索引 4 value代表数组的值 5 arr是指整个数组 6 */ 7 array.forEac ...

  4. C语言经典100例-ex002

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...

  5. 一个名为不安全的类Unsafe

    最近为了更加深入了解NIO的实现原理,学习NIO的源码时,遇到了一个问题.即在WindowsSelectorImpl中的 pollWrapper属性,当我点进去查看它的PollArrayWrapper ...

  6. CO函数库

    CO函数库 用于 Generator 函数的自动执行,co函数返回一个promise对象 Generator 函数: 协程的概念:A执行- A暂停,执行权给B--- B交回执行权--- A恢复执行 G ...

  7. Grafana+Prometheus+node_exporter监控,Grafana无法显示数据的问题

    环境搭建: 被测linux机器上部署了Grafana,Prometheus,node_exporter,并成功启动了它们. Grafana中已经创建了Prometheus数据源,并测试通过,并且导入了 ...

  8. python语言编程算法

    编程题 1 台阶问题/斐波那契 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. fib = lambda n: n if n <= 2 else fi ...

  9. 8. Prism导航

    1. 背景 导航是为了实现不同界面的切换,是一种组织系统功能的方式.提供两种导航,一是基于View切换,二是基于ViewModel状态. 2. 基于View切换的导航 最常用导航方式.在该种导航中首先 ...

  10. 针对DEV XtraReport中没有radiobuttonlist的替代方法

     private void PrintingSystem_EditingFieldChanged(object sender, DevExpress.XtraPrinting.EditingField ...