手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

在CentOS上安装Hadoop

[日期:2013-08-11] 来源:yanjiuyanjiu.com  作者:Linux [字体: ]

Ubuntu上安装,请参考在Ubuntu上安装Hadoophttp://www.linuxidc.com/Linux/2012-04/59171.htm

环境CentOS 6.4, JDK 1.7, Hadoop 1.1.2

1. 用vmware workstation 创建三台虚拟机

首先用vmware workstation 新建一台CentOS 6.4,装好操作系统,选择 Basic Server,安装JDK,参考我的另一篇文章,安装和配置CentOS服务器的详细步骤 http://www.linuxidc.com/Linux/2013-08/88598.htm 。安装好后然后用浅拷贝Create a linked clone 克隆出两台作为slave,这样有了三台虚拟机。启动三台机器,假设IP分别为192.168.1.131, 192.168.1.132, 192.168.1.133, 131做为master 和 SecondaryNameNode, 身兼两职, 132和133为 slaves。

2 关闭防火墙

临时关闭防火墙

$ sudo service iptables stop

下次开机后,防火墙还是会启动。

永久关闭防火墙

$ sudo chkconfig iptables off

由于这几台虚拟机是开发机,不是生产环境,因此不必考虑安全性,可以永久关闭防火墙,还能给开发阶段带来很多便利。

3. 修改hostname

这一步看起来貌似不必要,其实是必须的,否则最后运行wordcount等例子时,会出现“Too many fetch-failures”。因为HDFS用hostname而不是IP,来相互之间进行通信(见后面的注意1)。

在CentOS上修改hostname,包含两个步骤(假设将hostname1改为hostname2,参考这里 (http://www.linuxidc.com/Linux/2013-08/88601.htm),但不需要第一步):

  1. /etc/sysconfig/network 內的 HOSTNAME 改成 hostname2
  2. hostname命令,临时修改机器名, sudo hostname hostname2

exit命令退出shell,再次登录,命令提示字符串就会变成[dev@hostname2 ~]$

用上述方法,将131改名为master,132改名为slave01,133改名为slave02。

在三台机器的/etc/hosts文件中,添加以下三行内容

192.168.1.131 master
192.168.1.132 slave01
192.168.1.133 slave02

4. 本地模式和伪分布式模式

为了能顺利安装成功,我们先练习在单台机器上安装Hadoop。在单台机器上,可以配置成本地模式(local mode)和伪分布式模式(Pseudo-Distributed Mode),参考官方文档Single Node Setup

将 hadoop-1.1.2-bin.tar.gz 上传到三台机器的 home目录下,然后解压。注意,三台机器hadoop所在目录必须一致,因为master会登陆到slave上执行命令,master认为slave的hadoop路径与自己一样。

4.1 编辑 conf/hadoop-env.sh,设置 JAVA_HOME

cd hadoop-1.1.2
vim conf/hadoop-env.sh

注释掉第8行的JAVA_HOME,设置正确的JDK位置

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19.x86_64

4.2 测试本地模式是否正常

默认情况下,Hadoop就被配置为本地模式,现在就可以开始测试一下。

$ mkdir input 
$ cp conf/*.xml input 
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
$ cat output/*

可以看到正常的结果,说明本地模式运行成功了,下面开始配置伪分布式模式。

4.3 配置SSH无密码登陆本机

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

修改sshd的配置文件(需要root权限)

$ sudo vim /etc/ssh/sshd_config

找到以下三行,并去掉注释符”#“

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

修改了配置文件需要重启sshd服务

sudo service sshd restart

修改 authorized_keys 文件的权限,否则ssh登陆的时候还是需要密码。权限的设置非常重要,因为不安全的设置,会让你不能使用RSA功能,参考 http://www.linuxidc.com/Linux/2012-12/76700p2.htm

$ chmod 600 ~/.ssh/authorized_keys

4.4 修改配置文件

conf/core-site.xml:

<configuration>
     <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:9000</value>
     </property>
</configuration>

conf/hdfs-site.xml:

<configuration>
     <property>
         <name>dfs.replication</name>
         <value>1</value>
     </property>
</configuration>

conf/mapred-site.xml:

<configuration>
     <property>
         <name>mapred.job.tracker</name>
         <value>localhost:9001</value>
     </property>
</configuration>

4.5 启动Hadoop,测试伪分布式模式

格式化namenode

$ bin/hadoop namenode -format

启动 Hadoop 后台进程

$ bin/start-all.sh

现在可以用浏览器打开NameNode和JobTracker的web界面了。
NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/

将输入数据拷贝到分布式文件系统中:

$ bin/hadoop fs -put conf input

如果这时出现 SafeModeException 异常,不用担心,等待几分钟即可。因为hadoop刚刚启动时,会进入安全模式进行自检。

运行 Hadoop 自带的例子:

$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'

查看输出文件:

$ bin/hadoop fs -cat output/*

当你做完了后,关闭 Hadoop:

$ bin/stop-all.sh

接下来请看第2页精彩内容http://www.linuxidc.com/Linux/2013-08/88600p2.htm

linux
相关资讯       CentOS安装Hadoop 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款