Hadoop全分布式集群搭建(详细)

一、准备物理集群。
1、物理集群搭建方式。
采用搭建3台虚拟机的方式来部署3个节点的物理集群。
2、虚拟机准备。
准备一个已近建好的虚拟机进行克隆。(建议为没进行过任何操作的)
在要选择克隆的虚拟机上右击鼠标,管理,克隆。
在弹出对话框中进行以下操作。
(1)、下一步。

(2)、选择虚拟机中的当前状态,下一步。

(3)、选择创建完整克隆,下一步。

(4)、输入虚拟机名称,下一步。

(5)、克隆完成。

(6)、按照上述步骤再创建一个虚拟机名称为slave02的。
3、虚拟机网络配置。
由于slave01和slave02虚拟机是克隆的,所以要修改这2台虚拟机的网卡信息。
slave01修改如下:
(1)、输入命令:vi /etc/udev/rules.d/70-persistent-net.rules

(2)、输入命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0

(3)、修改主机名,输入命令:vi /etc/sysconfig/network

(4)重启系统,命令:reboot
slave02修改同slave01的,注意:IPADDR不一样,主机名不一样!!!
最后重启所有节点网卡(service network restart),使之生效,保证每台虚拟机能实现和外网连同!!!
还需禁用SELINUX:vi /etc/selinux/config

> 二、集群规划。
1、主机规划:
master00/192.168.169.159:
Namenode,Datanode,ResourceManager,Journalnode,Zookeeper
slave01/192.168.169.160:
Namenode,Datanode,ResourceManager,Journalnode,Zookeeper
slave02/192.168.169.161:
Datanode,Journalnode,Zookeeper
2、软件规划:
JDK1.8
CentOS6.5
Zookeeper3.4.6
Hadoop2.7.3
3、用户规划:
每个节点的hadoop用户组和用户需要自己创建:
master00为hadoop:hadoop
slave01为hadoop:hadoop
slave02为hadoop:hadoop
4、目录规划:
软件存放目录:/home/hadoop/app/
数据日志目录:/home/hadoop/data/
> 三、安装前准备。
1、同步当前系统时间和日期与NTP 一致:
(1)、在线安装ntp:yum install ntp

(2)、执行同步日期时间:ntpdate pool.ntp.org

(3)、查看当前系统时间:date

注意:以上命令需要在每一个节点执行!!!
2、hosts文件检查:
所有节点都需配置以下信息:vi /etc/hosts

3、禁用防火墙:chkconfig iptables off(此为永久关闭,执行后需重启)
检查:service iptables status

4、配置SSH免密码通信
(1)、配置SSH:以下为master00为例配置(slave01和slave02也要执行以下操作)

(2)、将所有节点中的id_rsa.pub复制到master00中的authorized_keys文件中

(3)、将master00中的authorized_keys文件发到所有节点上面。
slave01:

slave02:

通过SSH互相访问,若能通过无密码访问,即SSH配置成功!!!
5、脚本的使用:方便Hadoop分布式集群搭建
(1)、在master00节点上创建/home/hadoop/tools目录

(2)、将脚本上传到此目录下(可以用Xftp工具上传)

deploy.conf脚本:https://blog.51cto.com/14572091/2442729
deploy.sh脚本:https://blog.51cto.com/14572091/2442731
runRemoteCmd.sh脚本:https://blog.51cto.com/14572091/2442728
(3)、为脚本添加权限
[[email protected] tools]$ chmod u+x deploy.sh
[[email protected] tools]$ chmod u+x runRemoteCmd.sh
(4)、配置PATH

(5)、在master00节点上,通过脚本,一键创建所有节点的软件安装目录
runRemoteCmd.sh "mkdir /home/hadoop/app" all

注意:如果主机名和我的不一样,需要修改deploy.conf配置文件
6、hadoop相关软件安装
(1)、JDK安装,上传JDK到app目录下,进行解压

(2),修改文件名称为jdk

(3)、添加JDK环境变量:vi /etc/profile

使配置文件生效:source /etc/profile
(4)、查看JDK是否安装成功 : java -version

出现以上结果说明master00节点的JDK安装成功。
(5)、将master00节点上的JDK安装包复制到其他节点上:deploy.sh jdk /home/hadoop/app/ slave
然后在slave01和slave02节点上重复master00节点上的JDK配置,并且检查是否成功!
7、Zookeeper安装。
(1)、上传zookeeper到app目录并且解压。

(2)、重命名为zookeeper

(3)、修改zookeeper中的配置文件

(4)、通过脚本deploy.sh将zookeeper安装目录复制到其他节点:deploy.sh zookeeper /home/hadoop/app/ slave
(5)、通过脚本runRemoteCmd.sh在所有节点上创建相关目录:
runRemoteCmd.sh "mkdir -p /home/hadoop/data/zookeeper/zkdata" all
runRemoteCmd.sh "mkdir -p /home/hadoop/data/zookeeper/zkdatalog" all

(6)、在3个节点上分别进入zkdata目录下,创建文件myid,内容分别填写为:1, 2, 3,如下图:
master00:

slave01:

slave02:

(7)、配置zookeeper环境变量

使配置生效:source /etc/profile
注意:每个节点都要进行配置!!!
(8)、在master00节点上启动zookeeper

(9)、使用runRemoteCmd.sh脚本,启动所有节点上的zookeeper:
runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh start" zookeeper

(10)、查看所有节点上的QuorumPeerMain进程是否成功:
unRemoteCmd.sh "jps" zookeeper

(11)、查看所有节点上的zookeeper状态
runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh status" zookeeper

如果一个节点为leader,其他节点为follower,说明zookeeper安装成功。
四、Hadoop集群搭建。
1、hadoop软件安装
(1)上传并解压。

(2)、重命名为hadoop

2、hadoop配置及使用HDFS
(1)修改JAVA_HOME的安装目录


(2)、配置core-site.xml文件,以下是我的配置,具体配置请参考hadoop官方文档
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>master00:2181,slave01:2181,slave02:2181</value>
</property>
</configuration>
(3)、配置 hdfs-site.xml文件,以下是我的配置,具体配置请参考hadoop官方文档
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>cluster1</value>
</property>
<property>
<name>dfs.ha.namenodes.cluster1</name>
<value>master00,slave01</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.master00</name>
<value>master00:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.master00</name>
<value>master00:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.slave01</name>
<value>slave01:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.slave01</name>
<value>slave01:50070</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master00:8485;slave01:8485;slave02:8485/cluster1</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.cluster1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/data/journaldata/jn</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>shell(/bin/true)</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>10000</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
</configuration>
(4)、配置slaves文件:主要配置DataNode节点所在的主机名。

(5)、向所有节点分发hadoop安装包
deploy.sh hadoop /home/hadoop/app/ slave
(6)配置hadoop环境变量

使配置生效:source /etc/profile
注意:每个节点都要进行配置!!!

(7)、启动HDFS
1)、启动所有节点上的zookeeper进程

2)、启动所有节点上的Journalnode进程
runRemoteCmd.sh "/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode" all

3)、首先在主节点(如master00)上格式化
bin/hdfs namenode –format

bin/hdfs zkfc –formatZK

bin/hdfs namenode
4)、与此同时,需要在备节点(如slave01)上执行同步数据
bin/hdfs namenode –bootstrapStandby

5)、slave01同步数据完成后,在master00节点上按下Ctrl+C键来结束namenode进程,然后关闭所有节点上的journalnode进程
runRemoteCmd.sh "/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh stop journalnode" all
6)、一键启动HDFS 相关所有进程
sbin/start-dfs.sh
7)、验证HDFS是否安装成功
在浏览器输入网址:http://master00:50070,查看Web界面

在浏览器输入网址:http://slave01:50070,查看Web界面

8)、检测HDFS是否可用
hadoop fs -mkdir /test
hadoop fs -put test.txt /test
hadoop fs -ls /test

3、Hadoop配置使用YARN
(1)、配置mapred-site.xml文件,以下是我的配置,具体配置请参考hadoop官方文档
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(2)、配置yarn-site.xml 文件,以下是我的配置,具体配置请参考hadoop官方文档
<configuration>
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value>2000</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-rm-cluster</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>master00</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>slave01</value>
</property>
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.zk.state-store.address</name>
<value>master00:2181,slave01:2181,slave02:2181</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>master00:2181,slave01:2181,slave02:2181</value>
</property>
<property>
<name>yarn.resourcemanager.address.rm1</name>
<value>master00:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm1</name>
<value>master00:8034</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>master00:8088</value>
</property>
<property>
<name>yarn.resourcemanager.address.rm2</name>
<value>slave01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm2</name>
<value>slave01:8034</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>slave01:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
(3)、启动YARN
1)、在master00上执行启动YARN命令
sbin/start-yarn.sh
2)、在slave01上执行启动YARN命令
sbin/yarn-daemon.sh start resourcemanager
3)、在浏览器打开Web界面查看
http://master00:8088

http://slave01:8088

4)、检查ResourceManager状态
bin/yarn rmadmin -getServiceState rm1
bin/yarn rmadmin -getServiceState rm2
5)、运行WordCount测试
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test/test.txt /test/out/
查看作业执行状态

如果无异常,说明YARN安装成功
至此Hadoop分布式集群搭建成功!!!

原文地址:https://blog.51cto.com/14572091/2445696

时间: 2024-11-09 06:41:10

Hadoop全分布式集群搭建(详细)的相关文章

Hadoop全分布式集群环境配置

Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错的特点,并且设计用来部署在低廉的(low-cost)硬件上:而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序.HDFS

Hadoop伪分布式集群搭建总结

Hadoop伪分布式集群搭建总结 一.所需软件VMware15!CentOS6.5JDK1.8Hadoop2.7.3二.安装注意:对文件进行编辑:输入a,表示对该文件进行编辑,最后保存该文件,操作为:点击键盘上的Esc按钮,然后输入英文的:字符,再输入wq,点击回车,完成文件的保存.1.关闭防火墙和禁用SELINUX(1).永久关闭防火墙,重启Linux系统(2) .禁用SELINUX:修改文件参数 重启Linux使其生效(3).检查防火墙是否运行,显示下图即为关闭2.配置hostname与IP

Hadoop伪分布式集群搭建-此文章在个人51.cto转载

一.HDFS伪分布式环境搭建 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.它和现有的分布式文件系统有很多共同点.但同时,它和其他的分布式文件系统的区别也是很明显的.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用.HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的.HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架

Hadoop完全分布式集群搭建

Hadoop的运行模式 Hadoop一般有三种运行模式,分别是: 单机模式(Standalone Mode),默认情况下,Hadoop即处于该模式,使用本地文件系统,而不是分布式文件系统.,用于开发和调试. 伪分布式模式(Pseudo Distrubuted Mode),使用的是分布式文件系统,守护进程运行在本机机器,模拟一个小规模的集群,在一台主机模拟多主机,适合模拟集群学习. 完全分布式集群模式(Full Distributed Mode),Hadoop的守护进程运行在由多台主机搭建的集群上

hadoop伪分布式集群搭建与安装(ubuntu系统)

1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链接成功了: 3:修改主机的名称vi /etc/hostname和域名和主机映射对应的关系 vi /etc/hosts,改过之后即生效,自己可以ping一下,我这里ip对应master,比如ping master之后发现可以ping通即可: 4:修改过主机名称和主机名与ip对应的关系之后:开始上传jd

Hadoop(二)——分布式集群搭建

前两天和一个朋友在聊天的时候说,很多自学Hadoop的朋友80%都会夭折在集群环境的搭建上,原因吗无在乎:1,没有很好的电脑配置,不能像机房一样用多台电脑搭建起集群:2,对linux的不熟悉,各种小黑窗,linux命令--:3,环境搭建的反锁步骤,需要耐心+细心+认真等等吧.不过吗,我觉的,只要敢于坚持,敢于付出都是会成功的.下边讲述一下我的Hadoop集群搭建过程,由于条件有限,也是在虚拟机中进行的. 一,准备资料: 1,一台笔记本:I5的CPU,4G内存,500硬盘(内存有些小,运行的时候比

基于Hadoop的数据分析综合管理平台之Hadoop、HBase完全分布式集群搭建

能够将热爱的技术应用于实际生活生产中,是做技术人员向往和乐之不疲的事. 现将前期手里面的一个项目做一个大致的总结,与大家一起分享.交流.进步.项目现在正在线上运行,项目名--基于Hadoop的数据分析综合管理平台. 项目流程整体比较清晰,爬取数据(txt文本)-->数据清洗-->文本模型训练-->文本分类-->热点话题发现-->报表"实时"展示,使用到的技术也是当今互联网公司常用的技术:Hadoop.Mahout.HBase.Spring Data Had

Hadoop 分布式集群搭建 &amp; 配置

一. 安装Java Java下载 官网下载合适的jdk,本人使用的是jdk-7u79-linux-x64.tar.gz,接下来就以该版本的jdk为例,进行Java环境变量配置 创建Java目录 在/usr/local目录下创建java目录,用于存放解压的jdk cd /usr/local mkdir java 解压jdk 进入java目录 cd java tar zxvf jdk-7u79-linux-x64.tar.gz 配置环境变量 编辑profile文件 cd /etc vim profi

阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里云ECS服务器:master, slave1, slave2 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz ZooKeeper: zookeeper-3.4.14.tar.gz 1.2 各节点角色