现在的位置: 首页 > 综合 > 正文

使用VMware安装Hadoop全过程

2013年09月17日 ⁄ 综合 ⁄ 共 4498字 ⁄ 字号 评论关闭

前言:  

    从七月中旬开始大规模学习hadoop平台搭建过程,虽然现在看来,解决很实现的问题并不多,但是对于一个以前没有接触过linux、java和云计算平台的人来说,确实也花了一段时间。最大的感慨是,各种工具的版本问题,十分重要,Vmware、ubuntu、jdk、hadoop、hbase、zookeeper,任何一种的版本问题都是致命的。

     刚开始我是照着刘鹏老师的《云计算》第二版做实验的。里面貌似很简单的一句话,我要花整整一天的时间去实现。比如:

    1、虚拟机的使用问题,最新版的Vmware里,安装Vmware-tools后,死活出现不了/mnt/hgfs/share目录,没有共享文件夹,就没法搞到各种软件(虽然现在知道其实虚拟机直接可以上网下,但刚开始我就认为各种软件只能通过与主机的共享获得)我就一直找问题,用尽了各种方法,几乎对于有Vmware-tools安装的网页都被我百度过。最后极端抑郁,干脆换个旧点的Vmware试试,采用了Mware-workstation-full-7.1.1-282343.exe
,换过之后,当在命令行里 cd  /mnt/hgfs 有出现时,那种激动的心情无法言表。但是我没有意识到,还有更大的问题在后边等着我。

   2、安装jdk,java环境的配置,其实现在看起来很简单的问题,就是在/ect/profile文件里把我们安装的各种工具的路径写进去而已。但是刚开始一头雾水的我,总是不小心将路径写错,最后还得一遍遍的反过来修改。

    3、关于linux各种文件的权限问题。刚开始使用普通用户,总是提示权限不够,最后我懒得使用sudo命令,直接跳入root用户,一直用它解决问题。而这个习惯,恰恰造成了再后面使用hbase时的巨大问题出现,这是后话。

   闲话不扯,进入实验过程。

使用的各种版本: 

  1)VMware-workstation-full-7.1.1-282343.exe  建议不要汉化,最新版本有问题

  2)ubuntu-10.04.1-desktop-i386.iso 

  3)hadoop-0.20.2.tar.gz

实验过程  

一、更改root用户密码:

sudo passwd root    更改root密码

su root    进入root用户

二、安装虚拟机工具:

1、mount -o,loop /dev/cdrom /mnt  这句话的意思是把光驱挂载到/mnt目录之下

2、cd /mnt      进入到挂载目录下

3、tar zxvf VmwareTools-8.4.2-261024.tar.gz -C ~

       把 VmwareTools-8.4.2-261024.tar.gz解压到/root目录下,C大写

4、./vmware-install.pl          在/root/vmware-tools-distrib目录下运行安装文件

5、一路回车或者yes

6、重启系统,并且在VM Setting里去掉对光盘的关联,同时设置共享文件夹 

7、/usr/bin/vmware-config-tools.pl是配置文件的位置和名称,进行对共享文件夹的配置,需要用root用户,仍然是一路回车、yes、no

8、cd  /mnt/hdfs/share  存在文件夹,表示安装虚拟机工具成功

三、安装SSH

sudo apt-get install ssh

四、安装与配置JAVA

1、在/usr目录下,新建java文件夹:mkdir java     需要用root用户

2、在/usr/java目录下,运行:/mnt/hgfs/share/jdk-6u26-linux-i586.bin

输入java javac java -version 版本有信息

3、安装vim软件,方便以后编辑文件 apt-get  install vim    (强烈建议安装,因为vi工具使用起来很不方便)

4、配置java环境:

   1)vim /etc/profile  编辑profile文件

   2)在文件末尾加入如下信息:

JAVA_HOME=/usr/java/jdk1.6.0_26
JRE_HOME=/usr/java/jdk1.6.0_26/jre
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME
export JRE_HOME
export CLASSPATH
export PATH

  3)编辑完毕 :wq 保存 退出

五、安装Hadoop

1、将安装包 hadoop-0.21.0.tar.gz 拷贝至 /usr 下

cp /mnt/hgfs/share/hadoop-0.20.2.tar.gz  /usr

2、/usr目录下解压包:tar -zvxf hadoop-0.20.2.tar.gz

解压完毕,出现文件夹:hadoop-0.20.2

六、配置Hadoop

1、配置Hadoop环境参数:

vim /etc/profile

加入以下信息
:wq 保存 退出

2、reboot 重启电脑

  输入 hadoop version 出现版本信息 安装完毕

3、编辑usr/hadoop2-0.20.2/conf/hadoop-env.sh文件

  vim conf/hadoop-env.sh

 

七、单机模式

1、在usr/ usr/hadoop2-0.20.2目录下用root用户:

2.查看结果    cat output/*

八、伪分布模式

1、hadoop配置:

1)core-site.xml文档内容,(位置在vim /usr/hadoop-0.20.2/conf/core-site.xml)

 

2)hdfs-site.xml文档内容:

3)mapred -site.xml文档内容:

2、免密码SSH设置:

1)生成密钥对:ssh-keygen –t rsa

一路回车,文件保存在/root/.ssh里

2)进入.ssh目录,执行命令:

cp id_rsa.pub authorized_keys

ssh localhost

3、Hadoop运行

1)格式化分布式文件系统,在usr/hadoop2-0.20.2目录下:

bin/hadoop namenode –format

2)启动hadoop守护进程,启动五个进程:

bin/start-all.sh

3)运行WordConut实例:

      将本地系统中的input目录复制到HDFS的根目录下,重新命名为in,运行Hadoop自带的WordConut实例。Out为数据处理完后的输出目录,默认为在Hadoop的根目录下,运行之前必须清空或者删除out目录,否则会报错。

4)任务执行完,查看数据处理结果:

 

也可以把输出文件从Hadoop分布式文件系统复制到本地文件系统查看

5)停止Hadoop守护进程。

bin/stop-all.sh

九、完全分布模式

1、配置各个机子的IP地址值:

在这里,一共设置了三个机子,unbuntunamenode、unbuntu1、unbuntu2

unbuntunamenode:192.168.122.136

unbuntu1配置:192.168.122.140

Unbuntu2配置:192.168.122.141

它们的子网掩码都为:255.255.255.0,网关为192.168.122.255。(注意,一旦修改了etho的IP,就无法连上外网)

2、配置NameNode和DataNode的hosts:(最好保持一致)

把unbuntunamenode作为NameNode,配置其/etc/hosts,需要在文件中添加集群中所有机器的IP地址机器对应的主机名

使用scp命令,将/etc/hosts拷贝到其他节点:

  scp /etc/hosts   ub1-deskop:/etc

  scp /etc/hosts  ub2-desktop:/etc

3、SSH配置,为了实现在机器之间执行指令时不需要输入密码:

1)在所有的机器上建立.ssh目录,执行:mkdir .ssh

2)在unbuntunamenode上生成密钥对,执行:ssh-keygen –t ras

一路enter,就会按照默认的选项将生成的密钥对保存在.ssh/id_rsa文件中

3)在unbuntunamenode上执行:

cd ~/.ssh

cp id_rsa.pub authorized_keys

scp authorized_keys ub1-desktop:/home/grid/.ssh

scp authorized_keys ub2-desktop:/home/grid/.ssh

4)进入所有机器的.ssh目录,改变authorized_keys文件的许可权限:

4、配置Hadoop:

在namenode机子上,确保hadoop已经安装

1)编辑core-site.xml、hdfs-site.xml和mapred -site.xml

2)、编辑conf/masters,修改为master的主机名,加入:192.168.122.136(或者ubn)

3)编辑conf/slaves,加入所有slaves的主机名,即ub1、ub2

     192.168.122.140

      192.168.122.141

4)把namenode的配置文件复制到其他机器上

scp –r  hadoop2-0.20.2 ub1-desktop:/usr/

scp –r  hadoop2-0.20.2 ub2-desktop:/usr/

5、Hadoop运行

格式化分布式文件系统:bin/hadoop namenode -format

启动Hadoop守护进程:bin/start-all.sh

并用jps命令检测启动情况:/usr/java/jdk1.6.0_26/bin/jps

6、测试wordcount案例

1)将本地的input文件夹复制到HDFS根目录下,重命名为in:

  bin/hadoop dfs –put input in

2)运行案例:

bin/hadoop jar hadoop2-0.20.2-examples.jar wordcount in out

3)查看处理结果:

bin/hadoop dfs –cat out/*

4)停止Hadoop守护进程

bin/stop-all.sh

7、HDFS里的一些常用命令:

1)删除HDFS根目录下的文件:bin/hadoop dfs –rmr in

2)bin/hadoop dfsadmin –help 能列出当前所支持的所有命令

3)bin/hadoop dfsadmin –report查看namenode日志

4)关闭安全模式:

bin/hadoop dfsadmin –safemode leave

5)进入安全模式:

bin/hadoop dfsadmin –safemode enter

6)负载均衡:

bin/start-balancer.sh

7)基准测试:

bin/hadoop jar hadoop2-0.20.2-test.jar TestDFSIO –write –nrFile 20 –filezize 200

抱歉!评论已关闭.