本文主要介绍hadoop在单机环境下的搭建。
操作系统:ubuntu 10.04
java运行环境:jdk6
1. 首先安装java运行环境
由于在ubutu环境下,可以直接用apt-get来安装。
sudo apt-get install openjdk-6-jdk
3. 下载配置hadoop-1.0.1
下载hadoop
可以到 http://www.filewatcher.com/m/hadoop-1.0.1.tar.gz.60811130-0.html上下载
解压即可
进入home目录,然后安装openssh
sudo apt-get install openssh-server
建立ssh-key
ssh-keygen -t rsa -P ""
选项按enter默认即可
接下来,启用ssh密钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
/etc/init.d/ssh reload
中间可能出现的问题:
1. Agent admitted failure to sign using the key 解法
sudo ssh-add ~/.ssh/id_rsa
2. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 的解决办法
删除.ssh/known_hosts文件。
在本地机器上曾经用SSH登录过这台远程计算机,因而留下了known_hosts的记录,在远程计算机重新安装系统后不能够通过鉴权.
3.Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_dsa_key
重新建立ssh_host_rsa_key和ssh_host_dsa_key。
现在就可以尝试登入下localhost看是否时免密码登入
接下来,配置hadoop
配置conf/hadoop-env.sh
配置JAVA_HOME、PATH
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:/opt/hadoop/bin
注意:有些文章上要配置HADOOP_HOME,在这里我不配置,有时会遇到$HADOOP_HOME is deprecated.
在~/.bashrc中添加 export HADOOP_HOME_WARN_SUPPRESS=1,然后运行source命令使之生效。
配置 conf/core-site.xml
<configuration> <property>
<name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop/hadoop-${user.name}</value> </property> </configuration>
配置conf/hdfs-site.xml
<configuration> <property>
<name>dfs.replication</name> <value>1</value> </property> </configuration>
注意这里只需要1个备份
配置conf/mapred-site.xml
<configuration> <property>
<name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
好了,hadoop基本配置完呢,接下来下我们的环境
格式化HDFS
source /opt/hadoop/conf/hadoop-env.sh 使得hadoop环境生效
hadoop namenode -format格式化HDFS
格式化过程中可能发生Format aborted in /home/hadoop/tmp/dfs/name错误,只要删除/home/hadoop/tmp下的所有文件然后再执行就可以了。
运行Hadoop
现在所有的都配置完呢,现在运行bin/start-all.sh
浏览NameNode和JobTracker的网络接口,它们的地址默认为:
- NameNode - http://localhost:50070/
- JobTracker - http://localhost:50030/
将输入文件拷贝到分布式文件系统:$ bin/hadoop fs -put conf input
运行发行版提供的示例程序:$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
查看输出文件:
将输出文件从分布式文件系统拷贝到本地文件系统查看:$ bin/hadoop fs -get output output $ cat output/*
在eclipse上配置hadoop编译环境
下载hadoop 1.0.1 eclipse plugin,然后放到eclipse的plugin目录里。
如果安装插件成功,打开Window-->Preferens,你会发现Hadoop Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory。配置完成后退出。
然后配置hadoop目录
接下来配置hadoop Location.打开Windows -> Show View -> MapReduce Locations
下面就可以开始hadoop之旅了。
下面总结下在运行hadoop程序过程中可能遇到的问题:
1. hadoop namenode 无法启动
每次开机重启之后,运行start-all.sh,总是无法运行那么namenode,主要原因是由于tmp文件,默认的tmp文件每次重启之后都会清空,导致无法开启namenode,只要在core-site.xml中配置
<property>
<name>hadoop.tmp.dir</name>
<value>/home/XXXX/hadoop_tmp</value>
<description>A base for other temporary directories.</description>
</property>