HADOOP安装
最近有时间看看hadoop的一些东西,而且在测试的环境上做了一些搭建的工作。仅记录之;
首先,安装前需要做一些准备工作。
1:准备三台虚拟机。使用一台pcserver作为测试服务器,同时使用Oracle VM VirtualBox来作为虚拟机的服务器。
新建了三个虚拟机以后,安装linux,我安装的linux的版本是redhat linux 5.4 x64版本。安装完成以后,
设置其中的ip地址,master服务器为:172.16.3.217;slave01为172.16.3.218;slave02为172.16.3.219;
2:给虚拟机安装java环境,由于hadoop推荐使用java的1.6版本。而实际上redhat 5.4自带的为1.4.2,
因此要先删除,然后再安装心的版本;java 1.6的版本到java的官方网站下载即可。下载到java的安装包以后。
首先删除系统自带的java 1.4.2;
在root用户下执行:
rpm -qa|grep gcj
能看到回显的结果中有类似:
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115这样的内容
然后
rpm -e java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
这个有可能无法执行成功,提示有依赖关系,这个时候,加上–nodeps再执行,就能成功了;
然后安装jdk 1.6,方法如下:
执行下载下来的bin文件:
./jdk-6u27-linux-x64-rpm.bin
然后安装生成的rpm文件:
rpm -ivh jdk-6u27-linux-amd64.rpm
等到安装完成以后,检查java安装的情况
java -version
一般会得到类似如下的信息:
java version “1.6.0_27″
Java(TM) SE Runtime Environment (build 1.6.0_27-b07)
Java HotSpot(TM) 64-Bit Server VM (build 20.2-b06, mixed mode)
安装完成以后,需要修改系统的文件让java的路径输出给所有的用户,一般修改的是/etc/profile,在这个文件中增加如下的内容:
export JAVA_HOME=/usr/java/jdk1.6.0_27
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
export HADOOP_HOME=/root/jz/hadoop-0.21.0
export PATH=$HADOOP_HOME/bin:$PATH
在三个机器上都安装好java以后,可以继续下面的操作了;
3:在hadoop的官方网站 http://www.apache.org/dist/hadoop/common/hadoop-0.21.0/
下载文件hadoop-0.21.0.tar.gz 这个文件是hadoop 0.21.0版本的安装文件了。下载下来以后,
在master机器上的/root下新建一个jz目录,将hadoop的文件拷贝到这个目录下;
4:配置master到slave01和slave02的互信;
在master上执行:
ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
执行完成以后,会在~/.ssh/生成两个文件:id_dsa 和id_dsa.pub。这两个是成对出现,
类似钥匙和锁。再把id_dsa.pub 追加到授权key 里面
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这个时候,如果你执行
ssh localhost
应该是不需要密码的。这表明你对本机的ssh互信成功。现在需要把这个文件拷贝给slave01和slave02
以下的操作需要对两个slave机器都做一次。以slave01为例:
scp id_dsa.pub [email protected]:/root/
然后到slave01上执行:
cat id_dsa.pub >> .ssh/authorized_keys
现在从master上直接ssh登陆slave01应该无需密码的,如果还是需要密码,要确保互信成功才能继续下面的操作;
5:修改master机器上的hosts文件为如下内容:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
172.16.3.217 master master.localdomain
172.16.3.218 slave01 slave01.localdomain
172.16.3.219 slave02 slave02.localdomain
6:将下载的hadoop文件解压:
tar -xvf hadoop-0.21.0.tar
7:修改hadoop的配置
修改/root/jz/hadoop-0.21.0/conf/目录下的master文件,内容如下:
172.16.3.217
修改/root/jz/hadoop-0.21.0/conf/目录下的slaves文件,内容如下:
172.16.3.218
172.16.3.219
修改/root/jz/hadoop-0.21.0/conf/hadoop-env.sh文件的环境变量:
# The java implementation to use. Required.
export JAVA_HOME=/usr/java/jdk1.6.0_20
修改/root/jz/hadoop-0.21.0/conf/core-site.xml配置文件,内容如下:
< ?xml version=”1.0″?>
< ?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoopdata</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri’s scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri’s authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>excludes</value>
</property>
</configuration>
修改/root/jz/hadoop-0.21.0/conf/hdfs-site.xml配置文件,内容如下:
< ?xml version=”1.0″?>
< ?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改/root/jz/hadoop-0.21.0/conf/mapred-site.xml配置文件,内容如下:
< ?xml version=”1.0″?>
< ?xml-stylesheet type=”text/xsl” href=”configuration.xsl”?>
<!– Put site-specific property overrides in this file. –>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
<description>The host and port that the MapReduce job tracker runs
at. If “local”, then jobs are run in-process as a single map
and reduce task.
</description>
</property>
</configuration>
8:将/root/jz/hadoop-0.21.0整个目录拷贝到slave01和slave02上;将/etc/profile拷贝到slave01和slave02上;
将/etc/hosts拷贝到slave01和slave02上;
9:启动和关闭hadoop
启动hadoop:
sh /root/jz/hadoop-0.20.2/bin/start-all.sh
关闭hadoop:
sh /root/jz/hadoop-0.20.2/bin/start-all.sh
如果都成功,则安装hadoop成功。
—未完待续—