1.环境准备

1.1 硬件配置

设备名 参数
数量 6台
系统 centos6.5
内存 64G
硬盘 32T/台
CPU 16核/台

1.2 软件版本

Hadoop-2.x 下载地址

JDK1.7  下载地址

至此搭建Hadoop集群的条件准备OK了。

2.创建Hadoop用户

在管理Hadoop集群时,不推荐使用root用户去操作,我们可以通知运维,叫他创建一个hadoop用户去专门用于维护和管理集群。

useradd hadoop
passwd hadoop

同时通知运维给hadoop用户开通sudo权限。

hadoop    ALL=(ALL:ALL)    ALL

这样创建完用户后,我们接下来是在该用户下安装ssh,然各个服务器之间能够实现免密码登录。

3.SSH安装

a.首先在hadoop用户下安装ssh,保证服务器之间能够免密码登录

b.关闭各个服务器的内网防火墙,在外网由运维统一配置防火墙。

注:若不关闭防火墙,后面启动集群会由于权限不足导致启动失败

安装命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

注:在hadoop用户下,需要给authorized_keys赋予600的权限,不然免密码登陆无效

chmod  authorized_keys

这样免密码登录就算完成了。

注:每天服务器安装完ssh后,需登录一次ssh,不然know_hosts木有记录,其他集群启动会出现can't be established

关闭防火墙:

chkconfig  iptables off

这样第三步就ok了。接下来是安装JDK

4.安装JDK

将下载的jdk包解压到指定位置,然后配置环境变量即可:

sudo vi /etc/profile
JAVA_HOME=/usr/jdk1.
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

然后让配置文件立即生效:

. /etc/profile (或source /etc/profile)

验证:

[hadoop@cloud001 portal]$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) -Bit Server VM (build 24.71-b01, mixed mode)

5. 配置hadoop

将下载的hadoop-2.5.1安装包解压到指定的位置,然后配置etc目下的文件和环境变量,首先我们先配置环境变量:

sudo vi /etc/profile
HADOOP_DEV_HOME=/home/hadoop/source/hadoop-2.5.
HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
YARN_HOME=${HADOOP_DEV_HOME}
HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_DEV_HOME/bin:$HADOOP_DEV_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin
export JAVA_HOME CLASSPATH PATH HADOOP_DEV_HOME HADOOP_MAPARED_HOME HADOOP_COMMON_HOME HADOOP_HDFS_HOME YARN_HOME HADOOP_CONF_DIR HDFS_CONF_DIR YARN_CONF_DIR

(1)修改hadoop-env.sh的JAVA_HOME

export JAVA_HOME=/usr/jdk1.

(2)配置hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value></value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.dataname.data.dir</name>
<value>file:///home/hadoop/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>10.211.55.12:</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

(3)配置core-site.xml

<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://10.211.55.12:9000</value>
</property>
</configuration>

(4)配置mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>10.211.55.12:</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>10.211.55.12:</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>10.211.55.12:</value>
</property>
<property>
<name>mapreduce.jobtracker.address</name>
<value>10.211.55.12:</value>
</property>
</configuration>

(5)配置yarn-env.sh

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.address</name>
<value>10.211.55.12:</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.211.55.12:</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>10.211.55.12:</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.211.55.12:</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>10.211.55.12:</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>

(6)复制mapred-queues.xml文件

cp mapred-queues.xml.template mapred-queues.xml

(7)设置master和slaver

master文件:cloud001

slaver文件:cloud002,cloud003,cloud004,cloud005,cloud006

(8)配置hosts

10.211.55.12 cloud001

10.211.55.15 cloud002

10.211.55.16 cloud003

10.211.55.19 cloud004

10.211.55.34 cloud005

10.211.55.22 cloud006

接着我们将配置好的资源打包分发到其他服务器。

6.分发资源

使用scp命令将配置好的资源分发的其他服务器上。

7.启动集群

到这里所有的准备工作已完成了,我们可以启动集群了,这里需要注意的是,hadoop2.x和hadoop1.x不一样的地方是,启动不着是start-all.sh,当然这个命令也是可以用的,但是这里不推荐使用,在hadoop2.x中,官方对启动命令做了优化,推荐使用start-dfs.sh和start-yarn.sh。下面我给出一个完整的启动过程:

格式化节点(首次启动):

hadoop namenode –format

启动所有节点:

start-dfs.sh

启动资源管理:

start-yarn.sh

注:在hadoop2.x中,由于hadoop的设计变了,相对hadoop1.x在HDFS上添加了一层yarn来管理,所以启动之后所有的资源交由yarn来管理。

添加代理(负载均衡):

yarn-daemons.sh start proxyserver

查看启动集群的简要概括:

hadoop dfsadmin –report

最后我们可以输入JPS命令来查看:

[hadoop@cloud001 portal]$ jps
ResourceManager
NameNode
SecondaryNameNode
Jps

到这里我们的社区版hadoop2.x集群就搭建完成了。

Hadoop社区版搭建的更多相关文章

  1. TDH社区版搭建总结

    在安装之前需要对docker分区进行格式化处理: Redhat/CentOS 在Redhat/CentOS上,docker分区必须采用XFS格式,实现的步骤如下: 1. 创建目录/var/lib/do ...

  2. ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版

    原文:ActiveReports 9实战教程(1): 手把手搭建环境Visual Studio 2013 社区版 ActiveReports 9刚刚发布3天,微软就发布了 Visual Studio ...

  3. 搭建环境Visual Studio 2013 社区版

    搭建环境Visual Studio 2013 社区版 ActiveReports 9刚刚发布3天,微软就发布了 Visual Studio Community 2013 开发环境. Visual St ...

  4. 搭建基于Docker社区版的Kubernetes本地集群

    Kubernetes的本地集群搭建是一件颇费苦心的活,网上有各种参考资源,由于版本和容器的不断发展,搭建的方式也是各不相同,这里基于Docker CE的18.09.0版本,在Mac OS.Win10下 ...

  5. PyCharm社区版+Django搭建web开发环境-2

    接上一篇:PyCharm社区版+Django搭建web开发环境-1 1. 创建好django项目并建立app应用:web 2. setting.py:配置app应用 INSTALLED_APPS = ...

  6. Centos 7 搭建蓝鲸3.1.5社区版

    第一次搭建蓝鲸平台,参考了蓝鲸社区的官方搭建文档. 友情链接:蓝鲸智云社区版V3.1用户手册 搭建时遇到了不少的坑,这里做一个详细的安装梳理 主机硬件要求 官方的推荐如下: 我在公司测试环境搭建时机器 ...

  7. Centos 7 搭建蓝鲸V4.1.16社区版

    第一次搭建蓝鲸平台,参考了蓝鲸社区的官方搭建文档. 友情链接:蓝鲸智云社区版V4.1.16用户手册 搭建时遇到了不少的坑,这里做一个详细的安装梳理 主机硬件要求 官方的推荐如下: 在本地用VMware ...

  8. PyCharm社区版+Django搭建web开发环境-1

    PyCharm开源社区版不像商业版那样可以直接通过Django来创建项目,必须通过以下几个步骤进行: 1. 创建项目:在cmd命令行下输入:django-admin startproject Demo ...

  9. PyCharm社区版+Django搭建web开发环境

    PyCharm开源社区版不像商业版那样可以直接通过Django来创建项目,必须通过以下几个步骤进行: 1. 创建项目:在cmd命令行下输入:django-admin startproject Demo ...

随机推荐

  1. [leetcode]35. Search Insert Position寻找插入位置

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...

  2. mybatis进阶-5resultMap总结

    resultType: 作用: 将查询结果按照sql列名pojo属性名一致性映射到pojo中. 场合: 常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用re ...

  3. mysql的innodb和myisam的区别和应用场景

    1. 区别: (1)事务处理: MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理): (2)锁机制不同: MyISAM是表级锁,而InnoDB是行级锁: (3)sel ...

  4. modal 移除遮盖层

    弹框关闭时 移除遮盖层 $("#modal").bind('hide.bs.modal',function(){ $(".modal-backdrop").re ...

  5. __LINE__的用法

    简单的说,__LINE__可以获取当前代码的函数,结合__FUNCTION__可以打印调试信息,比如函数出错时运行的函数名,及行号,例如 #define p_err_fun , os_time_get ...

  6. HDU 1171 01背包

    http://acm.hdu.edu.cn/showproblem.php?pid=1171 基础的01背包,求出总值sum,背包体积即为sum/2 #include<stdio.h> # ...

  7. break语句和continue语句

    1. break 语句 break语句只能用在switch语句中,其作用是跳出switch语句或跳出本层循环. 2. continue 语句 continue语句只能用在循环体中,用于结束本次循环,即 ...

  8. noip第21课资料

  9. ubuntu16.04安装最新版docker、docker-compose、docker-machine

    安装前说明: 本文将介绍在ubuntu16.04系统下安装和升级docker.docker-compose.docker-machine. docker:有两个版本:docker-ce(社区版)和do ...

  10. 可在广域网部署运行的即时通讯系统 -- GGTalk总览(附源码下载)

      (最新版本:V6.2,2019.01.03 .Xamarin移动端版本已经推出,包括 Android 和 iOS) GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网, ...