系统环境:

linux:Centos6-64bit

hadoop:hadoop2.6.0

jdk:1.6.45

集群方式安装

一台master,3台slave

master 192.168.111.100

slave1  192.168.111.101

slave2  192.168.111.102

slave3  192.168.111.103

0.在每一个节点上建立一个hadoop账户,可以设置密码,也可以不用设置(但,在实际的生成环境中一定要设置)

1.修改各个主机的hostname

#vi /etc/sysconfig/network
ETWORKING=yes
HOSTNAME=master # 对于主节点master修改成master,在其他的slave节点上也要修改成slave1,slave2,slave3等
NTPSERVERARGS=iburst

保存后,继续:

#hostname master

然后执行:

[root@master hadoop]# hostname
master

可以看到主机的名字已经改成master,其他的slave机器也这样操作即可。

2.修改每个节点的/etc/hosts文件:

#vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.111.100 master
192.168.111.101 slave1
192.168.111.102 slave2
192.168.111.103 slave3

3.hadoop集群master需要ssh登陆的方式给slave节点发送控制命令,首先确认Centos系统是否安装ssh,如果没有安装,请自行安装,同时还要保证master能无密码登陆各个slave节点。

(1)修改ssh的配置文件 :

#vi /etc/ssh/sshd_config 

要修改成以下内容:(即打开这些控制)

Port 22
Protocol 2
RSAAuthentication yes //公约和私钥的方式
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

(2)无密码登陆

切换到hadoop用户,

#sudo -iu hadoop

执行如下命令:

#ssh-keygen  -t rsa -P '' -f ~/.ssh/id_rsa

就会在~/.ssh目录下生成:

id_rsa  id_rsa.pub

其中id_rsa.pub 是公约,要把这个公约拷到master要登陆的slave节点的~/.ssh目录下。如下,可以通过scp命令:

scp id_rsa.pub  hadoop@192.168.111.101:~/.ssh/    #拷到slave1节点的~/.ssh目录下

然后进入slave1节点的~/.ssh/目录下,找到id_rsa.pub,执行:
cat id_rsa.pub >> authorized_keys 

还有这个步骤的最后一步,如果不修改相对应的权限,会出现登陆要验证密码的情况,所以:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

此时master可以ssh无密码登陆slave1节点,

ssh slave1 
或者
ssh 192.168.111.101

可以看到直接进入slave1节点,而且不需要输入密码。

note如果你不修改/etc/hosts文件,ssh slave1会出现找不到主机的问题,所以,/etc/hosts文件不要忘记修改。

在其他的slave2,slave3节点安装上述方法重复做一遍即可。

4.在每一台节点上安装jdk,到Oracle下载jdk文件,我的系统安装的是:jdk-6u45-linux-x64.bin

拷到/usr/目录下 执行:

chmod 777 jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin

可以看到:

在/usr路径下 出现:

/usr/jdk1.6.0_45

然后做一个软连接,

ln -s /usr/jdk1.6.0_45   /usr/jdk

这样以后如果升级的话,修改一下链接就好了,便于升级。

5.安装hadoop,安装路径可以自定义,但是也不要太偏了,我在/usr/local/目录下建了一个hadoop目录,然后把hadoop包拷到/usr/local/hadoop/目录下:

tar zxvf hadoop-2.6.0.tar.gz

在做一个软连接,道理同上。

ln -s /usr/local/hadoop/hadoop-2.6.0   /usr/local/hadoop/hadoop-release

为了保证hadoop用户对hadoop目录的可操作。要修改一下这个目录的用户组和user,命令:

 chown -R hadoop:hadoop /usr/local/hadoop/  # -R 表示递归处理每一个目录下的文件

现在开始修改环境变量,这样就可以在任何地方都可以使用相对应的java和hadoo命令:我们这里在/etc/profile文件中修改:

export JAVA_HOME=/usr/jdk  #java环境变量
export HADOOP_HOME=/usr/local/hadoop/hadoop-release #hadoop环境变量
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH

修改完之后,重生效一下:

source /etc/profile

6.修改hadoop的配置文件:

进入 /usr/local/hadoop/hadoop-release/etc/hadoop/ 可以看到一些配置文件:

capacity-scheduler.xml      httpfs-env.sh            mapred-env.sh
configuration.xsl httpfs-log4j.properties mapred-queues.xml.template
container-executor.cfg httpfs-signature.secret mapred-site.xml
core-site.xml httpfs-site.xml mapred-site.xml.template
hadoop-env.cmd kms-acls.xml slaves
hadoop-env.sh kms-env.sh ssl-client.xml.example
hadoop-metrics2.properties kms-log4j.properties ssl-server.xml.example
hadoop-metrics.properties kms-site.xml yarn-env.cmd
hadoop-policy.xml log4j.properties yarn-env.sh
hdfs-site.xml mapred-env.cmd yarn-site.xml

需要配置的有core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml yarn-site.xml

(1)先修改core-site.xml.在这里我们要指定使用的文件系统:

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value> #使用hdfs,master节点,端口9000
</property>
</configuration>

(2)在修改hadoop-env.sh

这里主要是添加jdk环境变量:

# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/jdk

至于:

HADOOP_NAMENODE_OPTS

HADOOP_DATANODE_OPTS

HADOOP_SECONDARYNAMENODE_OPTS

HADOOP_CLIENT_OPTS

调整namenode,datanode,secondaryNamenode,client的jvm参数

HADOOP_LOG_DIR

namenode,datanode,secondaryNamenode写log的路径,需要对hadoop帐号可读

这些,目前使用默认,这些可以对hadoop系统进行优化。

(3)再修改 hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name> #在hdfs上每一块数据做几份,默认是使用3份,这里有3个slave,所以也设置成3
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name> # namenode保存元数据的位置,要对hadoop用户可读写,可以设置多个路径,用逗号分隔,每一个路径都保存一份Namenode
<value>/data/dfs/name</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name> #secondNamenode保存元数据的位置,要对hadoop用户可读写
<value>/data/dfs/namesecondary</value>
</property>
<property>
<name>dfs.namenode.http-address</name> #通过http访问namenode,查看namenode的情况
<value>master:50070</value>
</property>
<property>
<name>dfs.datanode.data.dir</name> # datanode 的存放位置,保存的是真实的数据,可以写多个路径,用逗号分隔,所有的这些路径用来保存数据

<value>/data/dfs/data</value>
</property>
<property>
<name>dfs.blocksize</name> #hdfs文件系统块的大小,默认是64M,这里我们设置成256M
<value>268435456</value>
</property>
<property>
</configuration>

(4)再修改mapred-site.xml

<configuration>
<property>
<name>mapreduce.jobhistory.address</name> #设置mapreduce历史服务器的地址
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name> #设置mapreduce历史服务器的web访问地址
<value>master:8087</value>
<final>true</final>
</property>
<property>
<name>mapreduce.framework.name</name> #采用yarn框架启动
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.mb</name> # mapreduce的AM(Application Mater)申请的内存(推荐1G)
<value>1024</value>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.cpu-vcores</name>#mapreduce的AM申请的cpu数量(推荐1个)
<value>1</value>
</property>
<property>
<name>mapreduce.map.memory.mb</name>#mapreduce中maptask申请的(向RM申请)内存,推荐1G-2G
<value>1024</value>
</property>
<property>
<name>mapreduce.map.cpu.vcores</name>#mapreduce中reducetask申请的cpu数,推荐1个
<value>1</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>#mapreduce中reducetask申请的内存(向RM申请),推荐1G-2G
<value>1024</value>
</property>
<property>
<name>mapreduce.reduce.cpu.vcores</name>#mapreduce中reducetask申请的cpu数
<value>1</value>
</property>
</configuration>

(5)修改yarn-site.xml

 <property>
<name>yarn.resourcemanager.hostname</name>#ResourceManager所在主机名字
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name> # ResourceManager地址,slave节点访问这个地址申请资源
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name> #通过webui访问ResourceManager地址
<value>master:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name> #这个nodemanager上有多少内存资源可以分配,总的内存数量减去2,因为datanode和NM要各使用1G
<value>2048</value>
</property>
<property>
<name>yarn.web-proxy.address</name>
<value>master:8089</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.class</name> #ResourceManager使用的调度方法,这里使用的fail调度方法
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name> #这个nodemanager上可分配的cpu数量,总cpu数量-2,DataNode和nodemanager各使用一个
<value>2</value>
</property>
</configuration>

有些配置文件中设置了一些路径。如:/data/dfs,这些路径要手动建立,而且对hadoop用户要可读写,

建立这些目录:

hadoop fs -mkdir /data/dfs
hadoop fs -chown hadoop:hadoop /data/dfs

此时主机上的hadoop已经安装完成,下面在每一台slave节点上都要做相同的步骤,简单的方法是把master节点上的hadoop拷到slave1,2,3节点正确的(正确即和master节点路径相同)路径下。最简单的方式是下载pssh,进行同步操作,这里就不详细说明了。

7.上述步骤做完之后在master节点上格式化HDFS文件系统,:

hadoop namenode -format

然后在master节点启动hadoop:

start-all.sh

如果需要启动mapreduce的历史服务器,执行:

mr-jobhistory-daemon.sh start historyserver

最后在各个slave节点上启动datanode:

hadoop-daemon.sh start datanode

8.在master节点上键入 : jps命令,即可查看相对于的进程:

3544 Secondnamenode
3654 Namenode
3578 ResourceManager
15789 Jps

在slave节点上键入jps命令:

3785 DataNode
3594 NodeManager
15789 Jps

自此,hadoop集群部署完毕,在部署的过程中可能会出现各种问题,不要着急,慢慢的查找就会解决。

Centos6 hadoop2.6.0安装笔记的更多相关文章

  1. Hadoop2.2.0 安装笔记

    在Youtube上找到靠谱的教程:http://www.youtube.com/watch?v=WN2tJk_oL6E 同时把作者的教程下载下来放在百度云盘上了:http://pan.baidu.co ...

  2. Hadoop2.2.0安装笔记

    最近想学习hadoop,于是网上找了些教程学习,几经周折,总算安装成功了! 先讲下环境,就2台机器...都是vmware虚拟机,操作系统centos, jdk版本 1.8.0 hadoop版本 2.2 ...

  3. Hadoop-2.4.0安装和wordcount执行验证

    Hadoop-2.4.0安装和wordcount执行验证 下面描写叙述了64位centos6.5机器下,安装32位hadoop-2.4.0,并通过执行 系统自带的WordCount样例来验证服务正确性 ...

  4. Hadoop2.6.0安装 — 集群

    文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6034187.html 这里写点 Hadoop2.6.0集群的安装和简单配置,一方面是为自 ...

  5. 完全分布式hadoop2.5.0安装 VMware下虚拟机centos6.4安装1主两从hadoop

    请跟我走,从零开始搭建hadoop2.5.0环境.总览第一步:搭建三台能不用密码shh的虚拟机.第二步,装jdk,解压hadoop文件,配置环境变量和xml文件.第三步,复制克隆两个slave机器.调 ...

  6. Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)

    http://blog.csdn.net/licongcong_0224/article/details/12972889 历时一周多,终于搭建好最新版本hadoop2.2集群,期间遇到各种问题,作为 ...

  7. Hadoop2.2.0安装配置手册

    第一部分 Hadoop 2.2 下载 Hadoop我们从Apache官方网站直接下载最新版本Hadoop2.2.官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独 ...

  8. Hadoop2.2.0安装过程记录

    1    安装环境1.1    客户端1.2    服务端1.3    安装准备    2    操作系统安装2.1.1    BIOS打开虚拟化支持2.1.2    关闭防火墙2.1.3    安装 ...

  9. Hadoop2.6.0安装—单机/伪分布

    目录 环境准备 创建hadoop用户 更新apt 配置SSH免密登陆 安装配置Java环境 安装Hadoop Hadoop单机/伪分布配置 单机Hadoop 伪分布Hadoop 启动Hadoop 停止 ...

随机推荐

  1. Python中断多重循环的几种思路exit_flag

    常见方法 II. 跳出多重循环 事实上,Python的标准语法是不支持跳出多重循环的,所以只能利用一些技巧,大概的思路有:写成函数.利用笛卡尔积.利用调试. 写成函数 在Python中,函数运行到re ...

  2. ROS HTB限速失败原因分析和需注意事项

    要想做限速,必须要知道以下几点: 首先要知道自己要限制什么的速度,谁的速度,于是需要用的标记,即Mangle. 其次要知道怎么限速,是限制上传,还是下载? 最后要知道所做的限速是否成功,即需要知道如何 ...

  3. 使用mysql-connector-java出现的错误

    如果你使用的是mysql-connector-java6.*版本,并使用c3p0连接池的话,就可能出错.因为最近在使用Maven构建项目,想着换成最新的版本试试,就是用了个mysql-connecto ...

  4. 【HDU】2222 Keywords Search(AC自动机)

    题目 传送门:QWQ 分析 $ AC $自动机模板,黈力的码风真的棒极了,这是我抄他的. 还有 题号不错 代码 #include <cstdio> #include <cstring ...

  5. Druid.io系列(七):架构剖析

    1. 前言 Druid 的目标是提供一个能够在大数据集上做实时数据摄入与查询的平台,然而对于大多数系统而言,提供数据的快速摄入与提供快速查询是难以同时实现的两个指标.例如对于普通的RDBMS,如果想要 ...

  6. Linux下sz下载文件超过4G办法

    当下载文件超过4G时,sz提示能下载. 解决办法有以下几种: 1.scp 2.ftp 3.nc 4.icmp 5.文件切割 ---------------------------------- 以上4 ...

  7. 0CTF题中的神奇宝贝WP

    前言: 今天被尘少拉去做题 然后做到一个脑洞打开的题..... 神奇宝贝!?!? 正文: 一开始来到这=-= 弱密码猜测:admin admin 验证码用calc去算 然后成功进入 第一次去做神奇宝贝 ...

  8. 关于服务器raid的一个记录

    今天下午,在装操作系统的时候,特意的测试了下raid1的性能. 1. 开启操作系统 直接正常开启操作系统,操作系统的硬盘做的是raid1,从而数据写俩份,从而在损坏一张盘之后,另外一张盘并不会收到影响 ...

  9. HTTP断点续传下载的原理

    frombegintoend原文HTTP断点续传下载的原理 要实现断点续传下载文件,首先要了解断点续传的原理.断点续传其实就是在上一次下载断开的位置开始继续下载,HTTP协议中,可以在请求报文头中加入 ...

  10. leetcode724

    public class Solution { public int PivotIndex(int[] nums) { ) { ; } ; ]; if (left == right) { ; } ; ...