hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群

时间:2022-12-25 21:19:09

第一步 ,环境准备. 
宿主机为CentOS6.3 64位,3个虚拟机为CentOS6.3 64位.
(注意:有个技巧,可以先创建一台虚拟机,在其上安装好JDK、hadoop后再克隆两台,这样省时又省力。)
操作系统.
CentOS 6.3 64

hadoop版本
hadoop 1.1.0 rpm


开始安装


以下所有的操作,都是用 root 身份执行

以下安装,需要在每台机器上面安装. 

下载好 jdk-7u9-linux-x64.rpm 和 
hadoop-1.1.0-1.x86_64.rpm



1. 首先安装操作系统,并关闭防火墙,




第二步,更改主机名
修改主机名 namenode1,datanode1,datanode2

vim /etc/sysconfig/network

(分别修改为)

HOSTNAME=n
amenode1

HOSTNAME=datanode1

HOSTNAME=datanode2
:wq保存并退出


第三步,修改文件“/etc/hosts


    每台主机中的/etc/hosts文件有以下配置
(IP设置可参考:http://blog.csdn.net/ljg888/article/details/9241069)

vim /etc/hosts

(添加以下内容)

192.168.10.137   namenode1
192.168.10.138   datanode1
192.168.10.139   datanode2

     测试
ping namenode1
ping datanode1
ping datanode2
第四步.安装jdk,rpm版的会自动配置好环境变量
   

rpm -ivh jdk-7u9-linux-x64.rpm
 
    

java -version 马上有反应,方便!

第五步.安装hadoop,rpm版的会自动配置部分文件


rpm -ivh  hadoop-1.1.0-1.x86_64.rpm


(CentOS 6.3默认已经安装了openssh和rsync)


2.2 配置Master无密码登录所有Salve

1)SSH无密码原理

Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在          Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥追加到所有的Slave的authorized_keys文件上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并从authorized_keys找到Master的公钥,然后用这个公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。

以下操作,在  namenode1上面执行


1. 创建 ssh 密钥,就是不用密码登陆 
目标主机 
,以下命令直接敲默认回车,不用输入任何信息.

ssh-keygen -t rsa

cat /root/.ssh/id_rsa.pub  >>/root/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)

2. 密钥生成完成以后,追加namenode的公钥到其他2台 datanode 上面,使得 
namenode能访问其它 
datanode


cat/root/.ssh/id_rsa.pub  |  ssh root@datanode1 "cat >>/root/.ssh/authorized_keys"
cat/root/.ssh/id_rsa.pub  |  ssh root@datanode2 "cat >>/root/.ssh/authorized_keys"
3.修改SSH配置文件,启用RSA认证

vim /etc/ssh/sshd_config


      
hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群

     authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件

     设置完之后记得
重启SSH服务
,才能使刚才设置有效。

service sshd restart


3. 验证ssh 不要密码登陆是否成功


ssh  namenode1

ssh 
 
d
atanode1
 

ssh 
 
d
atanode2 

如果SSH访问出现问题的话,可以试试下面的

1)修改文件"authorized_keys"

chmod 644 /root/.ssh/authorized_keys


2.3 配置所有Slave无密码登录Master

和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加到Master的".ssh"文件夹下的"authorized_keys"中,记得是追加(>>)

用root登录datanode1

1. 创建 ssh 密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.

ssh-keygen -t rsa 


cat/root/.ssh/id_rsa.pub  >>/root/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)

2. 密钥生成完成以后,追加本机的公钥到其他2台机器上面



cat/root/.ssh/id_rsa.pub  |  ssh root@namenode1 "cat >>/root/.ssh/authorized_keys"

cat/root/.ssh/id_rsa.pub  |  ssh root@datanode2 "cat >>/root/.ssh/authorized_keys"


3.修改SSH配置文件,启用RSA认证

vim /etc/ssh/sshd_config


      
hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群

     authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件

     设置完之后记得
重启SSH服务
,才能使刚才设置有效。

service sshd restart


3. 验证ssh 不要密码登陆是否成功



ssh  
name
node1
 


ssh  
d
atanode2

如果SSH访问出现问题的话,可以试试下面的

1)修改文件"authorized_keys"

chmod 644 /root/.ssh/authorized_keys

2.4 配置所有Slave无密码登录Master

和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加到Master的".ssh"文件夹下的"authorized_keys"中,记得是追加(>>)

用root登录datanode2

1. 创建 ssh 密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.

ssh-keygen -t rsa

cat/root/.ssh/id_rsa.pub  >>/root/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)

2. 密钥生成完成以后,追加本机的公钥到其他2台机器的
authorized_keys


cat/root/.ssh/id_rsa.pub  |  ssh root@namenode1 "cat >>/root/.ssh/authorized_keys"
cat/root/.ssh/id_rsa.pub  |  ssh root@datanode1 "cat >>/root/.ssh/authorized_keys"

3.修改SSH配置文件,启用RSA认证

vim /etc/ssh/sshd_config


      
hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群

     authorized_keys: 存放本机要访问的所有目标主机(s)公钥的文件

     设置完之后记得
重启SSH服务
,才能使刚才设置有效。

service sshd restart


3. 验证ssh 不要密码登陆是否成功


ssh  namenode1

ssh  datanode1


如果SSH访问出现问题的话,可以试试下面的

1)修改文件"authorized_keys"

chmod 644 /root/.ssh/authorized_keys

---------------------------------------------------------------------------------------------------------------------------------------------

2.5 配置Hadoop

每个节点都要进行以下的配置

4. 创建必要的目录.首先创建 namenode 保存namenode 元信息的目录. 设置为 
/usr/hadoop/tmp
 
 目录下


mkdir -p /usr/hadoop/tmp

5. 配置hadoop 运行环境.进入 /etc/hadoop 目录下面,修改hadoop的默认配置.


首先修改 master 文件. master 文件很容易理解错误,master 文件是指 hadoop 机器里面的secondarynamenode.不是指本机(测试用所以配置上,实际上
namenode和
secondarynamenode放在同一个机子上不能增加可靠性,没什么意义!
)



vim /etc/hadoop/master

(改为如下)

192.168.10.137

接着修改slaves 文件,salve 文件表示此集群的 datanode 节点.所以在本集群中,datanode 如下



vim /etc/hadoop/slave

(改为如下)

192.168.10.138
192.168.10.139

这里的IP实际上可以用主机名来代替,但当网格的DNS出问题的,就不能访问了,直接用IP就不用依赖DNS,提高集群可靠性!

6. 设置 core-site.xml 文件内容如下

<configuration>
        
        <!-- global properties -->
<property>
    <name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
</property>
  
<!-- file system properties -->
  <property>
<name>fs.default.name</name>
<value>hdfs://namenode1:9000</value>
</property>

</configuration>

3)配置hdfs-site.xml文件

修改Hadoop中HDFS的配置,配置的备份方式默认为3,这里只有2个datanode,所以数据最大复制2份!

<configuration>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

</configuration>

7. 设置 mapred-site.xml 件内容如下

修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>namenode1:9001</value>

</property>

</configuration>



8. 修改 java 的运行环境变量,修改 hadoop-env.sh 如下行的内容如下


vim  /etc/hadoop/hadoop-env.sh

修改如下行内容为


export JAVA_HOME=/usr/java/jdk1.7.0_09


11. 设置每个节点上面的 服务为自动启动


chkconfig --add hadoop-namenode
chkconfig --add hadoop-jobtracker
chkconfig hadoop-namenode on
chkconfig hadoop-jobtracker on

4.3 启动及验证

1)格式化HDFS文件系统

在"Master.Hadoop"上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化)

hadoop namenode -format


2)启动hadoop

在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。

service iptables stop

不知道为什么root用户访问start-all.sh会提示无权限,所以直接修改了其所在文件夹的访问权限!(谁知道原来回复一下我,谢谢)

chmod -R 777 /usr/sbin/

启动 namenode

start-all.sh

hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群

可以通过以下启动日志看出,首先启动namenode 接着启动datanode1,datanode2,…,然后启动secondarynamenode。

再启动jobtracker,然后启动tasktracker1,tasktracker2,…。

启动 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。

     停止 namenode

stop-all.sh

hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群




(2)验证方式二:用"hadoop dfsadmin -report"

用这个命令可以查看Hadoop集群的状态。

4.4 网页查看集群

1)访问jobtracker"http:192.168.10.137:50030"

hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群

2)访问DFS : "http:192.168.10.137:50070"

hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群

到此,Hadoop配置完毕,最大的感悟是rpm方式安装软件真是太方便了!

参考:http://blog.csdn.net/irelandken/article/details/8122474

hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群的更多相关文章

  1. 阿里云服务器 CentOS 7&period;5 64位 docker安装redis集群

    网上有很多教程可以参考,但是遇到坑了...... 最后参考这个教程成功了.https://www.cnblogs.com/hbbbs/articles/10028771.html 安装docker 参 ...

  2. spark2&period;0&period;2基于hadoop2&period;4搭建分布式集群

    一.Scala安装 因为spark的版本原因,所以Scala我用的2.11.7. 下载目录http://www.scala-lang.org/download/ 拷贝到要安装的地址,我的地址是/usr ...

  3. 超快速使用docker在本地搭建hadoop分布式集群

    超快速使用docker在本地搭建hadoop分布式集群 超快速使用docker在本地搭建hadoop分布式集群 学习hadoop集群环境搭建是hadoop入门的必经之路.搭建分布式集群通常有两个办法: ...

  4. 使用Docker在本地搭建Hadoop分布式集群

    学习Hadoop集群环境搭建是Hadoop入门必经之路.搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装多个虚拟 ...

  5. Hadoop 3&period;0完全分布式集群搭建方法(CentOS 7&plus;Hadoop 3&period;2&period;0)

    本文详细介绍搭建4个节点的完全分布式Hadoop集群的方法,Linux系统版本是CentOS 7,Hadoop版本是3.2.0,JDK版本是1.8. 一.准备环境 1. 在VMware worksta ...

  6. hadoop搭建伪分布式集群(centos7&plus;hadoop-3&period;1&period;0&sol;2&period;7&period;7)

    目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...

  7. Hadoop 2&period;2&period;0单节点的伪分布集成环境搭建

    Hadoop版本发展历史 第一代Hadoop被称为Hadoop 1.0 1)0.20.x 2)0.21.x 3)0.22.x 第二代Hadoop被称为Hadoop 2.0(HDFS Federatio ...

  8. 『实践』VirtualBox 5&period;1&period;18&plus;Centos 6&period;8&plus;hadoop 2&period;7&period;3搭建hadoop完全分布式集群及基于HDFS的网盘实现

    『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现 1.基本设定和软件版本 主机名 ip 对应角色 mas ...

  9. 超详细!CentOS 7 &plus; Hadoop3&period;0&period;0 搭建伪分布式集群

    超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群 ps:本文的步骤已自实现过一遍,在正文部分避开了旧版教程在新版使用导致出错的内容,因此版本一致的情况下照搬执行基本不会有大错误. ...

随机推荐

  1. HTML 文本格式化实例

    一,文本格式化:此例演示如何在一个 HTML 文件中对文本进行格式化. <html> <body> <b>This text is bold</b> & ...

  2. zookeeper学习记录

    ZooKeeper:是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.他主要用来解决分布式应用中的数据管理的一致性问题 ...

  3. c&plus;&plus;中string类的详解

    ,<时返回-1,==时返回0  string的子串:string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串strin ...

  4. js构造函数

    使用函数做自动化 function createObj(nick, age){ var obj = { nick: nick, age: age, printName: function(){ con ...

  5. 使用devstack搭建openstack Newton 版本的坑

    国外源访问速度慢怎么办? 使用国外源,加之带宽紧张,搭建过程是很累的,这里推荐大家使用一下源: devstack包源.:http://git.trystack.cn pip源: [global] in ...

  6. 再谈angularJS数据绑定机制及背后原理—angularJS常见问题总结

    这篇是对angularJS的一些疑点回顾,是对目前angularJS开发的各种常见问题的整理汇总.如果对文中的题目全部了然于胸,觉得对整个angular框架应该掌握的七七八八了.希望志同道合的通知补充 ...

  7. MySQL 笔记整理(17) --如何正确地显示随机消息?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 17) --如何正确地显示随机消息? 如果有这么一个英语单词表,需要每次 ...

  8. c&sol;c&plus;&plus; 图的创建及图的相关函数&lpar;链表法)

    c/c++ 图的创建及图的相关函数(链表法) 图的概念 图由点和线组成 知道了图中有多少个点,和哪些点之间有线,就可以把一张图描绘出来 点之间的线,分有方向和无方向 创建图 创建图,实际就是创建出节点 ...

  9. 微信小程序 如何获取用户code

    1.首先需要获取code 使用 wx.login({ success: function(res) { console.log(res);//这里的返回值里面便包含code }, fail: func ...

  10. Maven的国内镜像&lpar;解决jar下载过慢&rpar;

    Maven简介 maven作为一个项目管理工具确实非常好用,结果在使用时候,你会发现下载jar速度不如自己在网上下载.之前oschina的*仓库可用,现在oschina的maven服务器关了,只能拿 ...