最近在上Advanced Topics in Cloud Computing这门课,老师布置了在windows azure上的虚拟机上配置hadoop伪分布式。以下是配置过程总结。
操作系统:ubuntu 12.04 server
hadoop版本:1.2.1
首先要确保你的操作系统里已经装了jdk,检测方法是在终端中输入:
java -version
如果有java版本信息返回,可继续下面的配置,没有的话要先装jdk
1. 解压hadoop-1.2.1.tar.gz
tar zxvf hadoop-1.2.1.tar.gz
2.将JAVA_HOME加入到hadoop-env.sh中
# The java implementation to use. Required.
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45
3.配置core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/tmp</value>
<description>A base for other temporary directories</description>
</property>
</configuration>
这里最好设置下hadoop.tmp.dir这个属性,要不然每次hadoop重启会出现问题,这里不具体介绍了。
4.配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
因为是伪分布式,这里的值设为1
5.配置mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
以上hadoop部分的配置就结束了,因为伪分布式本机既是namenode也是datanode,namenode连接datanode的时候需要输入登陆密码,所以要设置ssh免密码登陆
6.配置ssh免密码登陆
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
如果终端输入ssh localhost不需要输入密码则设置成功
为了简化输入命令可以编辑.bashrc这个文件在最后加入以下内容:
export PATH=$PATH:/home/hadoop/hadoop/bin/
source .bashrc
7.格式化namenode
hadoop namenode -format
8.启动hadoop守护进程
start-all.sh
检测是否配置成功:
终端输入jps,如果返回的进程包括Namenode,Datanode,SecondaryNameNode,JobTrack,TaskTrack就说明配置成功