Hadoop完全分布式模式安装部署
在Linux上搭建Hadoop系列:1.Hadoop环境搭建流程图2.搭建Hadoop单机模式3.搭建Hadoop伪分布式模式4.搭建Hadoop完全分布式模式
注:此教程皆是以范例讲述的,当然你可以按照教程搭建一个与教程一样的Hadoop环境,如果你想搭建一个与本教程有一些差异的Hadoop环境,这时请注意配置文件的参数可能不一样以及文件路径不一样。
目录
1.在完全分布式模式下使用wordcount示例程序完成单词统计
2.在完全分布式模式下使用wordmean示例程序计算文件中单词的平均长度
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*
| 准备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完全分布式模式安装部署的更多相关文章
- 初学者值得拥有【Hadoop伪分布式模式安装部署】
目录 1.了解单机模式与伪分布模式有何区别 2.安装好单机模式的Hadoop 3.修改Hadoop配置文件---五个核心配置文件 (1)hadoop-env.sh 1.到hadoop目录中 2.修 ...
- Hadoop全分布式模式安装
一.准备 1.准备至少三台linux服务器,并安装JDK 关闭防火墙如下 systemctl stop firewalld.service systemctl disable firewalld.se ...
- Hadoop伪分布式模式安装
一.Hadoop介绍 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的硬件上:而且 ...
- VMware workstation 下Hadoop伪分布式模式安装
详细过程: 1.VMware安装: 2.centos 6 安装 3.jdk下载安装配置 4.Hadoop 安装配置 1.VMware Workstation 安装: https://www.vmwar ...
- Hadoop伪分布式模式部署
Hadoop的安装有三种执行模式: 单机模式(Local (Standalone) Mode):Hadoop的默认模式,0配置.Hadoop执行在一个Java进程中.使用本地文件系统.不使用HDFS, ...
- hadoop记录-[Flink]Flink三种运行模式安装部署以及实现WordCount(转载)
[Flink]Flink三种运行模式安装部署以及实现WordCount 前言 Flink三种运行方式:Local.Standalone.On Yarn.成功部署后分别用Scala和Java实现word ...
- HBase入门基础教程之单机模式与伪分布式模式安装(转)
原文链接:HBase入门基础教程 在本篇文章中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建HBase伪分布式环境的前提是我们已经搭建好了Had ...
- Hadoop1.X集群完全分布式模式环境部署
Hadoop1.X集群完全分布式模式环境部署 1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distri ...
- Ganglia监控Hadoop集群的安装部署[转]
Ganglia监控Hadoop集群的安装部署 一. 安装环境 Ubuntu server 12.04 安装gmetad的机器:192.168.52.105 安装gmond的机 器:192.168.52 ...
随机推荐
- 释放至强平台 AI 加速潜能 汇医慧影打造全周期 AI 医学影像解决方案
基于英特尔架构实现软硬协同加速,显著提升新冠肺炎.乳腺癌等疾病的检测和筛查效率,并帮助医疗科研平台预防"维度灾难"问题 <PAGE 1 LEFT COLUMN: CUSTOM ...
- 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(2) - 识别当前i.MXRT型号
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(2)之识别当前i.MXRT型号. 文接上篇 <超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM ...
- Docker 运行 SQL Server 容器映像
随着.Net Core迭代,大家也都用上了Linux用上了Docker.跟.Net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始已经支持 ...
- Vue3教程:用 Vue3 开发小程序,这里有一份实际的代码案例!
前言 寻寻觅觅冷冷清清,凄凄惨惨戚戚. Vue 3 发布以后,最近也在学习和写一些 Vue3 的 demo 和项目,我也一直想着什么时候能在小程序里使用新特性? 于是我翻遍了市面上的小程序框架,如 u ...
- VMware虚拟机 - 解决主机每次重启后 VMWare 都无法上网的问题
背景 每次重启自己电脑,重新打开 Vmware 虚拟机,再 ping 百度时,又显示无法 ping 通 但明明已经把 Vmware 的虚拟网卡重置了 那到底要如何解决呢? 解决方案 进入服务界面 将 ...
- 微服务通信之feign的配置隔离
前言 由上文我们知道针对某一个Feign接口,我们可以给他设置特定的配置类.那如果现在有一个服务,我们只想对A服务配置一个拦截器拦截请求而不影响其他服务,那应该怎么做呢? 一.feign接口配置 由前 ...
- arm64大服务器安装ubuntu18看不到安装界面
前言 最近在使用arm的大服务器需要用到ubuntu相关的一些东西,在操作系统安装过程中遇到了一些问题 记录 华为鲲鹏服务器 这个默认安装centos的都很顺利,安装ubuntu18最新的,impi就 ...
- Ceph部署的时候修改默认权重
前言 部署集群的时候权重是默认生成的,这个是根据磁盘大小分配的,我们有的时候需要去修改一下这个默认权重 修改 如果统一的初始值,那么直接添加参数即可 osd_crush_initial_weight ...
- Vue单元测试vue2-jest-coverage的package.json 配置
依赖的版本很重要,不要出错了 devDependencies:{ "babel-core": "^6.26.3", "babel-jest" ...
- MediaCodec编码OpenGL速度和清晰度均衡
## 概述 在安卓平台为了实现h264视频编码,我们通常可以使用libx264, ffmpeg等第三方视频编码库,但是如果对编码的速度有一定的要求,要实现实时甚至超实时的高速视频编码,我们并没有太 ...