一、闲言
最近看到大神说,坚持写博客对于技术上有一定的提升,正好本人最近准备要学习大数据技术,于是兴致冲冲的跑道简书上注册了一个博客账号,也不知道自己能坚持多长时间。本人博客只记录自己的学习过程,如果有小伙伴看到我的博客不小心被误导了,你来打我呀!!
本篇记录在搭建Hadoop环境及安装Hadoop的详细过程,如果对小伙伴们有一些帮助,本人实在是荣幸之至。话不多说,开始正题!
二、搭建准备
我的环境是VMware Workstation10、CentOs6.8、jdk1.8以及Hadoop2.6.1。

CentOs6.8的安装还有VMTools的安装以及jdk1.8安装这里就不再赘述,如有问题自行百度,直接从安装完成linux系统后开始说起。
1.设置共享文件夹
设置共享文件夹时虚拟机要处于关机状态。
在VMware Workstation10的菜单上点击虚拟机--设置--选项,如图所示:

点击共享文件夹,右边勾选总是启用,下面点击添加,选择一个本机的文件夹作文共享文件夹,最后点击确定。
2.修改主机名称
打开虚拟机,进入终端,输入命令:hostname 查看当前主机名:

因为我们要建立三台虚拟机,为了方便管理,让主机名称和IP地址有对应关系,我们把主机名改为hadoop100、hadoop101、hadoop102。
输入vim /etc/sysconfig/network 并点击回车,编辑配置文件,将HOSTNAME的值改为hadoop100,保存退出。注意:主机名称不要有下划线

接下来在终端输入vim /etc/hosts,修改主机映射文件,添加以下内容:
192.168.229.100 hadoop100
192.168.229.101 hadoop101
192.168.229.102 hadoop102
上述ip地址在你的主机上查看:打开网络和共享中心--更改适配器设置,找到VMware Network Adapter VMnet8,如图:

右键这个图标,属性--网络,找到internet协议版本4,双击打开:


我这里是192.168.229.1,所以我上面的hosts文件里填的ip前面都是192.168.229,最后一位随便填,只要不IP冲突就行。
修改完是这个样子的:

修改之后保存退出,下面我们要关闭防火墙,以免后面我们启动集群失败,终端输入:chkconfig iptables off
重启虚拟机,然后在终端输入hostname查看主机名已经修改成功。
检查防火墙状态,终端输入:service iptables status
如果看到iptables,就是防火墙关掉了
修改window7的主机映射文件(hosts文件)
(1)进入C:\Windows\System32\drivers\etc路径
(2)打开hosts文件并添加如下内容
192.168.229.100 hadoop100
192.168.229.101 hadoop101
192.168.229.102 hadoop102
3.修改虚拟机ip地址
前面写在hosts文件里的东西就是我们各个虚拟机的ip,现在我要把我的IP改为192.168.229.100。开搞!!
终端输入:vim /etc/sysconfig/network-scripts/ifcfg-eth0,编辑这个配置文件,修改成以下配置:

下面三行原来没有的话就加上,ip、网关、DNS地址要改成你自己的,保存退出。
终端输入:service network restart 重启网卡,如果出现图10错误,重启虚拟机

终端输入:ifconfig 查看ip

可以看到,修改成功了。
此时这个虚拟机一定累了,让他歇一会,终端输入:sync 同步内存中数据到文件,接着终端输入poweroff 关机。
三、克隆虚拟机
1.克隆
大数据就是分布式的数据挖掘,既然是分布式的,我们就克隆咱们之前配置好的虚拟机来模拟多个服务器。
虚拟机关机状态下,点击虚拟机--管理--克隆:出现如下界面,点击下一步

我们需要从当前状态克隆,点击下一步

选中创建完整克隆,点击下一步

输入虚拟机名称,选择虚拟机位置,点击完成

正在克隆,等待。。。。。。

克隆完之后,别着急开机,看看新克隆的虚拟机的共享文件夹是否启用,然后再克隆一个虚拟机,重复以上克隆步骤,虚拟机名称hadoop102。
修改hadoop101和hadoop102的主机名,分别改成hadoop101和hadoop102(详见上文,修改主机名称)
2.修改克隆的虚拟机的网卡配置
:终端输入:vim /etc/udev/rules.d/70-persistent-net.rules 编辑网卡配置信息

打开我们发现多了一个网卡信息,将上面那行删掉,下面那行需要复制那个MAC地址,后面要用到,把末尾的eth1改成eth0,保存并退出。
终端输入:vim /etc/sysconfig/network-scripts/ifcfg-eth0

将上面复制的MAC替换到相应位置,下面ip改成hadoop101对应的,然后重启网卡:service network restart,如果报错重启虚拟机,在终端输入ifconfig看IP是否正确。
重复以上步骤,把hadoop102也像这样配置。
四、 SecureCRT连接三台虚拟机
Linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的Linux服务器。这时我们就需要远程登录到Linux服务器来管理维护系统。
Linux系统中是通过SSH服务实现的远程登录功能,默认ssh服务端口号为 22。Window系统上 Linux 远程登录客户端有SecureCRT, Putty, SSH SecureShell,XShell等,这里我们用SecureCRT。
SecureCRT的安装和使用本人在这里就不再说了,可以点击下方链接,学习SecureCRT的使用
SecureCRT使用(转自xingyiGao)

这样就连接好了。
五、建立机器间的互信关系
在主节点中,也就是hadoop100,输入ssh-keygen,然后一路按回车;
再次输入ssh-keygen,这次回车要慢点,遇到让你输入yes/no的时候一律输入yes

然后,每个机器上都这样做,输入两遍ssh-keygen。
再然后,回到我们的主节点,终端输入命令:cd ~/.ssh/

这个目录下的id_rsa是私钥,id_rsa.pub是公钥,我们要对id_rsa.pub这个公钥文件的内容拷贝给authorized_keys这个文件,如果没有请自行创建。
输入命令:cat id_rsa.pub查看公钥,把三个子节点的公钥全部复制到authorized_keys文件中去。


然后下一步操作就是把主节点上的authorized_keys分别复制给hadoop101和hadoop102这两个节点上。输入:scp -rp authorized_keys 192.168.229.101:~/.ssh/
再输入:scp -rp authorized_keys 192.168.229.102:~/.ssh/

第一次传输会要求你确认和输入传入机器的密码。在两个子节点输入:cat authorized_keys 来查看文件是否传到两个子节点中。

好了,现在你的三台机器可以互相登录且不需要密码了。
我们来验证一下,在主节点输入:ssh 192.168.229.101 ,退出exit,回车
在主节点输入:ssh 192.168.229.102 ,退出exit,回车

六、开始安装Hadoop
呼呼,写了这么久,终于到重头戏了。
回到主节点,来到我们的共享文件夹:cd /mnt/hdfs/VMShare/ 复制hadoop-2.6.1.tar.gz文件到/usr/local/src 下,然后解压。tar -xzvf hadoop-2.6.1.tar.gz
然后在hadoop-2.6.1这个目录下创建一个tmp目录,用来存放之后的一些临时文件,
命令:mkdir tmp
来到hadoop-2.6.1/etc/hadoop/文件夹下,修改hadoop文件夹里面的hadoop-env.sh
命令:vim hadoop-env.sh

红框里面的代码本来是有注释的,把他打开,或者换成你自己的java绝对路径
修改yarn-env.sh文件:vim yarn-env.sh

红框里的代码取消注释,并把javahome填进去。
编辑slaves文件,将两个子节点填进去:vim slaves

然后修改core-site.xml这个文件:vim core-site.xml 讲一下配置粘贴进去:

修改hdfs-site.xml文件,将以下配置添加:

然后在hadoop根目录下有一个文件mapred-site.xml.template模版,你需要将其拷贝一份并且改名为mapred-site.xml。
命令行输入:cp mapred-site.xml.template mapred-site.xml
然后修改mapred-site.xml这个文件:vim mapred-site.xml

修改yarn-site.xml文件:vim yarn-site.xml

然后把这个hadoop-2.6.1文件夹分发到子节点上:
命令:scp -rp hadoop-2.6.1 192.168.229.101:/usr/local/src/
命令:scp -rp hadoop-2.6.1 192.168.229.102:/usr/local/src/
看看两个子节点上/usr/local/src/下有没有hadoop-2.6.1文件夹。
写到这里发现没有配置hadoop的环境变量,于是苦逼的配置了三次,在/etc/profile文件中添加下图红框里的东西

传输成功之后,我们回到主节点,准备启动hadoop
,在启动之前,一定要先格式化hadoop下的bin目录,而且三个虚拟机都要执行。
命令:hadoop namenode -formate

执行完格式化,打开主节点,输入命令:./sbin/start-all.sh
查看是否启动成功,输入命令:jps
如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试,如果NameNode没有启动,那就是配置不成功,请仔细检查以上步骤。

同样的,我们查看各个子节点是否启动成功,切换到主节点不用再次启动hadoop了,直接输入jps查看状态。


至此,hadoop就安装完毕了。如果以后在使用的时候遇到什么问题我会持续更新。
网友评论