在Ubuntu上安装Hadoop(单机模式)
目录:
安装准备
JDK 6
配置SSH
Hadoop
配置
hadoop-env.sh
conf/hdfs-site.xml
通过 NameNode 来格式化 HDFS 文件系统
最近开始学习Hadoop,在这里记录一下学习的过程。
Hadoop是一个用Java编写的用于运行与物理集群中的框架,吸收了GFS和mapreduce编程模型的特性。Hadoop的HDFS是一个高容错的分布式文件系统,并且它被设计运行于低成本的硬件上,能够提供很大的数据吞吐量,很适合那些数据量很大的应用程序。
接下来,开始准备安装hadoop。我用的操作系统是 Ubuntu 12.10 server,hadoop的版本是1.2.0。
安装准备
JDK 6
Hadoop需要在JDK1.5以上的环境下才能运行,目前推荐使用JDK 6 。
$ sudo apt-get update
$ sudo apt-get install openjdk-6-jdk
安装完成之后,文件会被放置在 /usr/lib/jvm/java-6-openjdk-amd64 这个路径下。
配置SSH
Hadoop需要用SSH来管理它的节点。针对单机的情况,我们需要配置SSH让运行hadoop的用户能够登录本机。
首先,我们需要为运行hadoop的用户生成一个SSH key:
$ ssh-keygen -t rsa -P ""
然后,让你可以通过新生成的key来登录本地机器。
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
准备结束,下面开始安装hadoop。
Hadoop
在hadoop官网上下载 1.2.0 版本的软件,解压,然后把文件放到 /usr/local/ 路径下:
$ tar -zxvf hadoop-1.2.0.tar.gz
$ mv hadoop-1.2.0 hadoop
$ cp -r hadoop/ /usr/local/
接下来开始设置一些环境变量,需要在 ~/.bashrc 文件里面添加一下内容:
# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
# Some convenient aliases and functions for running Hadoop-related commands
unalias fs &> /dev/null
alias fs="hadoop fs"
unalias hls &> /dev/null
alias hls="fs -ls"
lzohead () {
hadoop fs -cat $1 | lzop -dc | head -1000 | less
}
# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/bin
在修改完成后保存,重新登录,相应的环境变量就配置好了。
接下来开始配置Hadoop相关的东西,首先来看张图,了解下HDFS的结构: