标签:mapreduce hadoop linux 分布式 集群
前两天和一个朋友在聊天的时候说,很多自学Hadoop的朋友80%都会夭折在集群环境的搭建上,原因吗无在乎:1,没有很好的电脑配置,不能像机房一样用多台电脑搭建起集群;2,对linux的不熟悉,各种小黑窗,linux命令……;3,环境搭建的反锁步骤,需要耐心+细心+认真等等吧。不过吗,我觉的,只要敢于坚持,敢于付出都是会成功的。下边讲述一下我的Hadoop集群搭建过程,由于条件有限,也是在虚拟机中进行的。
一,准备资料:
1,一台笔记本:I5的CPU,4G内存,500硬盘(内存有些小,运行的时候比较卡);
2,虚拟机一台:VMware-workstation-full-11.1.2.61471.1437365244.exe 在百度一搜即可;
3,linux系统软件:我用的是ubuntu-12.04.4-server-amd64.iso,是server版本的,初学者也可以也可以下载Desktoop版本,有类似Windows的界面,更容易操作。可到ubuntu官网上下载:http://www.ubuntu.com/download/server
4,Hadoop软件:hadoop-1.2.1-bin.tar.gz 可以到官网上进行下载:http://hadoop.apache.org/
5,JDK软件:jdk-8u51-linux-x64.tar.gz 这个相对来说比较简单,我用的是版本8的。其实JDK,Hadoop还有用到的其它软件,我们可以通过linux命令:apt-get update apt-get 软件的下载路劲,直接在linux上进行下载。
二,搭建步骤:先看一张总体要完成工作的步骤图:
1,安装虚拟机VmWare:百度一下下载下来,很容易安装,不再赘述。VmWare为我们提供了一个虚拟的平台,我们可以在这个平台上安装多个不同的系统,进行学习实验。
2,在VmWare上安装三台相同的linux系统,我安装的ubuntu,过程不再赘述,大家可以根据这个教程进行安装:http://jingyan.baidu.com/article/0320e2c1ef9f6c1b87507bf6.html。这里需要注意的是,a:大家在网络选择的时候,用桥接模式,更加方便,会自动分配ip,如下图;b:系统名字可以根据自己的习惯进行起名,例如:master,slaveone,slavetwo等。好,开是下边的四个步骤:
2.1,设置SSH连接:
我这里是通过SecureCRTPortable.exe和SecureFXPortable.exe两个软件进行连接的。当然还有Putty等其它软件。有时候linux没有安装ssh服务,需要我们进行安装一下:
安装ssh-server
sudo apt-get update
sudoapt-get install openssh-server
安装ssh-client
sudoapt-get install openssh-client
查看ssh是否安装好,下边及已经安装。
然后就可以通过SecureCRTPortable.exe进行连接linux,很简单,看这个图文教程:http://jingyan.baidu.com/article/17bd8e523cfb9285aa2bb872.html
2.2,配置hosts文件,其实就是为了方便,我们平时输入www.baidu.com,进入百度,其实是映射了一个具体的地址,这里配置hosts文件,就是将各个节点机器的ip与一个名字映射起来,我们连接时直接使用名字即可,利用VI命令修改host文件(VI编辑命令:http://blog.csdn.net/liujiahan629629/article/details/47803261):
vi /etc/hosts
2.3,建立Hadoop账户,三台节点的账户都建成一样的,方便后边的免密码登录:
sudogroupadd hadoop //设置hadoop用户组
sudo useradd –s /bin/bash –d /home/ljh –m ljh –g hadoop –Groot //添加一个ljh用户,此用户属于hadoop用户组,且具有root权限。
sudo passwd ljh //设置用户ljh登录密码
su ljh //切换到ljh用户中
2.4,设置免密码登录,其实就是一种算法RSA,将彼此的公钥放在要放在要访问的电脑上,自己保存私钥,保存好不用再进行输入密码验证。说通俗一点就是将本电脑的信息和密码已经保存到要访问的电脑上,直接访问即可。
a,在每台电脑上进行SSH公钥私钥的生成:id_rsa为私钥,id_rsa.pub为公钥
b,分发公钥,将公钥分发到每一个节点上,包括自己本身,我的authorized_keys包括三个节点的公钥。通过下边命令:
scp ./id_rsa.publjh@slaveone02:/home/ljh/.ssh/authorized_keys
每台电脑都这样操作,这样我们三个节点就可以相互之间进行免密码登录了。
3,JDK安装:这个相对来说比较简单:看这个链接即可:http://www.cnblogs.com/plinx/archive/2013/06/01/3113106.html
4,Hadoop安装,其实这里就简单多了,主要是配置文件配置:
4.1下载安装,将下载好的hadoop,进行tar解压即可,放到/home/ljh/下边即可。
4.2配置Hadoop-env.sh文件,即环境文件,可以这样理解,主要配置JDK的home路径,配置文件都放在conf文件中:
4,3配置masters,slaves 文件:
masters文件:
slaves文件:
4.4,配置namenode,修改各种site文件:
core-site.xml文件:
hdfs-site.xml文件:
Mapred-site.xml文件:
这样基本配置就算结束了,可以向各个节点进行hadoop的copy了。
4.5向各个节点复制Hadoop,各个节点的linux配置要是一样的,利用linux命令进行复制:
Scp -r ./hadoop-1.2.1 slaveone02:/home/ljh
4.6,格式化namenode:
./bin/hadoopnamenode -format
4.7启动Hadoop:利用bin下的star-all.sh即可
4.8,用Jvm的Jps进行进行的检查:
master中的进程:
slave中的进程:
最后我们可以通过浏览器输入网页进行查看Hadoop的启动状态:
至此,Hadoop三个节点的集群环境正式搭建完毕,从这个基础上不断学习Hadoop吧。感觉搭建Hadoop的重点是对linux的操作熟练与否,所以还得不断的熟练linux。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:mapreduce hadoop linux 分布式 集群
原文地址:http://blog.csdn.net/liujiahan629629/article/details/48015553