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. springboot和mybatis之thymleaf整合简单插入用户数据

    编写mapper接口和对应的mapper.xml文件,注意对应的注解 @Mapper @Repository public interface StudentMapper { void insertS ...

  2. jq怎么给图片绑定上传文件按钮

    html代码 <img src="/img/zhengmian.png" alt="" class="file1"> <i ...

  3. 113. Path Sum II 输出每个具体路径

    [抄题]: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the gi ...

  4. 【.Net】 大文件可使用的文本分组统计工具(附带源码,原创)

    本工具可实现的效果: 1.读取大文件(大于1GB) 2.根据分隔符分割后的列分组 3.速度快. 4.处理过程中,可以随时停止处理,操作不卡死. 5.有对当前内存的实时监测,避免过多占用内存,影响系统运 ...

  5. 微信公众号的分享接口,分享提示config:fail,invalid signature的解决办法(2017年12月)

    微信中打开网页,使用微信右上角菜单中自带的分享功能的经历及总结: 最开始,微信分享页面时,直接读取页面的标题(title)和页面中的第一张符合条件的图片[此种方式在2017-03-29之前管用,这一天 ...

  6. [SoapUI] 在SoapUI中,设置开关批量保存整个Response,作为期望结果进行校验

    //获取保存response的文件路径和名称 def testSuiteName = context.testCase.testSuite.name def testCaseName = contex ...

  7. 文字创作类App分享-简书

    今天我用Mockplus做了一套简书App的原型,这是一款文字创作类的App,用户通过写文.点赞等互动行为,提高自己在社区的影响力,打造个人品牌.我运用了Mockplus基础组件.交互组件.移动组件等 ...

  8. 2018上IEC计算机高级语言(C)作业 第3次作业

    2018上IEC计算机高级语言(C)作业 第3次作业 一.例程调试(20分) 调试下面2个例程,各位同学调试用自己的学号模3(即除以3取余数)加1序号及该序号乘以2的题.写明调试过程,如错误现象(如给 ...

  9. swiper,一个页面使用多个轮播

    代码示例: <html> <head> <link href="https://cdn.bootcss.com/Swiper/4.3.0/css/swiper. ...

  10. 【慕课网实战】一、以慕课网日志分析为例 进入大数据 Spark SQL 的世界

    课程整套CDH相关的软件下载地址:http://archive.cloudera.com/cdh5/cdh/5/ cdh-5.7.0 生产或者测试环境选择对应CDH版本时,一定要采用尾号是一样的版本 ...