分布式Hadoop的搭建(Ubuntu)
来源:互联网 发布:停车软件 编辑:程序博客网 时间:2024/05/27 00:49
基本情况:自己搭建分布式Hadoop,有三台主机,局域网配置,其中一台为vm上的虚拟机,系统均为Ubuntu10.04
基本准备工作:1.安装java。可以见之前写的一篇,三台都装上
2.建立同一个用户。我的用户名全是dbrg,并赋予sudo权限,注意创建的时候用sudo,否则可能提示不能在home下创建相应目录。添加sudo权限:sudo usermod -G admin -a hostname
3.修改三台主机的hostname。分别修改为dbrg1(作为master,即namenode)、dbrg2(作为slave1,即datanode)、dbrg3(作为slave2)
4.网络配置。局域网内,那么vm上的那个就需要配置,ping不通,VM里面有三个网络连接模式:host-only、bridge、nat(可以参考http://linuxme.blog.51cto.com/1850814/389691),采用bridge方式。
这里,我的三台机器ip为:
dbrg1 192.168.0.102
dbrg2 192.168.0.112
dbrg3 192.168.0.113
5.下载好hadoop,本人的是0.20.2最新版本
6.修改/etc/hosts。
在dbrg1中添加:
192.168.0.102 dbrg1 dbrg1
192.168.0.112 dbrg2 dbrg2
192.168.0.113 dbrg3 dbrg3
在dbrg2中添加:
192.168.0.102 dbrg1 dbrg1
192.168.0.112 dbrg2 dbrg2
在dbrg3中添加:
192.168.0.102 dbrg1 dbrg1
192.168.0.113 dbrg3 dbrg3
正式配置:
1.目录结构
由于Hadoop中要求所有机器hadoop的部署目录结构都要相同,并且都要有同名账号,之前的准备工作做好了,这里就ok了。
然后在三个节点上创建相同目录结构:/home/dbrg/HadoopInstall
将下载好的hadoop压缩包解压到HadoopInstall中,为了以后方便升级,建立一个链接指向要使用的hadoop版本,可以设:
$ln -s hadoop-0.20.2.tar hadoop
这样就可以通过hadoop访问了,而且还能便于后期的升级与修改
2.免密码SSH设置
(1) 在三台机器上安装ssh,启动ssh-server。
sudo apt-get install openssh-server
sudo /etc/init.d/ssh start
ps -e|grep ssh //这个是检验命令
(2)在dbrg1上生成密钥对。
ssh-keygen -t -rsa //然后一直enter,按照默认的选项生成的密钥对保存在.ssh/id_rsa文件中
进入.ssh目录,输入
cp id_rsa.pub authorized_keys
执行 ssh localhost 看看需不需要输入命令
(3)远程拷贝
生成好后,需要将该文件传到dbrg2和3上
在dbrg1中的.ssh目录中,输入
scp authorized_keys dbrg2:/home/dbrg/.ssh/
scp authorized_keys dbrg3:/home/dbrg/.ssh/
说明:如果提示在dbrg2和3上没有此目录,记得创建。此处是需要输入密码的。
(4)修改权限。在dbrg2和dbrg3上对该文件进行权限修改
打开.ssh,输入
chmod 644 authorized_keys
(5)配置修改
在三台服务器上对sshd服务进行配置,都需要修改。在sudo vi /etc/ssh/sshd_config中
修改:PasswordAuthentictation no
AuthorizedKeyFile /home/dbrg/.ssh/authorized_keys
(6)检验
在dbrg1上,ssh dbrg2,输入yes,这样以后访问都不需要输入密码了
同样ssh dbrg3,输入yes。
之后再检验下,看看需不需要输入密码
3.Hadoop环境配置
在dbrg1中,打开hadoop目录,ls下,发现了conf文件夹,这个里面全是配置,打开
(1)修改hadoop_env.sh,输入:
export HADOOP_HOME=/home/dbrg/HadoopInstall/hadoop
export JAVA_HOME=/usr/java/jdk1.7.0
说明:根据实际的安装路径来,这是我机子上的
(2) 修改masters
删除localhost,改为dbrg1
(3)修改slaves
删除,改为dbrg2、dbrg3
(4)修改core-sit.html
在configuration之间加入:
<property>
<name>fs.default.name</name>
<value>hdfs://dbrg1:9000</value>
<description>The name and URI of the default FS.</description>
</property>
(5)修改mapred-site.html
在configuration之间加入:
<property>
<name>mapred.job.tracker</name>
<value>dbrg1:9001</value>
<description>Map Reduce jobtracker</description>
</property>
(6)修改hdfs-site.html
在configuration之间加入:
<property>
<name>dfs.replication</name>
<value>2</value>
<description>Default block replication</description>
</property>
(7)环境配置的拷贝
利用scp命令将上面修改的文件,替代dbrg2和dbrg3中的相应文件
4.HDFS的运行
在dbrg1中初始化namenode,在hadoop目录下,输入
bin/hadoop namenode -format
然后再三台机器上都要bin/start-all.sh下,启动了
在dbrg1上可以查看,输入jps;或者可以通过http://dbrg1:50070查看,页面如下
一些命令:bin/hadoop fs -mkdir [文件夹名称] //建立文件夹
bin/hadoop fs -ls //查看当前的HDFS根目录
bin/hadoop fs -rmr [文件或文件名] //删除根目录下的文件或文件夹
bin/hadoop dfs -put [文件名1] [文件名2]//将dbrg1中hadoop目录下的文件名1拷贝到HDFS中,且文件名为文件名2
5.Mapreduce的示例运行
首先可以拷贝一下文本文件到文件夹input,然后放到hadoop下,在终端中进入hadoop目录,输入:
bin/hadoop dfs -put input in //这样把input上传到了hadoop中,且名字为in
启动下bin/start-mapred.sh,之前应该都启动了
执行例子,输入:
bin/hadoop jar hadoop-0.20.0-examples.jar wordcount in out//输入为in,输出在out中,这两文件都在HDFS中
查看结果:bin/hadoop dfs -cat out/*
另外还可以将HDFS中的文件复制到本地文件系统中:bin/hadoop dfs -get [文件名1] [文件名2]//把HDFS中的1拷贝到本地的hadoop,名字为2
说明:还可以通过http://dbrg1:50030查看,由于我的in中文件过多,还在执行,好了,只好吃饭去,等它执行了。。。。
参考:
http://www.cnblogs.com/wayne1017/archive/2007/03/20/678724.html
http://cloud.csdn.net/a/20100810/278028.html
http://www.cnblogs.com/88999660/articles/1581524.html
http://exceljava.iteye.com/blog/367193
感谢这些博主的奉献精神,小弟终于配好了,但是路漫漫长,配置好才是开始之路~~
- 分布式Hadoop的搭建(Ubuntu)
- Ubuntu搭建hadoop集群(分布式)
- ubuntu 搭建伪分布式hadoop
- Ubuntu Hadoop伪分布式搭建
- Ubuntu Hadoop 完全分布式搭建
- hadoop的分布式搭建
- 分布式Hadoop的搭建
- ubuntu 13.04 hadoop伪分布式环境的搭建
- Ubuntu环境Hadoop全分布式环境搭建 (学习笔记)
- hadoop伪分布式集群搭建与安装(ubuntu系统)
- ubuntu 14.04搭建Hadoop-2.7.2(完全分布式)
- Spark分布式搭建(4)——ubuntu下Hadoop分布式搭建
- Ubuntu上搭建Hadoop环境(伪分布式)
- ubuntu 12.10 hadoop全分布式环境搭建
- Ubuntu hadoop 伪分布式环境搭建步骤
- Ubuntu下搭建Hadoop伪分布式
- hadoop分布式集群的搭建
- Hadoop的伪分布式搭建
- [linux] 如何在vim里面把空格缩进改为tab缩进
- matlab算法耗时计算
- Xcode GDB 调试
- iphone游戏之旅第一周
- 如何改变ListCtrl中滚动条的位置?
- 分布式Hadoop的搭建(Ubuntu)
- [News]CERN:上帝粒子能否发现2012年见分晓
- 变量初始化
- 关于bitmap和bitmapdrawable之间的转换
- Log4j实战
- 引用】xcode with gdb(转)
- 不重启Linux服务器关闭SeLinux的方法
- linux 终端中向其他用户发送消息
- Windows has triggered a breakpoint