Ubuntu下安装Hadoop
本人使用的是Ubuntu12.10版本,所以有些软件不用安装(Ubuntu12.10侧边栏居然还添加了亚马逊网站,略微让我感到失望),但是在这里我会告诉大家需要安装那些必要的东西。下面我们言归正传,搭建Hadoop伪分布式集群:
1.必备的的软件包或者程序:ssh、jdk、eclipse、Hadoop,如果您的Ubuntu没有SSH Server,则可以使用:
$sudo apt-get install ssh
2.安装java开发环境(由于Hadoop的大部分应用开发都是使用java的,所以一定要有java开发环境),虽然Ubuntu中自带openjdk,但是《Hadoop权威指南》不推荐使用,所以这里我们就安装jdk吧:先下载jdk,我这里下载的是jdk-6u26-linux-i586.bin,安装目录为/opt,所以要先切换一下目录到opt下:
$sudo chmod 755 jdk-6u26-linux-i586.bin 让执行文件有被执行的权限
$./jdk-6u26-linux-i586.bin 执行jdk的安装
3.虽然已经完成了jdk的安装,但是现在在命令行下执行java、javac的操作还是不行的,所以现在要配置环境变量:
$sudo gedit /etc/profile
然后在原文档内容的最下方输入要配置的变量:
export JAVA_HOME=/opt/jdk1.6.0_14 注意:export是将变量声明为全局变量;在Linux下是严格区分大小写的,这里是配置JAVA_HOME环境变量。它指向jdk的安装目录。
export PATH=$JAVA_HOME/bin:$PATH 注意:Linux下用:来分隔路径,$PATH是用来引用原来环境变量的值,否则容易把原来的值给覆盖掉。PATH变量的作用是指定命令的搜索路径
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 注意:.是指当前目录,不能丢;配置CLASSPATH是为了能指定类的搜索路径。
然后就可以保存该文件了,注销或者重启后输入以下命令:
$java -version
如果出现你安装的jdk版本号,说明你成功了。
4.配置SSH免密码登录:
$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
这里解释一下,ssh-keygen代表生成密钥;-t表示生成的密钥类型;dsa是dsa密钥认证的意思,即密钥类型;-P(注意是大写的,我刚开始就犯了这个错误)用于提供密语;-f指定生成的密钥文件。这个命令会在.ssh文件夹下创建两个文件:id_dsa和id_dsa.pub,这是SSH的一对私钥和公钥,类似于钥匙和锁,把id_dsa.pub(公钥)追加到授权key里面去。
$cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这里是把公钥加到用于认证的公钥文件中,这里的authorized_keys是用于认证公钥的文件。
5.开始安装Hadoop了,这里我仍然安装到opt目录下,前提是已经把hadoop-0.20.2.tar.gz放到了opt目录下了:
$cd /opt
$sudo tar -zxvf hadoop-0.20.2.tar.gz
$sudo mkdir hadoop_tmp
进入hadoop-0.20.2文件夹中的conf文件夹,然后修改配置文件
core-site.xml文件(这里确定HDFS位置尤为重要,这也是为什么之前要创建hadoop_tmp的原因):
在<configuration></configuration>之间添加
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop_tmp</value>
</property>
在hdfs-site.xml文件中添加:
在<configuration></configuration>之间添加
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
在mapred-site.xml中添加:
在<configuration></configuration>之间添加
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
6.格式化HDFS,先切换到bin目录下(期间如果出现权限问题,这使用chmod命令更改文件权限):
$bin/Hadoop namenode -format
$bin/start-all.sh
7.打开浏览器,查看MapReduce和HDFS是否启动成功: