最近自己在虚拟机上安装了hadoop,分享一下
环境:
宿主机器:
64位windows7旗舰版操作系统
8G 内存
4核CPU
虚拟机软件:
VMWare 8.0.6
虚拟操作系统:
Unbuntu 12.10
hadoop 版本 :
hadoop 1.2.0
1)安装hadoop之前必须首先安装 java
参照 http://blog.csdn.net/jiutoushe2008/article/details/8946690
2)hadoop有三种安装模式 :单机模式、伪分布式模式和完全分布式模式 这里的安装的是完全分布式模式
在VMare下可以将安装好java的虚拟机克隆出另外两个虚拟机来 更改虚拟机的名称f分别为controller slave1 slave2,虚拟机的机器名存储在 /etc/hostname 文件中,为了在三个机器之间使用机器名通信 配置/etc/hosts文件如下
127.0.0.1 localhost
192.168.174.132 controller
192.168.174.133 slave1
192.168.174.134 slave2
在所有的机器上新建相同的用户grid
useradd -m grid
passwd grid
3)ssh 免密码登陆
首先安装ssh
sudo apt-get install ssh
该配置为了实现机器之间执行指令时不用输入密码,在所有的机器上新建~/.ssh目录
mkdir ~/.ssh
在controller机器上生成密钥对,执行:
ssh-keygen -t rsa
然后一直按<enter> 就可以在~/.ssh/中生成密钥对
将公钥分发出去,执行:
$cd ~/.ssh
$cp id_rsa.pub authorized_keys
$scp authorized_keys slave1:/home/grid/.ssh
$scp authorized_keys slave2:/home/grid/.ssh
这样从controller发出的ssh链接只有第一次登录时需要密码以后再也不需要了
4)下载hadoop
hadoop 的下载地址 http://hadoop.apache.org/releases.html
首先在controller上配置,执行如下的解压缩命令
tar -zxvf hadoop-1.2.0.tar.gz
在conf/目录下
编辑core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://controller:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp</value>
</property>
</configuration>
编辑hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
编辑mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>controller:9001</value>
</property>
</configuration>
编辑conf/masters修改为master的主机名每个主机名一行,此处即为controller
编辑conf/slave 加入所有Slaves的主机名 每行一个主机名 即slave1和slave2
5) 把Hadoop安装文件复制到其他机器上
$scp -r hadoop-1.2.0 slave1:/home/grid/.ssh
$scp -r hadoop-1.2.0 slave2:/home/grid/.ssh
编辑所有机器的conf/hadoop-env.sh文件将JAVA_HOME环境变量设置为各个机器上java的安装的的根目录
export JAVA_HOME="/usr/java/jdk1.7.0_21"
6)启动hadoop
格式化分布式文件系统 命令如下
$bin/hadoop namenode -format
启动controller上的NameNode、JobTracker和Secondary NameNode,在slave1和slave2上启动DataNode和JobTracker 并用jps检测启动情况
$bin/start-all.sh
$jps
Tips:个人意见 最好将hadoop的bin目录加入到PATH环境变量中