本文主要详细地描述了hadoop集群的搭建以及一些配置文件的说明,用于自己复习以及供新人学习,若有错误之处还请指出。

前期准备

先给出我的集群架构:

  • 到hadoop官网下载好hadoop安装包http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz

  • 装好四台虚拟机(我的四台虚拟机是CentOs6.3系统)

  • 四台虚拟机都装好jdk

  • 四台虚拟机都配好免密登录

  • 四台虚拟机都配置好ip地址和主机名映射关系(以下是我的地址映射关系)

    vim /etc/hosts

      192.168.25.13	mini1
    192.168.25.14 mini2
    192.168.25.15 mini3
    192.168.25.16 mini4

以上步骤有不会的可查看我的其他几篇博客:

Linux下的常用配置

Linux下配置免密登录


1、将hadoop安装包上传到mini1上,解压后改名,并创建目录hadoopdata与hadoop目录平行

tar -zxvf hadoop-2.6.5.tar.gz -C /root/apps/
cd /root/apps/
mv hadoop-2.6.5 hadoop
mkdir hadoopdata

2、进入hadoop配置文件目录下,可看到以下配置文件

cd hadoop/etc/hadoop/

3、修改hadoop-env.sh配置文件

vim hadoop-env.sh
#写上自己的JAVA_HOME

4、修改core-site.xml配置文件

vim core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://mini1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/apps/hadoopdata</value>
</property>
</configuration>

配置说明:

fs.defaultFS:hadoop使用什么文件系统
hdfs://mini1:9000:指定hadoop系统使用hdfs文件系统,并指明namenode为mini1,客户端访问端口为9000 hadoop.tmp.dir:hadoop文件存储目录 有2个参数可配置,但一般来说我们不做修改。
fs.checkpoint.period表示多长时间记录一次hdfs的镜像,默认是1小时。
fs.checkpoint.size表示镜像文件快大小,默认64M。 <property>
<name>fs.checkpoint.period</name>
<value>3600</value>
</property> <property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>

5、修改hdfs-site.xml(可不做任何配置,使用默认)

vim hdfs-site.xml

<configuration>

<property>
<name>dfs.namenode.name.dir</name>
<value>/root/apps/hadoopdata/name</value>
</property> <property>
<name>dfs.datanode.data.dir</name>
<value>/root/apps/hadoopdata/data</value>
</property> <property>
<name>dfs.replication</name>
<value>3</value>
</property> </configuration>

配置说明:

dfs.namenode.name.dir:namenode节点的数据存放目录
dfs.datanode.data.dir:datanode节点的数据存放目录
dfs.replication:集群中hdfs保存数据的副本数

6、更改mapred-site.xml.template的配置文件名,并进行配置

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

配置说明:

mapreduce.framework.name:使用yarn运行mapreduce程序

7、修改yarn-site.xml配置文件

vim yarn-site.xml

<configuration>

<property>
<name>yarn.resourcemanager.hostname</name>
<value>mini1</value>
</property> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

配置说明:

yarn.resourcemanager.hostname:指定YARN的老大(ResourceManager)的地址
yarn.nodemanager.aux-services:指定reducer获取数据的方式

8、修改slaves文件

vim slaves
# 在此文件下写入需要启动datanode和nodemanager的机器(往往datanode和nodemanager在一台机器上启动),一行代表一台机器。

9、将hadoop添加到环境变量,并重新加载环境变量

vim /etc/profile

export HADOOP_HOME=/itcast/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source /etc/profile

重要!重要!重要!!!

Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题,因此需要自己对源码进行编译64位的版本。

自己编译比较麻烦,可以去网站:http://dl.bintray.com/sequenceiq/sequenceiq-bin/ 下载对应的编译版本。

准备好64位的lib包后做以下操作:

#解压到已经安装好的hadoop安装目录的lib/native 和 lib目录下
tar -zxvf hadoop-native-64-2.6.0.tar -C hadoop/lib/native
tar -zxvf hadoop-native-64-2.6.0.tar -C hadoop/lib
#配置环境变量
vi /etc/profile
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
source /etc/profile
#hadoop检测本地库
hadoop checknative –a

10、将hadoop和配置文件分别分发给另外三台机器(mini2,mini3,mini4)

scp -r /root/apps/hadoop mini2:/root/apps/
scp -r /root/apps/hadoop mini3:/root/apps/
scp -r /root/apps/hadoop mini4:/root/apps/ scp /etc/profile mini2:/etc/
scp /etc/profile mini3:/etc/
scp /etc/profile mini4:/etc/

不要忘记三台机器都要重新加载一下配置文件

11、初始化HDFS

hadoop  namenode  -format

12、批量启动/停止

#批量启动hdfs
start-dfs.sh
#批量停止hdfs
stop-dfs.sh

#批量启动yarn
strat-yarn.sh
#批量停止yarn
stop-yarn.sh

#单独启动或停止hdfs,yarn
hadoop-daemon.sh start namenode hadoop-daemon.sh stop namenode
hadoop-daemon.sh start datanode hadoop-daemon.sh stop datanode hadoop-daemon.sh start resourcemanager hadoop-daemon.sh stop resourcemanager
hadoop-daemon.sh start nodemanager hadoop-daemon.sh stop nodemanager

总结

  • 官网提供的版本本地库是32位的,在64位主机环境下无法执行。需要下载hadoop源码进行编译。
  • 自己编译参考https://jingyan.baidu.com/article/ce436649fea8533772afd365.html
  • 配置文件hdfs-site.xml可不做任何配置,使用默认即可
  • 集群中每台机器都要记得修改/etc/hosts文件
  • 集群中所有的机器配置环境变量后不要忘记source一下(因为本文的环境变量文件是通过scp命令传给各台机器的,很容易忘记source)
  • 配置免密登录的时候不要忘记本机也配置上(将mini1的公钥发给mini1)(ssh-copy-id mini1)
  • 如果哪台机器启动出错,可查看相应机器下的日志文件,根据错误信息百度查询解决方法(/root/apps/hadoop/logs/)(查看.log结尾的日志文件)
  • 严格按照上述流程安装(包括目录创建以及目录的位置),可顺利完成集群的搭建

问题解决

datanode无法启动

原因:

初始化工作目录结构(hdfs namenode -format)只是初始化了namenode的工作目录,而datanode的工作目录是在datanode启动后自己初始化的。
namenode在format初始化的时候会形成两个标识:
blockPoolId,
clusterId. 新的datanode加入时,会获取这两个标识作为自己工作目录中的标
识。一旦namenode重新format后,namenode的身份标识已变,而
datanode如果依然持有原来的id,就不会被namenode识别。
解决方法: 将datanode机器上的工作目录删掉,重新启动datanode,
它会重新创建工作目录,并获取namenode的标识。

集群中各个端口


更多配置文件信息参考:https://blog.csdn.net/cuitaixiong/article/details/51591410

【图文详解】Hadoop集群搭建(CentOs6.3)的更多相关文章

  1. Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!)

    Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!) 一.JDK的安装 安装位置都在同一位置(/usr/tools/jdk1.8.0_73) jdk的安装在克隆三台机器的时候可以提前安装 ...

  2. Hadoop集群搭建安装过程(二)(图文详解---尽情点击!!!)

    Hadoop集群搭建安装过程(二)(配置SSH免密登录)(图文详解---尽情点击!!!) 一.配置ssh无密码访问 ®生成公钥密钥对 1.在每个节点上分别执行: ssh-keygen -t rsa(一 ...

  3. Hadoop集群搭建安装过程(一)(图文详解---尽情点击!!!)

    Hadoop集群搭建(一)(上篇中讲到了Linux虚拟机的安装) 一.安装所需插件(以hadoop2.6.4为例,如果需要可以到官方网站进行下载:http://hadoop.apache.org) h ...

  4. 三节点Hadoop集群搭建

    1. 基础环境搭建 新建3个CentOS6.5操作系统的虚拟机,命名(可自定)为masternode.slavenode1和slavenode2.该过程参考上一篇博文CentOS6.5安装配置详解 2 ...

  5. Hadoop 集群搭建

    Hadoop 集群搭建 2016-09-24 杜亦舒 目标 在3台服务器上搭建 Hadoop2.7.3 集群,然后测试验证,要能够向 HDFS 上传文件,并成功运行 mapreduce 示例程序 搭建 ...

  6. Linux环境下Hadoop集群搭建

    Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...

  7. Hadoop(二) HADOOP集群搭建

    一.HADOOP集群搭建 1.集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主要有 Na ...

  8. Hadoop 集群搭建 mark

    Hadoop 集群搭建 原创 2016-09-24 杜亦舒 性能与架构 性能与架构 性能与架构 微信号 yogoup 功能介绍 网站性能提升与架构设计 目标 在3台服务器上搭建 Hadoop2.7.3 ...

  9. 大数据初级笔记二:Hadoop入门之Hadoop集群搭建

    Hadoop集群搭建 把环境全部准备好,包括编程环境. JDK安装 版本要求: 强烈建议使用64位的JDK版本,这样的优势在于JVM的能够访问到的最大内存就不受限制,基于后期可能会学习到Spark技术 ...

  10. 大数据学习——HADOOP集群搭建

    4.1 HADOOP集群搭建 4.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据的存储,集群中的角色主 ...

随机推荐

  1. Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数

    本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================ ...

  2. Mybatis多个参数传值方法

    第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <select id="s ...

  3. [BZOJ4011][HNOI2015] 落忆枫音(学习笔记) - 拓扑+DP

    其实就是贴一下防止自己忘了,毕竟看了题解才做出来 Orz PoPoQQQ 原文链接 Description 背景太长了 给定一个DAG,和一对点(x, y), 在DAG中由x到y连一条有向边,求生成树 ...

  4. Java 微服务框架选型(Dubbo 和 Spring Cloud?)

    微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任 ...

  5. jacascript 函数参数与 arguments 对象

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 调用函数时,实参和形参需要一一对应,但如果参数多了的话,会很苦恼: 我们可以用键值对(字面量对象)的方式传 ...

  6. 在python后台如何将客户端提交的form表单数据提取出来?

    1.获取客户端提交的表达数据,数据类型为ImmutableMultiDictformData = request.form2.将提取的数据转化成字典formDict = formData.to_dic ...

  7. 部署testlink报错,安装wampserver时提示丢失MSVCR110.dll

    安装wampserver时提示丢失MSVCR110.dll(在windows server上可用)对于32位系统,安装Wampserver 后启动的时候提示系统错误:MSVCR110.dll丢失.于是 ...

  8. 关于阮大神的es6标准入门第一章

    题记:之前在10月份的时候写过阮大神的es6的第一章,但是由于那段时间项目组的动荡,所以也没有什么后续,导致我现在对es6基本都忘的差不多了,不过,现在换了新公司,最近也没什么任务,所以现在开始重新写 ...

  9. 洛谷P1593 因子和

    题目描述 输入两个正整数a和b,求a^b的因子和.结果太大,只要输出它对9901的余数. 输入输出格式 输入格式: 仅一行,为两个正整数a和b(0≤a,b≤50000000). 输出格式: a^b的因 ...

  10. ●Joyoi 绿豆蛙的归宿

    题链: http://www.joyoi.cn/problem/tyvj-1933题解: 期望dp,拓扑序 定义dp[i]表示从i点到N点的期望距离. 令cnt[u]表示u的出度. 显然$$dp[u] ...