搭建Hadoop集群(centos6.7+hadoop-2.7.3)
hadoop集群有三种运行模式:单机模式、伪分布模式、完全分布模式。我们这里搭建第三种完全分布模式,即使用分布式系统,在多个节点上运行。
1 环境准备
1.1 配置DNS
进入配置文件,添加主节点和从节点的ip映射关系:
# vim /etc/hosts 10.0.0.45 master
10.0.0.46 slave1
10.0.0.47 slave2
1.2 关闭防火墙
# service iptables stop //关闭服务
# chkconfig iptables off //关闭开机自启动
1.3 配置免密码登录
(1)每个节点都首先进入/root/.ssh目录下,生成密钥:
# ssh-keygen -t rsa //输入命令之后连续回车就行了
(2)在主节点上,将公钥拷贝到一个特定文件中:
[root@master .ssh]# cp id_rsa.pub authorized_keys
(3)将每个从节点上生成的公钥复制到主节点上:
[root@slave1 .ssh]# scp id_rsa.pub master:/root/.ssh/id_rsa_slave1.pub
[root@slave2 .ssh]# scp id_rsa.pub master:/root/.ssh/id_rsa_slave2.pub
(4)在主节点上合并从节点的公钥:
[root@master .ssh]# cat id_rsa_slave1.pub>>authorized_keys
[root@master .ssh]# cat id_rsa_slave2.pub>>authorized_keys
(5)将主节点上合并后的公钥复制到从节点上:
[root@master .ssh]# scp authorized_keys slave1:/root/.ssh
[root@master .ssh]# scp authorized_keys slave2:/root/.ssh
配置完成,在各个节点上进行ssh访问,若无需密码就能访问,则配置成功。
1.4 配置java环境
首先下载jdk,保存到指定目录。设置环境变量:
# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1..0_112
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile //使配置生效
验证配置是否成功:
# java -vesrion
若出现下面的配置信息则表示java环境配置成功了:

2 部署Hadoop集群
在各个节点上安装与配置Hadoop的过程都基本相同,因此可以在每个节点上安装好Hadoop后,在主节点master上进行统一配置,然后通过scp命令将修改的配置文件拷贝到各个从节点上即可,下面介绍部署过程。
2.1 安装Hadoop
下载hadoop安装包,下载地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/,并解压:
# tar xvf hadoop-2.7..tar.gz
配置环境变量:
# vim /etc/profile export HADOOP_HOME=/home/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
2.2 修改配置文件
进入Hadoop的配置文件目录$HADOOP_HOME/etc/hadoop,可以看到有许多配置文件,Hadoop集群配置主要是对以下几个文件的修改:
core-site.xml
- hdfs-site.xml
- yarn-site.xml
- mapred-site.xml
- slaves、hadoop-env.sh、yarn-env.sh
下面就介绍文件的具体配置,按实际情况修改配置信息:
(1)core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop _tmp</value>
</property>
</configuration>
(2)hdfs-site.xml
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value></value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/dfs_data</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/dfs_name</value>
</property>
<property>
<name>dfs.namenode.rpc-address</name>
<value>master:</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave:</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>slave:</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property> </configuration>
(3)yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value></value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value></value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value></value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
(4)mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)slaves
启动Hadoop集群需要读取该文件,以确定从节点主机名,从而启动DataNode、NodeManager等守护进程,因此需要在该文件中添加从节点主机名。
slave1
slave2
(6)hadoop-env.sh
修改如下内容:
export JAVA_HOME=/usr/java/jdk1..0_112
(7)yarn-env.sh
添加如下内容:
export JAVA_HOME=/usr/java/jdk1..0_112
到此,完成了主节点上所有的配置,只需将这些配置信息复制到各个从节点:
# scp /home/hadoop-2.7./etc/hadoop/* slave1:/home/hadoop-2.7.3/etc/hadoop/
# scp /home/hadoop-2.7.3/etc/hadoop/* slave2:/home/hadoop-2.7.3/etc/hadoop/
2.3 启动Hadoop
(1)第一次启动HDFS时需要初始化,在主节点上执行:
# cd /home/hadoop-2.7.3
# ./bin/hadoop namenode -format
(2)启动HDFS:
# ./sbin/start-dfs.sh
成功启动后,访问http://master:50070/即可看到HDFS Web界面。
(3) 启动YARN:
# ./sbin/start-yarn.sh
成功启动后,访问http://master:8088/即可看到YARN Web界面。

这里也可以直接执行下面的命令一键启动,但第一次启动不建议这样做:
# start-all.sh
到此,Hadoop集群环境已经搭建好了,可以根据自己的业务需求,在上面愉快的“玩耍”了。
搭建Hadoop集群(centos6.7+hadoop-2.7.3)的更多相关文章
- 自己搭建的集群,启动hadoop时slave节点的datanode没有启起来怎么办?
自己搭建的集群,启动hadoop 集群是,发现slave节点的datanode没有启动,查了资料发现是因为我在启动集群前,执行了这个命令: hadoop namenode -format 这个指令会重 ...
- Hadoop集群--linux虚拟机Hadoop安装与配置、克隆虚拟机
Hadoop集群 第四章 Hadoop安装与配置.克隆虚拟机 一.Hadoop安装与配置 1.将hadoop安装包通过Xftp传输到虚拟机的/software目录下 2.进入/software目录下, ...
- 搭建ganglia集群而且监视hadoop CDH4.6
前言 近期在研究云监控的相关工具,感觉ganglia颇有亮点,能从一个集群总体的角度来展现数据. 但是安装过程稍过复杂,相关依赖稍多,故写此文章与大家分享下. 本文不解说相关原理,若想了解请參考其它资 ...
- CentOS7 搭建Ambari-Server,安装Hadoop集群(一)
2017-07-05:修正几处拼写错误,之前没发现,抱歉! 第一次在cnblogs上发表文章,效果肯定不会好,希望各位多包涵. 编写这个文档的背景是月中的时候,部门老大希望我们能够抽时间学习一下Had ...
- virtualbox 虚拟3台虚拟机搭建hadoop集群
用了这么久的hadoop,只会使用streaming接口跑任务,各种调优还不熟练,自定义inputformat , outputformat, partitioner 还不会写,于是干脆从头开始,自己 ...
- 搭建Hadoop集群 (二)
前面的步骤请看 搭建Hadoop集群 (一) 安装Hadoop 解压安装 登录master, 下载解压hadoop 2.6.2压缩包到/home/hm/文件夹. (也可以从主机拖拽或者psftp压缩 ...
- 阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建
准备: 两台配置CentOS 7.3的阿里云ECS服务器: hadoop-2.7.3.tar.gz安装包: jdk-8u77-linux-x64.tar.gz安装包: hostname及IP的配置: ...
- ubuntu16.04搭建hadoop集群环境
1. 系统环境Oracle VM VirtualBoxUbuntu 16.04Hadoop 2.7.4Java 1.8.0_111 master:192.168.19.128slave1:192.16 ...
- hadoop集群监控工具ambari安装
Apache Ambari是对Hadoop进行监控.管理和生命周期管理的基于网页的开源项目.它也是一个为Hortonworks数据平台选择管理组建的项目.Ambari支持管理的服务有: Apache ...
- Hadoop集群的安装与配置(centos 6.5)
一.Hadoop搭建准备(centOs6.5 且每个系统都要有同一个用户,如:hadoop) 1.IP的配置 包括Master和Slaves的IP配置,之间能够相互ping通: 例如: ...
随机推荐
- 最新版solr7.2集群搭建详细步骤
集群:高可用,备份,数据可分片 需要运行4个tomcat 1.tomcat端口号(默认占用8005,8009,8080三个端口) tomcat服务 占用端口 tomcat1 6005.6060.600 ...
- 魔方 NewLife.Cube
魔方 是一个基于 ASP.NET MVC 的 用户权限管理平台,可作为各种信息管理系统的基础框架. 演示:http://cube.newlifex.com 源码 演示账号:admin/admin 源码 ...
- C#学习笔记-备忘录模式
什么是备忘录模式? 备忘录模式(Memento):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态. 这样以后就可将该对象恢复到原先保存的状态. 备忘录模式的组成 Orig ...
- Yii2基本概念之——属性(property)
学习任何一门学问,往往都是从起基本的概念学起.万丈高楼平地起,这些基本概念就是高楼的基石,必须做详尽的分析.我们知道,Yii2是一款脉络清晰的框架,理顺了基础的概念和基本功能,学习更高级和复杂的功能就 ...
- SSM框架开发web项目系列(七) SpringMVC请求接收
前言 在上篇Spring MVC入门篇中,我们初步了解了Spring MVC开发的基本搭建过程,本文将针对实际开发过程的着重点Controller部分,将常用的知识点罗列出来,并配以示例.在这之前,我 ...
- 洛谷 P1471 方差
洛谷 P1471 方差 题目背景 滚粗了的HansBug在收拾旧数学书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的 ...
- Javascrip随笔1
isNaN:指示某个值不是数字 文本字符串中使用反斜杠对代码行进行换行; 在计算机程序中,经常会声明无值的变量.未使用值来声明的变量,其值实际上是 undefined.在执行过以下语句后,变量 car ...
- Java集合源码分析(三)Vevtor和Stack
前言 前面写了一篇关于的是LinkedList的除了它的数据结构稍微有一点复杂之外,其他的都很好理解的.这一篇讲的可能大家在开发中很少去用到.但是有的时候也可能是会用到的! 注意在学习这一篇之前,需要 ...
- [国嵌攻略][103][Linux内核模块基础]
什么是内核模块 Linux内核的整体结构非常庞大,其中包含的组件也非常多,如何使用这些组件.一种方式是把所有的组件都编译进内核文件,即zImage或bzImage,但这样会导致一个问题,占用内存过多. ...
- 一篇文章让你深透理解cookie和session,附带分布式WEB系统redis共享session方案
cookie和session有什么区别?这是一个很基础的知识点,大家可能都知道一个大概:cookie是存在客户端的,session是存储在服务端,cookie和session用来验证识别用户的登录状态 ...