1、安装JDK(此处以安装JDK1.6为例,具体安装JDK的版本不限)
(1)下载安装JDK:确保计算机联网之后命令行输入下面命令安装JDK
sudo apt-get install sun-java6-jdk
(2)配置计算机Java环境:打开/etc/profile,在文件最后输入下面内容
export JAVA_HOME = (Java安装目录)
export CLASSPATH = ".:$JAVA_HOME/lib:$CLASSPATH"
export PATH = "$JAVA_HOME/:PATH"
(3)验证Java是否安装成功
输入 java -version ,输出Java版本信息即为安装成功。
2、安装配置SSH
(1)下载安装SSH:同样在命令行输入下面命令安装SSH
sudo apt-get install ssh
(2)配置无密码登录本机:在命令行输入下面两条命令
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
直接回车,完成后会在~/.ssh/生成两个文件:id_rsa和id_rsa.pub;这两个成对出现,类似钥匙和锁。
再把id_rsa.pub追加到授权key里面(当前并没有authorized_keys文件)
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3)验证SSH是否安装成功
输入 ssh localhost 。如果显示本机登录成功就表明安装成功。
3、关闭防火墙
$sudo ufw disable
注意:这步非常重要,如果不关闭,会出现找不到datanode的问题
4、安装运行Hadoop(以0.20.2版本为例)
(1)下载Hadoop:在http://www.apache.org/dyn/closer.cgi/hadoop/core/页面上下载Hadoop。
(2)安装配置Hadoop
单节点配置:
安装单节点的Hadoop无需配置,在这种方式下,Hadoop被认作为一个单独的Java进程。
伪分布配置:
伪分布的Hadoop是只有一个节点的集群。在这个集群中,计算机既是master也是slave,
即使 namenode也是datanode,既是jobtracker也是tasktracker。
配置的过程如下:
a、进入conf文件夹修改下面的文件。
Hadoop-env.sh中加入下面内容:
export JAVA_HOME = (JAVA安装目录)
core-site.xml文件内容修改为下面内容:
<configuration>
<!-- global properties -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/liuyazhuang/tmp</value>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml文件内容修改为下面内容:(replication默认为3,如果不修改,datanode少于三台就会报错)
<configuration>
<property>
<name>fs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml文件内容修改为下面内容:
<pre name="code" class="html">
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
b、格式化Hadoop文件系统,在命令行输入命令: bin/hadoop namenode -format
多次格式化先删除 /home/liuyazhuang/tmp(此目录与core-site.xml中配置的目录相同)这个文件夹后在执行格式化操作,
c、启动Hadoop,在命令行输入命令: bin/start-all.sh
d、验证Hadoop是否安装成功,在浏览器中输入下面网址,如果正常打开说明安装成功。
http://localhost:50030 (mapreduce的web页面) http://localhost:50070 (hdfs的web页面)
5、运行实例
(1)先在本地磁盘建立两个输入文件 file01和file02 $echo "Hello World Bye World" > file01 $echo "Hello Hadoop Goodbye Hadoop" > file02
(2)在hdfs中建立一个input目录:$hadoop fs -mkdir input
(3)将file01和file02拷贝到hdfs中: $hadoop fs -copyFromLocal /home/liuyazhuang/file0* input
(4)执行wordcount: $hadoop jar hadoop-0.20.2-examples.jar wordcount input output
(5)完成之后,查看结果 $hadoop fs -cat output/part-r-00000
export JAVA_HOME = /home/chuanqing/profile/jdk-6u13-linux-i586.zip_FILES/jdk1.6.0_13
export CLASSPATH = ".:$JAVA_HOME/lib:$CLASSPATH"
export PATH = "$JAVA_HOME/:PATH"
export HADOOP_INSTALL=/home/chuanqing/profile/hadoop-0.20.203.0
export PATH=$PATH:$HADOOP_INSTALL/bin
export HADOOP_INSTALL=/home/zhoulai/profile/hadoop-0.20.203.0
export PATH=$PATH:$HADOOP_INSTALL/bin