Hadoop分布式集群搭建
layout: "post"
title: "Hadoop分布式集群搭建"
date: "2017-08-17 10:23"
catalog: true
---
基础环境
## 环境准备
1,软件版本
(1)在VMWare上面跑了三台虚拟机:CentOS7,系统内核3.10
(2)三台虚拟机的IP:192.168.102.3,192.168.102.4,192.168.102.5。三台机器分别作为hadoop的master,slaveA,slaveB。
(3)jdk1.8。
(4)hadoop2.7.3.download:http://apache.claz.org/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
2,hostname设置
设置每台主机的hostname,这个文件位置随着系统的不同而不同,下面是CentOS7的hostname文件位置。
#vim /etc/hostname
文件中添加
Master
相应的其它两台机器设置此文件中的内容为SlaveA,SlaveB,重启有效,在下一步重启。
3, hosts配置(ip-hostname映射)
vim /etc/hosts
192.168.102.3 Master
192.168.102.4 SlaveA
192.168.102.5 SlaveB
三台机器都需要做相同的设置,然后重启三台机器,让文件修改生效。
## SSH免密登录
一,关闭防火墙和SELINUX
配置ssh免密登录首先需要关闭防火墙和SELINUX。
1,我这里在本机CentOS7中进行了永久的防火墙关闭
关闭防火墙(其它的发行版关闭防火墙的命令是不同的)
//永久关闭防火墙
#chkconfig firewalld off
//查看防火墙状态
#systemctl status firewalld
关闭SELINUX
vim /etc/SELINUX/config
//注释掉所有,然后添加下面一行
SELINUX=disabled
以上两个步骤在三台机器中都要进行配置和设置。
二,配置ssh的免密登录
#cd ~/.ssh
#ssh-keygen -t rsa
//生成密钥的过程连续输入回车即可。
上述命令完成后~/.ssh目录中会多出id_rsa和id_rsa.pub文件。
1,配置master可以免密登录本机master
//将id_rsa.pub的文件内容追加到文件authorized_keys中
#cd ~/.ssh
#cat id_rsa.pub>>authorized_keys
这个时候使用以下命令登录主机master应该是不用输入密码可以直接登录的。
ssh master
2,配置master可以免密登录slaveA
//将master的id_rsa.pub拷贝到slaveA
#scp ~/.ssh/id_rsa.pub root@slaveA:/root/
//登录到slaveA,将拷贝过来的id_rsa.pub内容追加到~/.ssh/authorized_keys
#cd ~
#cat id_rsa.pub>>.ssh/authorized_keys
这个回到主机master进行登录主机slavaA是不用输入密码的。
ssh slaveA
3,配置master可以免密登录slaveB
这个过程和第二步中免密登录slaveA是同样的操作。
# Hadoop集群搭建
master环境搭建
1,下载hadoop2.7.3,然后进行解压
2,将hadoop系列命令加入PATH路径
#vim /etc/profile
//HADOOP_HOME变量的值换成自己的路径
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
3,配置core-site.xml
#vim $HADOOP_HOME/etc/hadoop/core-site.xml
//添加如下内容
<configuration>
<!--
指定hadoop临时目录,否则默认是在/tmp下面,这个目录每次系
统重启后会删除,所以每次启动hadoop都要执行namenode格式化。
这里的目录需要自己创建。
-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary
directories.</description>
</property>
<!--设定namenode的ip/host和port,这里host换成你自己的
hostname
-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
4,配置hdfs-site.xml
#vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
//添加如下内容
<configuration>
//设定数据的复制份数,因为我这里有两台slave,所以设置为2
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
//设置namenode节点的数据存储目录,这个目录需要自己创建
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>
//设置datanode节点的数据存储目录,这个目录需要自己创建
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdfs/data</value>
</property>
</configuration>
5,配置mapred-site.xml
#cd $HADOOP_HOME/etc/hadoop
#cp mapred-site.xml.default mapred-site.xml
#vim mapred-site.xml
//添加以下内容
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>http://master:9001</value>
</property>
</configuration>
6,配置yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
//指定resourceManager节点
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
7,配置slavas文件
#cd $HADOOP_HOME/etc/hadoop
#vim slaves
//添加两台slave
slaveA
slaveB
slaves环境搭建
这里配置slave的环境将master中配置好的hadoop目录中多有文件复制过来即可,包括复制hadoop目录和自己创建的数据目录,这里使用scp命令进行远程复制。
1,复制hadoop目录
#scp $HADOOP_HOME root@slaveA:$HADOOP_HOME/..
#scp $HADOOP_HOME root@slaveB:$HADOOP_HOME/..
2,复制data目录
同样使用scp命令将master中创建的data目录和tmp目录复制到两个slave中。
至此hadoop集群搭建完成,下面进行测试。
启动Hadoop
1,第一次启动需要进行格式化。
#hdfs namenode -format
2,启动hadoop集群,下面命令在master中进行
#start-all.sh
使用jsp命令查看在各个机器中的进程,如果显示以下进程则说明配置正确。
#jsp
master中进程
NameNode
SecondaryNameNode
ResourceManager
slave中进程
DataNode
NodeManager
Hadoop分布式集群搭建的更多相关文章
- Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04
前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...
- hadoop分布式集群搭建(2.9.1)
1.环境 操作系统:ubuntu16 jdk:1.8 hadoop:2.9.1 机器:3台,master:192.168.199.88,node1:192.168.199.89,node2:192.1 ...
- Hadoop分布式集群搭建_1
Hadoop是一个开源的分布式系统框架 一.集群准备 1. 三台虚拟机,操作系统Centos7,三台主机名分别为k1,k2,k3,NAT模式 2.节点分布 k1: NameNode DataNode ...
- hadoop分布式集群搭建前期准备(centos7)
那玩大数据,想做个大数据的从业者,必须了解在生产环境下搭建集群哇?由于hadoop是apache上的开源项目,所以版本有些混乱,听说都在用Cloudera的cdh5来弄?后续研究这个吧,就算这样搭建不 ...
- [过程记录]Centos7 下 Hadoop分布式集群搭建
过程如下: 配置hosts vim /etc/hosts 格式: ip hostname ip hostname 设置免密登陆 首先:每台主机使用ssh命令连接其余主机 ssh 用户名@主机名 提示是 ...
- Centos 7下Hadoop分布式集群搭建
一.关闭防火墙(直接用root用户) #关闭防火墙 sudo systemctl stop firewalld.service #关闭开机启动 sudo systemctl disable firew ...
- 使用Docker在本地搭建Hadoop分布式集群
学习Hadoop集群环境搭建是Hadoop入门必经之路.搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装多个虚拟 ...
- 分布式计算(一)Ubuntu搭建Hadoop分布式集群
最近准备接触分布式计算,学习分布式计算的技术栈和架构知识.目前的分布式计算方式大致分为两种:离线计算和实时计算.在大数据全家桶中,离线计算的优秀工具当属Hadoop和Spark,而实时计算的杰出代表非 ...
- 大数据系列之Hadoop分布式集群部署
本节目的:搭建Hadoop分布式集群环境 环境准备 LZ用OS X系统 ,安装两台Linux虚拟机,Linux系统用的是CentOS6.5:Master Ip:10.211.55.3 ,Slave ...
随机推荐
- 391.FANUC宏程序编程
运算符 运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值.注意,不能使用不等号 运算符 含义 EQ 等于(=) NE 不等于 GT 大于 GE 大于或等于 LT 小 ...
- 企业QQ客服的添加
商城项目需要用腾讯的企业QQ客服,但默认提供的是一个链接,点击后弹出一个新页面, 请确认 确认打开QQ与营销QQ4009928310对话? 点确认才弹出聊天窗口,并不是需求想要的效果,经过一番折腾联系 ...
- (Android)Wifi-Direct直连
因项目需要Pad端和手机端交互,采用wifi直连.查阅资料,大概写下一些资料和收获吧.注:大公司的代码带不出来,我也比较懒不想再认真去写一遍了,所以大概这个意思哦. wifi直连也叫做wifi设备点对 ...
- 深入 HTML5 Web Worker 应用实践:多线程编程
深入 HTML5 Web Worker 应用实践:多线程编程 HTML5 中工作线程(Web Worker)简介 至 2008 年 W3C 制定出第一个 HTML5 草案开始,HTML5 承载了越来越 ...
- python基础(5):数字和字符串类型
今天总结一下数据类型中的数字和字符串型. 预习: 小练习 一.数字(int,float) 在python3中数字类型只有整形,浮点型,复数.而复数在平时的编程中几乎用不到所以我们只要掌握整形和浮点型即 ...
- Linux工具之bc计算器进制的转换
bc是Linux下的命令行式的计算器. 题目虽然叫任意进制,但是因为bc的限制,输入进制是2~16范围:输出进制是2~999范围.这与常见计算器的进制范围是一致的,比如windows计算器最高也只能处 ...
- Python中的元类(metaclass)
推荐+收藏:深刻理解Python中的元类(metaclass) 做一些笔记学习学习: 在大多数编程语言中,类就是用来描述如何生成一个对象的代码段,在Python中类也是一个对象,这个(类)对象自身拥有 ...
- CSS学习笔记一:css 画平面图形
最近在学习CSS,先从CSS画点平面图形入手,发现除了正方形.长方形此类比较简单,只要有长宽设置恰当即可,画圆要涉及radius,然后恢复到做界面的最讨厌的状态了,不断的修改设值,调整数据,所幸并不多 ...
- serv-u中如何映射网络驱动器
用一台机器作服务器,但硬盘空间不足,想通过影射网络驱动器来实现ftp的空间扩容! 如何映射网络硬盘或文件? 首先打开我的电脑--工具选项--映射网络驱动器: 如图示: 在文件夹输入映射路径:\\XXX ...
- (转) Spring Boot JDBC 连接数据库
文本将对在Spring Boot构建的Web应用中,基于MYSQL数据库的几种数据库连接方式进行介绍. 包括JDBC.JPA.MyBatis.多数据源和事务. 1 JDBC 连接数据库 1.1 属性配 ...