1、在安装hadoop2.0之前,需要准备好以下软件(如下图1)
图1:
图2:
图3:
2、为了有个集群的概念,我们把一台linux机器复制成有三份!如下图4所示:
注:在复制前,必须要把linux的机器要在关机或者挂起状态,否则数据可能会丢失。
图4:
3、然后打开这三个虚拟镜像并且启动三个镜像(如下图5红箭头指向所示)
如果出现说:此虚拟机可能已被移动或复制,那你点击:我已复制该虚拟机
图5:
4、然后打开第一个主节点以后命令行输入:su //进入管理员模式
5、然后命令行再输入:cd /etc/sysconfig/network-scripts/ifcfg-eth0
6、然后将三个虚拟机的其中两个虚拟机的ip更改,因为三个虚拟机的ip不能都一样。
如下图5,6,7,8红箭头指向的图:
master图6:
Slave1图7:
Slave2图8:
7、然后打开secureCRT远程控制软件连接三台虚拟机(如下图9红箭头指向所示)
图9:
8、我们开始配置本地网络配置(修改hosts文件)
9、命令行输入:vim /etc/hosts(如下图10所示)
图10:
10、在hosts文件里面添加如下内容:
(温馨提示:这里添加的ip地址是要添加你自己的那三台机器的ip地址)
192.168.183.10 master
192.168.183.11 slave1
192.168.183.12 slave2
11、然后保存退出
但是host还没有生效,需要生效
12、在命令行输入:hostname master
13、然后再输入:hostname //进行查看 (如下图11所示)
图11:
14、但是这个生效只是临时生效,我们需要改为永久生效:
在命令行输入:vim /etc/sysconfig/network
然后原先network里面的是:HOSTNAME=localhost
我们改为:HOSTNAME=master //其他节点也是一样这么操作,这里就不演示了。
15、建立每台机器的互信关系(这样方便我们日后一台机器对另外一台机器的操作)
重点:是每个机器都要输入:ssh-keygen
16、在命令行输入:ssh-keygen然后回车然后回车,回车(回三次车)。(如下图10红箭头指向所示)
17、然后再输入:ssh-keygen然后有个选项让你选择yes/no的,你选择yes,因为直到有个yes/no的选项出现你才能正式的互信。
图10:
18、在命令行输入:cd ~/.ssh/ 然后ls(如下图11红箭头指向所示)
图11:
19、我们要对id_rsa.pub这个公钥文件的内容拷贝给authorized_keys这个文件(在此说明:如果没有authorized_keys这个文件,请自己创建!!)
创建文件的命令:touch authorized_keys (如下图12红箭头指向所示)
图12:
20、输入命令行:cat id_rsa.pub看看这公钥
21、然后把slave1的公钥复制到主机节点master的authorized_keys上
22、在master命令行输入:vim authorized_keys
23、然后接下来把然后把slave1的公钥复制到authorized_keys这里(如下图13,14,15的红箭头指向所示)
图13:
图14:
24、图15:把三个机器的公钥密码全部放入master的authorized_keys文件中。
25、然后下一步操作就是把主节点上的authorized_keys分别复制给slave1和slave2这两个节点上 (这是我的ip,你们要复制下面的命令行的时候请先把自个的机器ip修改上去)
命令行输入:scp -rp authorized_keys 192.168.183.20:~/.ssh/
命令行输入:scp -rp authorized_keys 192.168.183.13:~/.ssh/(如下图16红箭头指向所示)
图16:
26、在slave1和slave2的命令行上分别输入:cat authorized_keys
27、然后我们就可以给三台机器互相登录而且不需要密码了
28、那么我们试一下:在主节点上命令行上输入:ssh 192.168.183.20如果要退出的话就是输入:exit
29、然后我们在主机节点上登录子节点:ssh 192.168.183.13如果要退出的话就是输入:exit
30、然后在master里面输入:cd /mnt/hdfs //查看在linux下共享的文件(如下图17红箭头指向所示)
图17:
31、然后我们把jdk和hadoop2.0工具包放入linux下的/usr/local/src/下(如下图18所示)
命令行输入:cp hadoop-2.6.1.tar.gz /usr/local/src/
命令行输入:cp jdk1.7.0_45.tgz /usr/local/src/
32、然后去/usr/local/src/下去查看有没有拷贝过来的文件
图18:
命令行输入:tar xvzf hadoop-2.6.1.tar.gz
命令行输入:tar xvzf jdk1.7.0_45.tgz
图19:
33、然后查看当前的一个目录路径,命令行输入:pwd
34、然后将改路径写入配置文件当中,命令行输入:vim ~/.bashrc (如下图20所示)
图20:
35、然后再配置CLASSPATH,复制配置命令:
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib
36、然后再配置path,复制配置命令:
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
图21:
37、然后在命令行输入:source ~/.bashrc //重置一下
38、然后我们直接执行java,在命令行直接输入:java 然后这个java已经被系统自动识别 了,然后我们看看java这个位置在哪里,命令行输入: which java(如下图22所示)
图22:
39、在主节点输入:cd /usr/local/src/
40、再输入:ls
41、然后将java包复制一份到slave1和slave2这两个节点上去
在主节点输入:scp -rp jdk1.7.0_45 slave1:/usr/local/src/
在主节点输入:scp -rp jdk1.7.0_45 slave2:/usr/local/src/
42、然后让你输入yes/no你输入yes,然后让你输入密码,你输入你创建这台机器的密码,然后即可完成远程复制!!(如下图23所示)
图23:
43、在slave1机器上输入:cd /usr/local/src/
44、然后再输入:ls 进行查看是否有jdk文件(如下图24,25)
图24:
图25:
45、然后再分别给slave1和slave2配置环境变量。操作跟上面给主节点master配置环境变量一样,
输入:vim ~/.bashrc 把export JAVA_HOME=/usr/local/src/jdk1.7.0_45和export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib和export PATH=$PATH:$JAVA_HOME/bin
写在bashrc下
46、然后退出该修改界面(退出界面请先按Esc键,然后点Shift键加分号键然后输入wq然后再按Enter键退出)
47、然后在命令行输入:source ~/.bashrc重置一下
48、然后我们直接执行java,在命令行直接输入:java 然后这个java已经被系统自动识别了
49、然后我们看看java这个位置在哪里,命令行输入: which java(如下图26,27所示)
图26:
图27:
50、然后我们开始准备搭建hadoop2.0集群,在此之前需要把ssh配置好(如下操作与图17所示)
51、在此之前我们需要先把防火墙关闭了,以免防火墙的启动会导致我们集群启动失败
关闭防火墙(在三台机器上或者更多的机器上执行一下命令)在命令行输入:/etc/init.d/iptables stop(如下图28所示)
52、然后检查一下是否关闭成功:在每台机命令行输入:chkconfig --level 35 iptables off
53、然后再从命令行输入:getenforce查看是否关闭了(在每台机器都输入此命令)
图28:
54、然后我们打开hadoop2.0安装包(如下图29所示)
图29:
55、然后在hadoop-2.6.1这个目录下创建一个tmp目录,用来存放之后的一些临时文件
命令行输入:mkdir tmp
56、然后进入hadoop-2.6.1的etc文件里的hadoop文件 (如下图30)
图30:
57、然后修改hadoop文件夹里面的hadoop-env.sh这个文件
命令行输入:vim hadoop-env.sh
58、在hadoop-env.sh这个文件里面配置jdk路径(如下图31所示)
图31:
59、第二步修改yarn-env.sh文件
命令行输入:vim yarn-env.sh然后在这个文件找到相应被注释的export JAVA_HOME= ,将它取消注释并把jdk路径继续填充上去(如下图32所示)
图32:
60、然后继续修改,修改一个slaves文件(如下图33所示)
修改文件:vim slaves
在slaves里面填充slave1 slave2
图33:
61、然后修改core-site.xml这个文件
在configuration里面添加数据(如下图34所示)
图34:
62、然后再修改hdfs-site.xml这个文件(如下图35,图36所示)
首先先在hadoop-2.6.1目录下创建dfs文件,然后在dfs文件里面再创建name和data这两个文件
图35:
图36:
63、然后在hadoop根目录下有一个文件mapred-site.xml.template模版,你需要将其拷贝一份并且改名为mapred-site.xml。(如下图37,图38所示)
命令行输入:cp mapred-site.xml.template mapred-site.xml
64、然后修改mapred-site.xml这个文件:vim mapred-site.xml
图37:
图38:
65、然后再修改yarn-site.xml这个文件
命令行输入:vim yarn-site.xml添加内容(如下图39)
图39:
66、然后接下来把这个配置好的hadoop2.0安装文件分发到各个子节点上(如下图40所示)
分发完以后在子节点上的/usr/lcoal/src目录下查看有没有hadoop2.0文件
图40:
67、然后现在所有配置配置完毕,我们来准备启动:(如下图41所示)
在启动之前必须先格式化hadoop,必须要先hadoop下的bin目录下进行格式化
命令行输入:hadoop namenode-formate (如下图41所示)
图41:
68、在hadoop-2.6.1的根目录下启动: (如下图42所示)
启动命令行输入:./sbin/start-all.sh
暂停命令行输入:./sbin/stop-all.sh
主节点成功启动图42:
第二台子节点成功启动图43:
第三台子节点成功启动图44:
恭喜,hadoop2.0搭建成功!!