赞
踩
前言:
从七月中旬开始大规模学习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 PATH3)编辑完毕 :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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。