一.Hadoop
hadoop集群:通过在各个物理节点上安装这个小软件,然后将其运行起来,就是一个hadoop分布式集群。可以通过虚拟机来实施集群环境来模拟物理节点。
二.前提条件
电脑配置:需在4G,最好8G、16G。
前提条件:安装Vmware,并安装三台linux系统(可通过复制实现安装)。
三个结点:按照hadoop集群的基本要求,其中一个是master结点,主要是用于运行hadoop程序中的namenode、secondorynamenode和jobtracker任务。用外两个结点均为slave结点,其中一个是用于冗余目的,如果没有冗余,就不能称之为hadoop了,所以模拟hadoop集群至少要有3个结点,如果电脑配置非常高,可以考虑增加一些其它的结点。slave结点主要将运行hadoop程序中的datanode和tasktracker任务。
三.安装Hadoop
1. 为三个结点主机重命名(因为,若系统是复制的,那么它们会有相同的名字,所以要重命名)
文件系统->etc/sysconfig/中的network文件打开,修改其中的HOSTNAME,如:
重启电脑即可(可分别命名为master、salve1、salve2)。
2、ip地址的配置,以便能够访问。
右键网络连接->属性:
配置->配置:
双击第二个:
对“静态设置的IP地址”中的d/s进行配置。修改保存后,激活即可(重启)。
3. 建立hadoop组和zhm用户(三个结点上建立相同的用户名,并设计zhm密码)
普通用户如何具有admin的权限?
4. 配置SSH免密码连接
SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数
据的安全性和可靠性,公钥部分是公共部分,网络上任一结点均可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解还是非常有难度的。Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提高访问效率。
Step1:
首先,master结点上产生公私密钥:
回车(三四个回车)后:
以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中,如下:
Id_rsa.pub为公钥,id_rsa为私钥(rsa或dsa),紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:
其次,在其它两个结点上,也做上述操作。
Step2:单击回环SSH免密码登陆测试
显示信息可能不同,一般有|“Last login”等信息。能不输密码就登陆说明到目前位置是成功的。
Step3:master通过SSH免密码登录其它结点。
为实现该功能,需要将master结点的公钥信息复制到slave结点的公钥文件中。首先,slave1系统中终端,进入.ssh文件下:
然后,salve1通过scp命令远程登陆master结点, 复制master的公钥文件到当前目录下,即:
接着,将master结点的公钥文件追加到authorized_keys文件中,即:
接下来,测试。master结点中做如下操作:
再执行一次“ssh node1”或“ssh salve1”,若不要求输入“yes”,直接显示“last login”等信息,说明配置成功。
下一步,对salve2结点进行上述同样的操作,并测试,master是否能免密码登陆到salve2。
最后,对master结点也做上述操作。据说是真实物理结点时需要做这项工作,因为jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。
测试,OK。