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
相关文章读者评论发表评论 |
|