【安装版本】
1、WMware 7.1、RedHat Enterprise Linux 5
2、Hadoop 0.22
【安装过程】
配置的过程实际就是修改相关配置文件的过程,这里总结下配置单节点(single node) 环境下的 单节点配置和伪分布式配置(standalone & Pseudo-Distributed)
1、配置之前需要配置 conf/hadoop_env.sh, 主要为hadoop运行环境是加入JAVA_HOME的环境变量,该配置文件中已经有关于JAVA_HOME 的注解(linux中的注释都是采用#),去掉注释加入JAVA_HOME的地址即可(可以使用命令 $echo &JAVA_HOME查看地址)----- 要是没有进行这一步运行是会提示没有找到JAVA_HOME;
2、配置好java_home环境之后在安装文件的common/docx/index.html 中 有一个例子,在进入到hadoop的安装文件目录之后,运行下面的例子,下面的例子的意思是现在当前目录下创建一个 input文件夹,然后将当前目录下的conf文件夹中的所有xml格式的文件就拷贝到input文件夹中,本地执行hadoop操作(bin/hadoop),jar是运行jar架包,选择一个具体的jar如hadoop-mapred-examples-0.22.0.jar, grep语句是正则匹配的意思,格式是 grep <indir <outdir> <regex> ,regex即正则表达式意思,‘dfs[a-z.]+'的意思就是以dfs为前缀的字符串。输出文件夹不存在的时候就自动创建一个;
3、打开显示output文件夹中的所有文件,这个例子显示的 1 dfsadmin
4、注意要是已经配置好hadoop伪分布式环境之后执行这个例子,可能出现没有输入路径的错误。原因是standalone执行的都是本地操作,而伪分布式和分布式中的文件都是hdfs中,例如创建 /root/input文件夹作为输入文件夹,由于此时已经配置conf中相关配置文件,故hadoop在hdfs端没有找到这个输入文件夹而报错
【伪分布式的配置】
伪分布式的配置概括起来就是修改三个配置文件已经设置节点间无密码访问(伪分布式也要设置无密码访问,ssh localhost)
1、配置三个文件,在安装文件的 conf/docs/index.htm查看配置都有以下说明:
2、配置无密码访问和初次运行时格式化系统以及启动hadoop
注意启动hadoop时,使用上述命令已经过时,最好使用bin/start-dfs.sh、bin/start-mapred.sh分别启动,查看启动的结果可以用命令 $ jps (正常其中后有6个选项)。为了方便每次执行hadoop命令是可以讲bin/hadoop 的执行路径写入到系统环境变量中 在/etc/profile文件中的path路径中加入 :haoop安装路径/bin即可,这样以后可以在任何目录下就直接执行hadoop,但是注意涉及一些生成目录等的当前目录
3、伪分布式中都是在hdfs中执行,故都是在hdfs中查看相关文件,在hadoop安装文件目录下
$bin/hadoop fs -ls :查看hdfs中有哪些文件(夹)
$bin/hadoop fs -mkdir 文件夹名 :在hdfs中创建文件夹
$bin/hadoop fs -rmr 文件夹名:在hdfs中删除文件夹
$bin/hadoop fs -put <本地文件夹名> <hdfs中文件夹名(没有的话就自动创建一个)>:把linux本地文件拷贝到hdfs中
$bin/hadoop fs -get <hafs中文件名> <本地文件名(没有的话就自动创建一个)> :把hdfs中文件拷贝到本地
$bin/hadoop fs -help :查看帮助
注意:hadoop没有目录的概念,跟没有 cd 的概念,要查看必须使用绝对路径,如有hdfs中有某个文件夹 output, 要查看里面的所有内容,可以使用
$bin/hadoop fs -ls ./output/*
4、伪分布式的一个执行例子(在安装文件 common/docx
该例子的意思就是在hdfs中创建input文件夹,并把本地conf文件夹中的内容拷到input中,在hdfs中执行一个jar架包,并且将结果放在hdfs中的output文件夹中,然后将hdfs中的output文件夹拷贝到本地显示或者是直接在hdfs中显示。
5、伪分布式执行wordcount例子
同上面所述,也是先再hdfs中准备好input内容,然后执行: $ hadoop jar hadoop-*-examples.jar wordcount input output,相当于在执行jar架包中的wordcount程序,可以选着在hdfs中查看output的内容,也可以选择在用 -get 到本地然后查看。在hdfs中查看的时候可以选着先 $ hadoop fs -ls ./output/* 查看所有文件,其中有一个part-r-00000 文件,然后 $ hadoop fs -cat ./output/part-r-00000即可(注意必须使用绝对路径)
hadoop伪分布式运行wordcount 实例Fedora14
6、RedHat用WebUI查看namenode和datanode
RedHat Enterprise 由于比较严格的防火墙控制,似的在浏览器中庸webui无法查看。可以使用 $service iptables stop/start临时关闭和启动防火墙
伪分布式查看 使用虚拟机的ip地址即可:如192.168.111.129:50030/50070