该文档是对自己在虚拟机环境下进行Hadoop集群环境进行配置的总结。首先安装环境是:
宿主机:Windows 7 旗舰版
虚拟机:VirtualBox 4.2.0
虚拟机操作系统:opensuse 12.2
Hadoop:1.0.3
1.虚拟机安装
首先进行VirtualBox和opensuse在VirtualBox中的安装,比较简单,不再做详细的介绍。
小技巧:在VirtualBox中可以设置共享文件夹,以便Windows7和opensuse共享一些文件。具体设置如下,首先运行opensuse;然后点击“设备”→“共享文件夹”,选择一个Window7中的一个文件夹作为共享文件夹。在opensuse中使用下面命令将共享文件夹挂载到opensuse中,其中挂载点可是opensuse的任意
mount -t vboxsf 共享文件夹的名字 挂载点
文件夹,一般可以在mnt目录下。该条命令的具体例子如下:
mount -t vboxsf sharefile /mnt
2.Java安装
Opensuse安装完成后,需要进行JDK的安装和配置。JDK安装完成后,需要设置两个环境变量JAVA_HOME和PATH。一般有两种方式可以设置这两个变量。一个是修改/etc/profile文件,在该文件末尾追加下面两行代码:
export JAVA_HOME=/usr/java.1.6.35(JDK安装目录)
export $PATH=$PATH:$JAVA_HOME/bin
修改完文件后使用source /etc/profile更新文件。
还有一种方法是修改bash的配置文件,一般是/home/username/.bashrc,在里面添加上面两行代码。
3.Hadoop安装
Java安装完成后,可以进行Hadoop的安装。首先去Apache网站下载Hadoop安装包,然后将Hadoop解压到你想存储的目录,本次安装使用的目录是/usr。然后进行Hadoop解压操作:
tar zxf hadoop-1.0.3.tar.gz
解压完成后需要配置Hadoop环境变量,与Java环境变量的配置基本相同。可以在/etc/profile添加下面两行。
export HADOOP_INSTALL=/usr/hadoop-1.0.3
export $PATH=$PATH:$HADOOP_INSTALL/bin:$HADOOP_INSTALL/sbin
也可以采用第二种方式,在.bashrc文件中添加上面两行代码。
4.ssh配置
首先,确定ssh已经安装,否则进行下载安装。然后使用下面的命令行生成密钥对:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
密钥对生成后,验证一下是否成功,使用命令ssh localhost进行验证。如果没有成功,重新启动ssh后台服务,使用命令service sshd restart。
5.Hadoop配置
Hadoop的配置文件可以放在Hadoop的安装目录下(这是默认情况),也可以放在其他地方。本次安装放在了一个新的目录下/root/etc/hadoop/pdist,/root/etc/hadoop目录下共有三个文件,分别对应standalone模式、为分布式模式和分布式模式,分别为standalone、pdist和dist。下面看一下pdist目录下几个主要的配置文件。
<!-- core-site.xml -->
<?xml version="1.0"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost/</value>
</property>
</configuration>
<!-- hdfs-site.xml -->
<?xml version="1.0"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
<!-- mapred-site.xml -->
<?xml version="1.0"?>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:8021</value>
</property>
</configuration>
除了以上三个主要的配置文件外,还需要有masters和slaves两个文件,但是基本不需要进行什么修改。
这里有一个需要主要的地方,Hadoop在为分布式配置下,其运行过程中使用到了本机的计算机名称,如果在linux host文件下没有计算机名称和ip的配对,会抛出异常。在host文件中需要添加配对
Linux计算机名 127.0.0.1
例如linux-ja3s 127.0.0.1
这样Hadoop为分布式环境基本配置完毕,可以运行。
6.Hadoop运行
在运行Hadoop的时候,要指定配置文件目录,先启动HDFS,再启动MapReduce。
start-dfs.sh --config /root/etc/hadoop/pdist
start-mapred.sh --config /root/etc/hadoop/pdist