第2篇
终于从老师那得到了一些思路,不至于像无头苍蝇一样漫无目的。
第一步:搭建开发环境
万事开头难,搭建开发环境尤甚,搭建环境用了我们一周的时间,才勉强将它搭好。
1. 安装Ubuntu
由于Hadoop带有用Java语言编写的框架,适合运行在Linux平台上,本来是准备在win7上配置unix环境的,但最后还是决定装一个linux系统,一来感觉比较稳定,二来也是想尝试一下linux系统,我们几个人都没有用过,最后选用Ubuntu12.10.1操作系统。
在装ubuntu过程中,也遇到过许多问题,装了5次才成功。
2. 安装并配置JDK
1、安装JDK
以root用户登陆Ubuntu,下载JDK安装包jdk-7u17-linux-i586.bin,复制到目录/usr/local下,在命令行进入该目录,执行命令“./ jdk-7u17-linux-i586.bin”,命令运行完毕,将在目录下生成文件夹jdk1.7.0_17,安装完毕。
2、环境变量配置
以root用户登陆Ubuntu,在命令行中执行命令“vi /etc/profile”,并加入以下内容,配置环境变量。
# set java environment
export JAVA_HOME=/usr/local/ jdk1_7/jdk1.7.0_17
export JRE_HOME= $JAVA_HOME/jre
export PATH=$JAVA_HOME/bin: $JRE_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib: $JRE_HOME /lib
保存并退出,执行以下命令使配置生效。
chmod +x /etc/profile
source /etc/profile
3.安装Tomcat
1、上网下载最新版本的tomcat(7.0.39);
2、解压后移动到/usr/local/tomcat7文件夹下;
3、用sudo命令打开startup.sh文件,在文件最后添加:
JAVA_HOME=/usr/local/jdk1_7/jdk1.7.0_17
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
TOMCAT_HOME=/usr/local/tomcat7
这个还是比较顺利的。
4 .安装Eclipse
Eclipse是一个开放源代码的、基于Java的可扩展开发平台,我们的系统把它作为Java集成开发环境。它的安装及配置服务器流程如下:
1、从Eclipse官网下载Eclipse Java EE IDE for Web Developers :eclipse-jee-helios-SR2-linux-gtk.tar.gz(Eclipse 3.4)或INDIGO版(3.7);
2、解压到指定目录;
3、在Eclipse建立新项目:SecureCloud;
4、在“Target runtime”下点击“New Runtime”配置Tomcat;
5、为工程添加Tomcat服务器。
这个也比较简单。
5 .Hadoop伪分布模式的配置
1、伪分布式模式
由于资源及时间有限,以伪分布模式在单机上构建集群系统。在伪分布模式中,Hadoop的守护程序在本地计算机上运行,因而是在小范围内模拟集群。由于配置相似,Hadoop本身无法区分伪分布式和分布式。唯一的区别在于伪分布式是在单机器上配置,数据节点和名字节点均是一个机器 [12]。
2、SSH无密码验证配置
在伪分布模式中,NameNode将使用SSH协议启动NameNode和DataNode进程。SSH-ing是在启动集群主机上的保护进程时在每个主机上启动一个守护进程的程序。当主机是本地计算机的时候,伪分布模式是完全分布模式的一个特例,因此需要确保能以公钥无密码验证SSH登录到本地主机[12]。如果datanode主动连接namenode,datanode是客户端,则需要将datanode上的公钥信息追加到namenode中的authorized_keys之中。
在命令行中输入以下命令:
(1)安装SSH
$ sudo apt-get install ssh
(2)用空字符生成一个新SSH密钥
$ ssh keygen –t rsa –p ‘’ –f ~/.ssh/id_rsa
(3)将每个datanode的公钥信息追加到namenode
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、Hadoop配置
(1)下载hadoop-1.0.4,将其解压到/home/fancy/new目录下,解压后的目录为/home/fancy/new/ hadoop-1.0.4
(2)修改Hadoop的配置文件
(a)配置hadoop-env.sh
$ vi /home/fancy/new/ hadoop-1.0.4/conf/hadoop-env.sh
# set java environment
export JAVA_HOME=/usr/program/jdk1.7.0_17/
(b)配置conf/hadoop-site.xml
将下面hadoop-site.xml文件中的三块参数分别复制到core-site.xml,hdfs-site.xml和mapred-site.xml三个配置文件中。
<!—core-site.xml--> <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> <!—hdfs-site.xml--> <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> <!—mapred-site.xml--> <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration> |
(3)在Eclipse中配置Hadoop
为了在Eclipse中开发Hadoop ,需将hadoop-eclipse插件包复制到Eclipse目录下的plugins文件中。可以用特定命令自动编译生成hadoop-eclipse-plugin-${version}.jar。为简化操作,直接在网上下载编译成功的插件包,放置于Eclipse目录下的plugins文件中。
这里遇到了一些麻烦,因为插件包是从网上下的,里面的包不全,所以在运行过程中无法使用,后来把hadoop中的一些包导入后,才能用的。
6.启动工程
在伪分布式环境中,每次重新启动系统的时候都需要格式化HDFS文件系统,否则会出现链接失败的情况。在命令行输入以下命令,对namenode进行格式化:
$ '/home/fancy/new/hadoop-1.0.4/bin/hadoop' namenode –format
$ /home/fancy/new/hadoop-1.0.4/bin
$ ./start-all.sh
由于Eclipse使用hadoop插件交作业时,会默认以DrWho身份将作业写入HDFS文件系统中,对应的也就是HDFS上的/user/hadoop,由于用户DrWho对目录并没有写入权限,所以会导致异常发生。需要在命令行中执行获取权限操作:
$ ./hadoop fs -chmod 777 /
经过一周的时间,开发环境总算搭好了,我们兴致满满地进入了开发阶段。