Hadoop完全分布式集群搭建
Hadoop的运行模式
Hadoop一般有三种运行模式,分别是:
- 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统。,用于开发和调试。
- 伪分布式模式(Pseudo Distrubuted Mode),使用的是分布式文件系统,守护进程运行在本机机器,模拟一个小规模的集群,在一台主机模拟多主机,适合模拟集群学习。
- 完全分布式集群模式(Full Distributed Mode),Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。
这里介绍的就是如何搭建一个Hadoop完全分布式集群。
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
安装环境介绍
准备了四个服务器,IP为192.168.0.236、192.168.0.237、192.168.0.238、192.168.0.239,其中192.168.0.236作为主节点,其他3个作为从节点。具体版本信息如下:
- CentOS 7.4
- JDK 8
- Hadoop 2.10.0
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
准备安装环境
设置主机名
在各个服务器上修改对应的主机名:
#在192.168.0.236上执行:
hostnamectl set-hostname onemore-hadoop-master
#在192.168.0.237上执行:
hostnamectl set-hostname onemore-hadoop-slave1
#在192.168.0.238上执行:
hostnamectl set-hostname onemore-hadoop-slave2
#在192.168.0.239上执行:
hostnamectl set-hostname onemore-hadoop-slave3
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
关闭SELINUX
编辑/etc/selinux/config文件:
vi /etc/selinux/config
把
SELINUX=enforcing
修改为:
SELINUX=disabled
重启服务器
reboot
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
设置hosts
cat >> /etc/hosts <<EOF
192.168.0.236 onemore-hadoop-master
192.168.0.237 onemore-hadoop-slave1
192.168.0.238 onemore-hadoop-slave2
192.168.0.239 onemore-hadoop-slave3
EOF
关闭防火墙
停止防火墙
systemctl stop firewalld.service
禁止防火墙开机启动
systemctl disable firewalld.service
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
设置免密登录
分布式集群搭建需要主节点能够免密登录至各个从节点上。因此,需要在主节点上生成公钥,把将主节点的公钥在从节点中加入授权。
- 在192.168.0.236上生成公钥。
ssh-keygen -t rsa
- 在192.168.0.236上,把公钥发送到各个从节点
scp ~/.ssh/id_rsa.pub 192.168.0.237:~/.ssh
scp ~/.ssh/id_rsa.pub 192.168.0.238:~/.ssh
scp ~/.ssh/id_rsa.pub 192.168.0.239:~/.ssh
这时还不是免密登录登录的,需要输入用户名和密码。
- 将公钥追加到各个从节点的授权里。
在每个从节点执行一下命令:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
安装JDK
参见之前的《详解在Linux系统中安装JDK》,这里就不再赘述了。
Hadoop环境配置
主节点配置
下载Hadoop
从北京理工大学的镜像上下载Hadoop:
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz
创建文件夹
mkdir /usr/local/hadoop
解压
tar -xzvf hadoop-2.10.0.tar.gz -C /usr/local/hadoop
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
配置环境变量
追加Hadoop的环境变量到/etc/profile文件中
cat >> /etc/profile <<EOF
#Hadoop
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.10.0
export PATH=\$PATH:\$HADOOP_HOME/bin
EOF
使环境变量生效
source /etc/profile
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
修改配置文件
修改core-site.xml配置文件
vi /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/core-site.xml
修改其内容为:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://onemore-hadoop-master:9000</value>
</property>
</configuration>
修改hdfs-site.xml配置文件
vi /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/hdfs-site.xml
修改其内容为:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdfs/data</value>
</property>
</configuration>
复制mapred-site.xml.template为mapred-site.xml
cp /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml
再修改mapred-site.xml配置文件
vi /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml
修改其内容为:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>http://onemore-hadoop-master:9001</value>
</property>
</configuration>
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
修改yarn-site.xml配置文件
vi /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/yarn-site.xml
修改其内容为:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>onemore-hadoop-master</value>
</property>
</configuration>
新建masters配置文件
vi /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/masters
新增内容为:
onemore-hadoop-master
配置slaves文件
vi /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/slaves
修改其内容为:
onemore-hadoop-slave1
onemore-hadoop-slave2
onemore-hadoop-slave3
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
从节点配置
下面以onemore-hadoop-slave1从节点为例进行叙述,您需参照以下步骤完成onemore-hadoop-slave2和onemore-hadoop-slave3从节点的配置。
下载Hadoop
还是从北京理工大学的镜像上下载Hadoop(如果下载速度慢,可以在主节点上发送到从节点):
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz
创建文件夹
mkdir /usr/local/hadoop
解压
tar -xzvf hadoop-2.10.0.tar.gz -C /usr/local/hadoop
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
配置环境变量
追加Hadoop的环境变量到/etc/profile文件中
cat >> /etc/profile <<EOF
#Hadoop
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.10.0
export PATH=\$PATH:\$HADOOP_HOME/bin
EOF
使环境变量生效
source /etc/profile
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
修改配置文件
删除slaves文件
rm -rfv /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/slaves
在主节点上把5个配置文件发送到从节点上
scp -r /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/core-site.xml onemore-hadoop-slave1:/usr/local/hadoop/hadoop-2.10.0/etc/hadoop/
scp -r /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/hdfs-site.xml onemore-hadoop-slave1:/usr/local/hadoop/hadoop-2.10.0/etc/hadoop/
scp -r /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml onemore-hadoop-slave1:/usr/local/hadoop/hadoop-2.10.0/etc/hadoop/
scp -r /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/yarn-site.xml onemore-hadoop-slave1:/usr/local/hadoop/hadoop-2.10.0/etc/hadoop/
scp -r /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/masters onemore-hadoop-slave1:/usr/local/hadoop/hadoop-2.10.0/etc/hadoop/
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
启动Hadoop集群
格式化namenode
第一次启动服务前需要执行词操作,以后就不需要执行了。
hadoop namenode -format
启动hadoop
/usr/local/hadoop/hadoop-2.10.0/sbin/start-all.sh
访问http://onemore-hadoop-master:50070/,就可以查看Hadoop集群的相关信息了,如图:
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
常用命令
查看Hadoop集群的状态
hadoop dfsadmin -report
重启Hadoop
/usr/local/hadoop/hadoop-2.10.0/sbin/stop-all.sh
/usr/local/hadoop/hadoop-2.10.0/sbin/start-all.sh
启动dfs服务
/usr/local/hadoop/hadoop-2.10.0/sbin/start-dfs.sh
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
常见错误
Error: JAVA_HOME is not set and could not be found.
这个错误大概意思是没有找到JDK的环境变量,可以修改hadoop-env.sh。
vi /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/hadoop-env.sh
增加JDK的环境变量,比如:
export JAVA_HOME=/usr/local/java/jdk1.8.0_231
因为是在主节点上修改的,还需要发送到各个从节点:
scp -r /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/hadoop-env.sh onemore-hadoop-slave1:/usr/local/hadoop/hadoop-2.10.0/etc/hadoop/
scp -r /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/hadoop-env.sh onemore-hadoop-slave2:/usr/local/hadoop/hadoop-2.10.0/etc/hadoop/
scp -r /usr/local/hadoop/hadoop-2.10.0/etc/hadoop/hadoop-env.sh onemore-hadoop-slave3:/usr/local/hadoop/hadoop-2.10.0/etc/hadoop/
欢迎关注微信公众号:万猫学社,每周一分享Java技术干货。
Hadoop完全分布式集群搭建的更多相关文章
- hadoop伪分布式集群搭建与安装(ubuntu系统)
1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链 ...
- 大数据之Hadoop完全分布式集群搭建
1.准备阶段 1.1.新建三台虚拟机 Hadoop完全分市式集群是典型的主从架构(master-slave),一般需要使用多台服务器来组建.我们准备3台服务器(关闭防火墙.静态IP.主机名称).如果没 ...
- 基于Hadoop伪分布式集群搭建Spark
一.前置安装 1)JDK 2)Hadoop伪分布式集群 二.Scala安装 1)解压Scala安装包 2)环境变量 SCALA_HOME = C:\ProgramData\scala-2.10.6 P ...
- Hadoop学习笔记(一):ubuntu虚拟机下的hadoop伪分布式集群搭建
hadoop百度百科:https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin hadoop官网:http://hadoop.apache.org/ ...
- hadoop 完全分布式集群搭建
1.在伪分布式基础上搭建,伪分布式搭建参见VM上Hadoop3.1伪分布式模式搭建 2.虚拟机准备,本次集群采用2.8.3版本与3.X版本差别不大,端口号所有差别 192.168.44.10 vmho ...
- linux运维、架构之路-Hadoop完全分布式集群搭建
一.介绍 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件 ...
- Hadoop伪分布式集群搭建
声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 1.下载Hadoop压缩包 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop- ...
- hadoop HA分布式集群搭建
概述 hadoop2中NameNode可以有多个(目前只支持2个).每一个都有相同的职能.一个是active状态的,一个是standby状态的.当集群运行时,只有active状态的NameNode是正 ...
- centos7+hadoop完全分布式集群搭建
Hadoop集群部署,就是以Cluster mode方式进行部署.本文是基于JDK1.7.0_79,hadoop2.7.5. 1.Hadoop的节点构成如下: HDFS daemon: NameN ...
随机推荐
- js在字符串中加入一段字符串
在这个功能的实现主要是slice()方法的掌握 arrayObject.slice(start,end) start 必需.规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位置.也就是说 ...
- lqb 基础练习 杨辉三角形
基础练习 杨辉三角形 时间限制:1.0s 内存限制:256.0MB 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数. 它的一个重要性质是:三角形中的 ...
- .NET Core 3 WPF MVVM框架 Prism系列之数据绑定
一.安装Prism 1.使用程序包管理控制台 Install-Package Prism.Unity -Version 7.2.0.1367 也可以去掉‘-Version 7.2.0.1367’获取最 ...
- 深度剖析Javascript执行环境、作用域链
一.执行环境 执行环境(也叫做执行上下文,Execution Context)是Javascript中最为重要的一个概念.执行环境定义了变量或函数有权访问其他数据,决定了它们各自的行为.每个执行环境都 ...
- 力扣(LeetCode)移除链表元素 个人题解
删除链表中等于给定值 val 的所有节点. 这题粗看并不困难,链表的特性让移除元素特别轻松,只用遇到和val相同的就跳过,将指针指向下一个,以此类推. 但是,一个比较麻烦的问题是,当链表所有元素都和v ...
- python:模块1——标准库简介
一.文档 windows系统:IDLE中打开帮助文档 Tutorial:简单入门 Library Reference:python内置函数和标准库(看不完的,当做字典来查)(此外还有pypi(拍派社区 ...
- InfluxDB 聚合函数实用案例
InfluxDB 聚合函数实用案例 文章大纲 InfluxDB 简介 InfluxDB是GO语言编写的分布式时间序列化数据库,非常适合对数据(跟随时间变化而变化的数据)的跟踪.监控和分析.在我们的项目 ...
- 【阿里巴巴-高德-汽车事业部】【内推】Java技术专家、前端技术专家、C++技术专家(长期招聘)
简历接收邮箱:yx185737@alibaba-inc.com 邮件请备注来自CSDN 一.Java技术专家 职位描述 研究汽车智能化和在线服务前沿技术,从事在线数据服务和车联网服务的设计和研发 负责 ...
- 如何配置tomcat的环境变量
如何配置tomcat的环境变量 安装好tomcat之后, 按照这个操作,计算机→属性→高级系统设置→高级→环境变量,打开环境变量设置框. 以本人的tomcat 8.0为例:安装下来如图 那么我的tom ...
- es6 filter方法应用
let arr =[ {title:'aaaa',read:100,hot:true}, {title:'bbbb',read:50,hot:false}, {title:'ccc',read:100 ...