专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » hadoop安装:Hadoop安装部署指南 »正文

hadoop安装:Hadoop安装部署指南

来源: 发布时间:星期四, 2009年2月12日 浏览:93次 评论:0


最近直在安装部署这个Hadoop集群,现在已经成功了,分享下经历.我基本上是从来没用过Linux,只会些简单命令,这回成功让我信心大增.

首先我推荐有能力朋友先看以下两篇文章,基本上就会成功部署了.

单节点Hadoop配置: http://www.michael-noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_(Single-Node_Cluster)
多节点Hadoop配置: http://www.michael-noll.com/wiki/Running_Hadoop_On_Ubuntu_Linux_(Multi-Node_Cluster)

然后我会简要介绍下我部署经历,希望能帮到有需要人:

{零}:首先得用Linux,下载好JDK包和Hadoop包. 我JDK是1.6_update11,Hadoop包是0.19.0.

{}:安装JDK在 /usr/java/jdk1.6.0.11,并且在/etc/profile中最后行加入:
[
export JAVA_HOME=/usr/java/jdk1.6.0.11
export CLASSPATH =.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
]
这样在每次系统启动时候就可以自动设置这些系统值了.
然后测试下命令:[java -version]和[javac -version]应该都能看到Java版本是1.6.0_11.


{ 2}:然后配置主机IP地址和名称,在文件 /etc/hosts里面配置,比如
192.168.0.1 master master
192.168.0.2 slave slaveN
这里配置完以后似乎要重启机器才能使配置名称有效,并且定要在SSH产生KeyGen的前重起,产生keygen时候跟主机名有关.


{ 3}:然后需要配置ssh,这里是为了让master通过ssh能顺利访问master和slave,我以前整理总结如下:


[//2008-12-12 14:37


SSH使用指南


配置网路机器IP和机器名地方 /etc/hosts


SSH具体原理去网上找吧,使用过程主要是如下步骤,假设用户名为aliang,并用此用户登录(切记,切记):


(1) ssh-keygen -t rsa -P "" [ 产生密匙,密码为空]
自动产生文件id_rsa(私用密匙)和id_rsa.pub(公用密匙) 在文件夹 /home/aliang/.ssh/ 下


(2)将公用密匙id_rsa.pub内容添加到authorized_keys文件中,命令如下: [cat id_rsa.pub >> authorized_keys]
为什么要叫authorized_keys这个名字呢? 在sshd配置项(AuthorizedKeyFile)下设置文件地址为在用户目录下 .ssh/authorized_keys, 如果你想改名,也要更改相应配置文件就行了.


(3)确定/home/aliang/.ssh/文件夹属于aliang,如不属于用 [chown -R aliang /home/aliang/.ssh/] 更改 ; 定要确定.ssh文件夹权限为700, authorized_keys权限为600. 命令如下: [chmod 700 /home/aliang/.ssh] ; [chmod 600 /home/aliang/.ssh/authorized_keys]
步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写权限,否则SSH是不会工作.
另外以.开头文件Linux默认是不显示,要用[ls -la]才能看见.


(4)使用root用户,更改sshd配置文件: [vi /etc/ssh/sshd_config] : 将PasswordAuthentication 改为 no; AuthorizedKeyFile .ssh/authorized_keys 项前#去掉


(5)继续使用root用户,重起sshd : [service sshd restart]


(6)用aliang用户,ssh连接: ssh hostName, 如果不出意外,第次要输入yes,在.ssh目录底下会自动产生个known_hosts文件.


单机SSH就基本配置完毕了.


--- ---


下面是集群其他机器SSH配置


(7)其他机器上也要创建aliang这个用户,产生文件夹 /home/aliang


(8)将第(2)步产生authorized_keys拷贝到其他机器 /home/aliang/.ssh/ 文件夹中,如果.ssh/文件夹不存在用mkdir创建. 拷贝此文件种思路方法为: 在第台机器上/home/aliang/.ssh/目录下使用:[scp authorized_keys othermachine:/home/aliang/.ssh/] 这时提示需要输入其他机器aliang用户密码


(9)将其他机器按照的前(3) (4) (5) 就可以了,在(6)步中在第台机器上用 ssh othermachine 命令连接测试是否成功


(10) 从此,用第台机器就可以自由用ssh连接其他机器了,并且不需要密码,授权文件已经拷贝到其根目录下了. 第台机器在Hadoop中即为Master了.


SSH使用配置指南完毕.


//12-12 17:16]


{ 4}:将Hadoop包解压到/usr/hadoop文件夹中,并确认此文件夹拥有人为aliang,命令如下[chown -R hadoop /usr/hadoop]


{ 5}:配置/usr/hadoop/conf/hadoop-env.sh中Java路径,应该把其中注释JAVA_HOME行改为,这里必须要改,且等号右面不能用${JAVA_HOME}替代(脚本认不出来),最终结果为
export JAVA_HOME=/usr/java/jdk1.6.0.11


{ 6}: 配置conf/hadoop-site.xml文件,其实开始部署时,仅有4个关键配置项需要配置


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>


下面配置临时文件目录
<property>
<name>hadoop.tmp.dir</name>
<value>/your/path/to/hadoop/tmp/dir/hadoop-${user.name}</value>
</property>

下面配置文件系统默认管理者NameNode地址
<property>
<name>fs.default.name</name>
<value>hdfs://master:54310</value>
</property>

下面配置任务调度系统调度者JobTracker地址
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>

下面配置文件系统中文件备份拷贝数
<property>
<name>dfs.replication</name>
<value>2</value>
</property>



</configuration>






{ 7}:在192.168.0.1(master)上配置你master和slave机器列表
配置master在: /usr/hadoop/conf/masters 文件里面输入单独行:master (就是你/etc/host里面主机名称)
配置slave在: /usr/hadoop/conf/slaves 文件里面输入你slave (开始单机模式下测试可以写master,但在其集群中,就要写入slave,每个slave主机名字都要另起行,并且配置这些slave都要能用ssh slave 不输入密码连接成功)


{ 8}:全部配置文件搞定后,格式化文件系统 /usr/hadoop/bin/hadoop namenode -format
此处要注意,每次修改过hadoop配置文件后(无论master还是slave),最好重新格式化下文件系统,否则有时会出现DateNode启动不起来情况.


{ 9}:开启你Hadoop,使用命令: /usr/hadoop/bin/start-all.sh


{十}: 运行你测试:
先写几个文本文件,然后拷贝到你dfs文件系统中: [/usr/hadoop/bin/hadoop dfs -copyFromLocal /tmp/words(这是你文本文件所在文件夹) wordsTest(这是DFS文件文件夹名,分布在集群中)]
运行例子命令: [/usr/hadoop/bin/hadoop jar hadoop-0.19.0-examples.jar wordcount wordsTest wordsTest-output]


{十}:关闭Hadoop,使用命令: /usr/hadoop/bin/stop-all.sh


{十 2}:把master中配置好/usr/hadoop 文件夹考到别机器上,使用命令[scp -r /usr/hadoop/ slave:/usr/]


以上就是这些,写有些乱,其实还是建议大家去看开头那两个帖子,步来,很简单,如果中间出了问题,首先要检查各个配置文件有没有,用户名路径是否致,文件所属和权限对不对,再次看DFS文件系统是否格式化,测试输出文件是否重名,最后可以看看hadoop/logs目录里面log,也许会有意想不到帮助.




更多MapReduce和Hadoop信息:


Hadoop 官方主页: http://hadoop.apache.org/
Hadoop Wiki: http://wiki.apache.org/hadoop/
Hadoop 中文信息网: http://www.hadoop.org.cn/
IBM上也有不少讲解原理文章,不过还是建议去看看Google论文,搜索MapReduce就能找到了.


其实HadoopCore基础就是个分布式文件系统HDFS和个MapReduce分布式计算框架.定要搞清楚这两个原理和基本概念,以后应用和开发就会很清楚了.这方面网上有很多资料,我就不再啰嗦了.
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: