Ubuntu12.10搭建伪分布模式Hadoop1.1.2
1.添加hadoop用户到系统用户
安装前要做一件事——添加一个名为hadoop到系统用户,专门用来做Hadoop测试。
~$ sudo addgroup hadoop
~$ sudo adduser --ingroup hadoop
hadoop
对hadoop用户添加管理员权限
~$ cd /etc
编辑sudoers文件
~$ sudo vi sudoers
在root用户下添加如下代码
hadoop
ALL=(ALL:ALL) ALL
2.安装ssh
由于Hadoop用ssh通信,先安装ssh
~$ sudo apt-get install
openssh-server
如果提示没有找到该文件则需要修改/etc/apt/sources.list中的软件源,这里采用http://ubuntu.xjtuns.cn/,之后
~$ sudo apt-get update
~$ sudo apt-get upgrade
ssh安装完成以后,先启动服务:
~$ sudo /etc/init.d/ssh
start
启动后,可以通过如下命令查看服务是否正确启动:
~$ ps -e | grep ssh
作为一个安全通信协议,使用时需要密码,因此我们要设置成免密码登录,生成私钥和公钥:
~$ ssh-keygen -t rsa -P ""
因为我已有私钥,所以会提示是否覆盖当前私钥。第一次操作时会提示输入密码,按Enter直接过,这时会在~/home/{username}/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥,现在我们将公钥追加到authorized_keys中(authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容):
~$ cat ~/.ssh/id_rsa.pub >>
~/.ssh/authorized_keys
现在可以登入ssh确认以后登录时不用输入密码:
~$ ssh localhost
3.安装Java
~$ sudo apt-get install openjdk-7-jdk
~$ java -version
4.安装hadoop 1.1.2
到http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/下载hadoop源文件,这里选择hadoop
1.1.2。解压并放到你希望的目录中。我是放到/usr/local/hadoop
~$ sudo tar xzf
hadoop-1.1.2.tar.gz
~$ sudo mv hadoop-1.1.2 /usr/local/hadoop
要确保操作都是在用户hadoop下完成的:
~$ sudo chown -R hadoop:hadoop
/usr/local/hadoop
5.设定hadoop-env.sh(Java 安装路径)
进入hadoop目录,打开conf目录下到hadoop-env.sh,添加以下信息:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin
并且,让环境变量配置生效source
~$ source
/usr/local/hadoop/conf/hadoop-env.sh
6.设定*-site.xml
这里需要设定3个文件:core-site.xml,hdfs-site.xml,mapred-site.xml,都在/usr/local/hadoop/conf目录下
core-site.xml: Hadoop
Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
hdfs-site.xml: Hadoop
守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xml: MapReduce
守护进程的配置项,包括jobtracker和tasktracker。
首先在hadoop目录下新建几个文件夹
~/hadoop$ mkdir tmp
~/hadoop$ mkdir
hdfs
~/hadoop$ mkdir hdfs/data
修改data目录权限(启动datanode守护进程需要该权限)
chmod g-w /usr/local/hadoop/hdfs/data
接下来编辑那三个文件:
core-site.xml:
fs.default.name
hdfs://localhost:9000
hadoop.tmp.dir
/usr/local/hadoop/tmp
hdfs-site.xml:
dfs.replication
1
dfs.name.dir
/usr/local/hadoop/hdfs/name
dfs.data.dir
/usr/local/hadoop/hdfs/data
mapred-site.xml:
mapred.job.tracker
localhost:9001
接着格式化HDFS
~$ source
/usr/local/hadoop/conf/hadoop-env.sh
~$ hadoop namenode -format
7.启动hadoop
在hadoop目录中的bin目录下执行start-all.sh来启动所有守护进程
~$ cd bin
~$
start-all.sh
用Java的jps命令列出所有守护进程来验证安装成功
~$ jps
如果出现如下列表,表明成功
****** Jps
****** JobTracker
****** NameNode
****** DataNode
****** TaskTracker
****** SecondaryNameNode
8.检查运行状态
所有的设置已完成,Hadoop也启动了,现在可以通过下面的操作来查看服务是否正常,在Hadoop中用于监控集群健康状态的Web界面:
http://localhost:50030/
- Hadoop 管理介面
http://localhost:50060/
- Hadoop Task Tracker 状态
http://localhost:50070/
- Hadoop DFS 状态
9.配置Eclipse下hadoop开发环境
在Ubuntu软件中心安装Eclipse后将Hadoop-2:Hadoop-Eclipse-1.1.2插件放到/usr/lib/eclipse/plugin目录下
~$ sudo mv hadoop-eclipse-1.1.2
/usr/lib/eclipse/plugin
启动eclipse,配置hadoop installation
directory。如果安装插件成功,打开Window-->Preferens,你会发现Hadoop
Map/Reduce选项,在这个选项里你需要配置Hadoop installation directory =
/usr/local/hadoop。配置完成后退出
配置Map/Reduce Locations
在Window-->Show View中打开Map/Reduce Locations,在Map/Reduce
Locations中新建一个Hadoop Location。在这个View中,右键-->New Hadoop
Location。在弹出的对话框中你需要配置Location name,如Hadoop,还有Map/Reduce Master和DFS
Master。这里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口。
之后即可创建MapReduce工程,注意在运行项目时弹出的Run
Configurations中,双击Java
Application,新建一个application点击Arguments配置运行参数,即为你要传给程序的输入文件夹以及程序计算后结果保存的文件夹,如:hdfs://localhost:9000/tmp/wordcount/word.txt
hdfs://localhost:9000/tmp/wordcount/out
这样,用于开发和调试的伪分布模式hadoop就基本搭建成功了。Ps.之后用到的Ffmpeg等程序可直接在Ubuntu程序中心中安装。