一. 准备软件

1. hadoop-1.2.0.tar.gz -------------apache官网下载

2. ubuntu-12.04.1-desktop-i386.iso ------网下(ubuntu 9.0以上皆可)

3. VMware® Workstation 9.0.0 build-812388

4. UltraISO -----便于向虚拟机内传送文件。

5. jre-7u25-linux-i586.gz。

二. 安装VMware 9.0(下一步就行)

三. 安装ubuntu

非常简单的工作,只需要安装一个ubuntu就可以了,注意安装的时候把VMware状态栏的:

ubantu下Hadoop安装 ubuntu中hadoop安装_java

右击第四选Disconnect,这样ubuntu在安装的时候 就不会去下载耗时比较久的语言包,速度也就更快一点。安装的时候我的ubuntu用户名为hadoop,这样方便统一管理。分配的内存为1G,单个cpu,网络连接方式为NAT,当然如果您想在多台电脑上部署就选择Bridged(此时要注意局域网内IP地址时刻的变化)

四. 配置ubuntu

1.完成ubuntu的安装工作后,首先要激活root用户:

sudo passwd root

输入您的hadoop用户的密码,然后就可以初始化密码了。

2.给hadoop用户添加权限,打开/etc/sudoers文件;

sudo gedit /etc/sudoers

按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL,

3. 安装JDK环境。

采用sudo apt-get install openjdk-6-jre方法一般会遇到一些问题,比如无法找到源或者更新冲突或者下载速度缓慢,建议下jdk源码安装。我下载的是jre-7u25-linux-i586.gz。首先使用UltraISO 把文件移动到ubuntu中。

然后解压并移动到/opt文件夹内:

sudo tar -zxvf jre-7u25-linux-i586.gz

   sudo mv jre1.7.0_25 /opt/

然后配置环境变量,配置环境变量要非常小心,稍有错误就导致开不了机,网上很多傻逼帖都说各种方法,我试完之后均开不了机,真是屡试不爽啊!请不要相信他们。

sudo gedit /etc/environment

在引号内加入 :/opt/jre1.7.0_25 ,注意一定冒号隔开。然后更新bashrc

source ~/.bashrc

更新默认java bin位置

sudo update-alternatives --install /usr/bin/java java /opt/jre1.7.0_25/bin/java 300

使用java –version验证。如果:

java version "1.7.0_25"

Java(TM) SE Runtime Environment (build 1.7.0_25-b15)

Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode)

恭喜您已经成功了。

4.安装ssh

sudo apt-get install ssh openssh-server

ssh是负责各机器中通信的服务,只支持linux,这就是为什么hadoop不能在windows下运行的原因了。如果报下面错误,证明有install占用系统锁

E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)

E: Unable to lock the list directory

使用:

ps -e | grep apt

显示结果如下:

6362 ? 00:00:00 apt

6934 ? 00:00:00 apt-get

7368 ? 00:00:00 synaptic

然后就执行

sudo killall apt

sudo killall apt-get

sudo killall synaptic

安装结束用一下命令验证:ps -e | grep ssh,如果出现:

1963 ? 00:00:00 ssh-agent

3765 ? 00:00:00 sshd

3849 pts/0 00:00:00 ssh

3850 ? 00:00:00 sshd

4001 ? 00:00:00 sshd

证明已经安装完成。

五. 分开master和slaver

现在我们已经有了一个带jre,带ssh服务的虚拟机了。现在我们要做的事情就是分开master和slaver的角色,因为下面它们的流程完全不同。首先关掉虚拟机,复制在不同的文件夹中共4份,三个slaver一个master,为了方便记忆我们将它们分别叫做:

1.master

2.slaver1

3.slaver2

4.slaver3

当然对于内存大小为4G以下的同学,这里建议1个salver一个master共2台虚拟机,再小的内存请使用多台机器,还记得我们上面讲的虚拟机网络连接方式么?这里就要使用Bridged,当然其他都是一样的,只不过需要每次开机的时候检查ip地址是否有变化。我的内存是10G,同时开启8台ubuntu无压力,现在内存条非常便宜,大家可以按需要采购。这里还需要大家注意一点,要备份一个版本这个纯净的ubuntu,以防止意外失误导致无法使用。另外还需要文明关机。

切记一点,打开每一个虚拟机,虚拟机会问:你是复制的呢还是拷贝的呢,这个时候一定要诚实,选择I copy it。我当时由于装逼选择move it,后来整的mac地址冲突让我好好的喝了一壶哈哈!

1. 打开master,slaver1,slaver2,slaver3,

sudo gedit /etc/hostname

将所有虚拟机改成对应的名称,例如master的写master,slaver1的写slaver1.

重启之后会发现命令行开头所有hadoop@hadoop:~$ 都会变成hadoop@master:~$或者hadoop@slaver1:~$等。

使用ifconfig查看每一个slaver和master的ip,把他们记录下来保存好。

ubantu下Hadoop安装 ubuntu中hadoop安装_java_02

聪你一定知道哪个是IP

2.修改master的host文件

sudo gedit /etc/hosts

把所有IP填进去,在后面添加内容为:

192.168.101.137 master

192.168.101.138 slaver1

192.168.101.139 slaver2

192.168.101.140 slaver3

六. 给mater安装hadoop

首先用UltraISO 把hadoop-1.2.0.tar.gz压成镜像文件,然后传入ubuntu中,并且拷贝到自己的home目录(千万不要拷贝到系统目录然后修改文件夹权限这种事情,会让你后续工作很艰难的!),然后解压,把名字改成hadoop,当然我在外面是又套了个hadoop文件夹。

sudo tar -zxf hadoop-0.20.203.0rc1.tar.gz

    sudo chown -R hadoop:hadoop hadoop

在conf文件夹中找到hadoop-env.sh,编辑!!

在下面加入jre的地址,我的是:

export JAVA_HOME=/opt/jre1.7.0_25

七. 给mater的hadoop配置五大文件

1.首先是core-site.xml,hdfs位置设为master的ip,并为其设置hdfs文件夹。

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://192.168.101.137:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/hadoop/temp</value>

</property>

</configuration>

 

2. 是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>

</property>

</configuration>

3. 是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.name.dir</name> 

<value>/home/hadoop/hadoop/datalog1,/home/hadoop/hadoop/datalog2</value> 

</property> 

<property> 

<name>dfs.data.dir</name> 

<value>/home/hadoop/hadoop/data1,/home/hadoop/hadoop/data2</value> 

</property> 

<property> 

<name>dfs.replication</name> 

<value>2</value> 

</property> 

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

</configuration>

4. masters填写主机名

master

5.slaves,填写所有slaver的名字。

slaver1

slaver2

slaver3

八. ssh服务配置

创建ssh-key,这里我们采用rsa方式;(回车两次)

ssh-keygen -t rsa -P ""

进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

九. master向slaver各种复制(在master上操作)

1. 复制公钥

scp ~/.ssh/id_rsa.pub hadoop@slaver1:~/.ssh/
scp ~/.ssh/id_rsa.pub hadoop@slaver2:~/.ssh/
scp ~/.ssh/id_rsa.pub hadoop@slaver3:~/.ssh/

2. 复制hosts文件

3. 复制hadoop文件夹,复制之前先要:

sudo chown -R hadoop:hadoop hadoop
后复制
scp -r hadoop hadoop@slaver3:/home/hadoop

sudo chown -R hadoop:hadoop hadoop,然后复制
scp -r hadoop hadoop@slaver3:/home/hadoop

4. 顺便还要将复制过来的公钥追加到收信任列表:(每个slaver都要在其机器上做一遍)

cat ~/.ssh/id_rsa.pub &gt;&gt; ~/.ssh/authorized_keys

十. 验证是否安装成功

1. 首先fomat一下namenode ,清空之前的数据

./hadoop namenode -format

如果处于安全模式请离开安全模式:

./hadoop dfsadmin -safemode leave

2. 在hadoop文件夹内bin目录中输入:

./start-all.sh

会看到:

starting namenode, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.out
slaver1: starting datanode, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slaver1.out
slaver2: starting datanode, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slaver2.out
slaver3: starting datanode, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-datanode-slaver3.out
master: starting secondarynamenode, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-master.out
starting jobtracker, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-master.out
slaver1: starting tasktracker, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slaver1.out
slaver3: starting tasktracker, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slaver3.out
slaver2: starting tasktracker, logging to /home/hadoop/hadoop/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slaver2.out

注意,一个都不能少,少一个请自行百度。

3. 输入./stop-all.sh

会有:

stopping jobtracker
slaver2: stopping tasktracker
slaver3: stopping tasktracker
slaver1: stopping tasktracker
stopping namenode
slaver2: stopping datanode
slaver1: stopping datanode
slaver3: stopping datanode
master: stopping secondarynamenode

注意,一个都不能少,少一个请自行百度。

4. 浏览器中输入:http://192.168.101.137:50030/ 访问hadoop主页可以访问

5. 浏览器中输入:http:192.168.1.2:50070