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)的更多相关文章

  1. 自己搭建的集群,启动hadoop时slave节点的datanode没有启起来怎么办?

    自己搭建的集群,启动hadoop 集群是,发现slave节点的datanode没有启动,查了资料发现是因为我在启动集群前,执行了这个命令: hadoop namenode -format 这个指令会重 ...

  2. Hadoop集群--linux虚拟机Hadoop安装与配置、克隆虚拟机

    Hadoop集群 第四章 Hadoop安装与配置.克隆虚拟机 一.Hadoop安装与配置 1.将hadoop安装包通过Xftp传输到虚拟机的/software目录下 2.进入/software目录下, ...

  3. 搭建ganglia集群而且监视hadoop CDH4.6

    前言 近期在研究云监控的相关工具,感觉ganglia颇有亮点,能从一个集群总体的角度来展现数据. 但是安装过程稍过复杂,相关依赖稍多,故写此文章与大家分享下. 本文不解说相关原理,若想了解请參考其它资 ...

  4. CentOS7 搭建Ambari-Server,安装Hadoop集群(一)

    2017-07-05:修正几处拼写错误,之前没发现,抱歉! 第一次在cnblogs上发表文章,效果肯定不会好,希望各位多包涵. 编写这个文档的背景是月中的时候,部门老大希望我们能够抽时间学习一下Had ...

  5. virtualbox 虚拟3台虚拟机搭建hadoop集群

    用了这么久的hadoop,只会使用streaming接口跑任务,各种调优还不熟练,自定义inputformat , outputformat, partitioner 还不会写,于是干脆从头开始,自己 ...

  6. 搭建Hadoop集群 (二)

    前面的步骤请看  搭建Hadoop集群 (一) 安装Hadoop 解压安装 登录master, 下载解压hadoop 2.6.2压缩包到/home/hm/文件夹. (也可以从主机拖拽或者psftp压缩 ...

  7. 阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建

    准备: 两台配置CentOS 7.3的阿里云ECS服务器: hadoop-2.7.3.tar.gz安装包: jdk-8u77-linux-x64.tar.gz安装包: hostname及IP的配置: ...

  8. ubuntu16.04搭建hadoop集群环境

    1. 系统环境Oracle VM VirtualBoxUbuntu 16.04Hadoop 2.7.4Java 1.8.0_111 master:192.168.19.128slave1:192.16 ...

  9. hadoop集群监控工具ambari安装

    Apache Ambari是对Hadoop进行监控.管理和生命周期管理的基于网页的开源项目.它也是一个为Hortonworks数据平台选择管理组建的项目.Ambari支持管理的服务有: Apache ...

  10. Hadoop集群的安装与配置(centos 6.5)

    一.Hadoop搭建准备(centOs6.5  且每个系统都要有同一个用户,如:hadoop)     1.IP的配置 包括Master和Slaves的IP配置,之间能够相互ping通:  例如:   ...

随机推荐

  1. this语句

    this语句 this语句调用构造器 原    因: 代码功能重复,重复会导致代码维护性低. 如何使用:this([实参]); 注意事项:构造器重载的调用,this(参数)必须写在构造方法第一行,因此 ...

  2. 常用Atom插件列表

    1.simplified-chinese-menu Atom的简体中文语言包,完整汉化,兼容所有已发布的版本Atom. 2.tree-view-finder 左边菜单栏显示方式,类似Mac OS下的f ...

  3. Effective Java 第三版——19. 如果使用继承则设计,并文档说明,否则不该使用

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  4. Java实现 中文转换成Unicode编码 和 Unicode编码转换成中文

    想要实现中文字符转换为Unicode编码的话主要用到的是一个这样的包,自己可以去API文档里面查看下的 java.util.Properties; 直接进入主题吧,主要是 package Test01 ...

  5. Python模块之信号学习(signal)

    信号概述 在学习Python前应该学习下Linux下的信号,软中断信号(signal,又简称为信号)用来通知进程发生了异步事件.进程之间可以互相通过系统调用kill发送软中断信号.内核也可以因为内部事 ...

  6. 洛谷 P3370 【模板】字符串哈希

    洛谷 P3370 [模板]字符串哈希 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的 ...

  7. cs231n spring 2017 lecture12 Visualizing and Understanding 听课笔记

    这一节课很零碎. 1. 神经网络到底在干嘛? 浅层的是具体的特征(比如边.角.色块等),高层的更抽象,最后的全连接层是把图片编码成一维向量然后和每一类标签作比较.如果直接把图片和标签做像素级的最近领域 ...

  8. Java异常抛出及try,catch应用实例

    class lanpingException extends Exception { lanpingException(String msg) { super(msg); } } class maoy ...

  9. zoj 3228:Searching the String

    Description Little jay really hates to deal with string. But moondy likes it very much, and she's so ...

  10. POJ 3624 Charm Bracelet(01背包裸题)

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 38909   Accepted: 16862 ...