| 
       
	1、开发配置环境: 
	开发环境:Win7(64bit)+Eclipse(kepler service release 2) 
	配置环境:Ubuntu Server 14.04.1 LTS(64-bit only) 
	辅助工具:WinSCP + Putty 
	Hadoop版本:2.5.0 
	Hadoop的Eclipse开发插件(2.x版本适用):http://pan.baidu.com/s/1eQy49sm 
	服务器端JDK版本:OpenJDK7.0 
	以上所有工具请自行下载安装。 
	2、Hadoop服务端配置(Master节点) 
	最近一直在摸索Hadoop2的配置,因为Hadoop2对原有的一些框架API做了调整,但也还是兼容旧版本的(包括配置)。像我这种就喜欢用新的东西的人,当然要尝一下鲜了,现在网上比较少新版本的配置教程,那么下面我就来分享一下我自己的实战经验,如有不正确的地欢迎指正:)。 
	假设我们已经成功地安装了Ubuntu Server、OpenJDK、SSH,如果还没有安装的话请先安装,自己网上找一下教程,这里我就说一下SSH的无口令登陆设置。首先通过 
 
	- 
		$ ssh localhost 
 
 
	测试一下自己有没有设置好无口令登陆,如果没有设置好,系统将要求你输入密码,通过下面的设置可以实现无口令登陆,具体原理请百度谷歌: 
 
	- 
		$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  
 
	- 
		$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 
 
 
	其次是Hadoop安装(假设已经安装好OpenJDK以及配置好了环境变量),到Hadoop官网下载一个Hadoop2.5.0版本的下来,好像大概有100多M的tar.gz包,下载 下来后自行解压,我的是放在/usr/mywind下面,Hadoop主目录完整路径是/usr/mywind/hadoop,这个路径根据你个人喜好放吧。 
	解压完后,打开hadoop主目录下的etc/hadoop/hadoop-env.sh文件,在最后面加入下面内容: 
 
	- 
		# set to the root of your Java installation  
 
	- 
		  export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64  
 
	- 
		    
 
	- 
		# Assuming your installation directory is /usr/mywind/hadoop  
 
	- 
		export HADOOP_PREFIX=/usr/mywind/hadoop 
 
 
	为了方便起见,我建设把Hadoop的bin目录及sbin目录也加入到环境变量中,我是直接修改了Ubuntu的/etc/environment文件,内容如下: 
 
	- 
		PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-7-openjdk-amd64/bin:/usr/mywind/hadoop/bin:/usr/mywind/hadoop/sbin" 
 
	- 
		JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64" 
 
	- 
		CLASSPATH=".:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" 
 
 
	也可以通过修改profile来完成这个设置,看个人习惯咯。假如上面的设置你都完成了,可以在命令行里面测试一下Hadoop命令,如下图: 
	  
	假如你能看到上面的结果,恭喜你,Hadoop安装完成了。接下来我们可以进行伪分布配置(Hadoop可以在伪分布模式下运行单结点)。 
	接下来我们要配置的文件有四个,分别是/usr/mywind/hadoop/etc/hadoop目录下的yarn-site.xml、mapred-site.xml、hdfs-site.xml、core-site.xml(注意:这个版本下默认没有yarn-site.xml文件,但有个yarn-site.xml.properties文件,把后缀修改成前者即可),关于yarn新特性可以参考官网或者这个文章http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/。 
	首先是core-site.xml配置HDFS地址及临时目录(默认的临时目录在重启后会删除): 
 
	- 
		<configuration> 
 
	- 
		    <property> 
 
	- 
		        <name>fs.defaultFS</name> 
 
	- 
		        <value>hdfs://192.168.8.184:9000</value> 
 
	- 
		         <description>same as fs.default.name</description> 
 
	- 
		    </property> 
 
	- 
		     <property> 
 
	- 
		       <name>hadoop.tmp.dir</name> 
 
	- 
		       <value>/usr/mywind/tmp</value> 
 
	- 
		        <description>A base for other temporary directories.</description> 
 
	- 
		     </property> 
 
	- 
		</configuration> 
 
 
	然后是hdfs-site.xml配置集群数量及其他一些可选配置比如NameNode目录、DataNode目录等等: 
 
	- 
		<configuration> 
 
	- 
		     <property> 
 
	- 
		        <name>dfs.namenode.name.dir</name> 
 
	- 
		        <value>/usr/mywind/name</value> 
 
	- 
		        <description>same as dfs.name.dir</description> 
 
	- 
		     </property> 
 
	- 
		     <property> 
 
	- 
		        <name>dfs.datanode.data.dir</name> 
 
	- 
		        <value>/usr/mywind/data</value> 
 
	- 
		        <description>same as dfs.data.dir</description> 
 
	- 
		     </property> 
 
	- 
		     <property> 
 
	- 
		        <name>dfs.replication</name> 
 
	- 
		        <value>1</value> 
 
	- 
		        <description>same as old frame,recommend set the value as the cluster DataNode host numbers!</description> 
 
	- 
		     </property> 
 
	- 
		</configuration> 
 
 
	接着是mapred-site.xml配置启用yarn框架: 
 
	- 
		<configuration> 
 
	- 
		    <property> 
 
	- 
		        <name>mapreduce.framework.name</name> 
 
	- 
		        <value>yarn</value> 
 
	- 
		    </property> 
 
	- 
		</configuration> 
 
 
	最后是yarn-site.xml配置NodeManager: 
 
	- 
		<configuration> 
 
	- 
		 <!-- Site specific YARN configuration properties -->   
 
	- 
		  <property>   
 
	- 
		         <name>yarn.nodemanager.aux-services</name>   
 
	- 
		         <value>mapreduce_shuffle</value>   
 
	- 
		  </property>   
 
	- 
		</configuration> 
 
 
	注意,网上的旧版本教程可能会把value写成mapreduce.shuffle,这个要特别注意一下的,至此我们所有的文件配置都已经完成了,下面进行HDFS文件系统进行格式化: 
 
	- 
		$ hdfs namenode -format 
 
 
	然后启用NameNode及DataNode进程: 
 
	- 
		$ start-yarn.sh 
 
 
	然后创建hdfs文件目录 
 
	- 
		$ hdfs dfs -mkdir /user  
 
	- 
		$ hdfs dfs -mkdir /user/a01513 
 
 
	注意,这个a01513是我在Ubuntu上的用户名,最好保持与系统用户名一致,据说不一致会有许多权限等问题,我之前试过改成其他名字,报错,实在麻烦就改成跟系统用户名一致吧。
      (责任编辑:IT)  |