2.5 Hadoop环境搭建
Hadoop架构有很多的组件,在2.6节中会有介绍,本节主要针对Hadoop的搭建进行简单描述,主要使用Linux命令进行搭建。
以下打开文件用的Linux命令是gedit,如果出现打开文件是只读、无法修改的情况,请将gedit命令改为vim命令即可。vim编辑器的使用方法和一般的编辑器方法不同,在这里不做过多介绍。如果不想使用vim,可以在代码前加sudo。
2.5.1 JDK安装和测试
1)检查是否安装JDK。切换为root用户,使用命令“java-version”查看是否已经安装了java JDK。若存在其他JDK,先进行卸载。可以通过在命令终端执行命令java-version进行检测。如果发现有存在版本,则需要执行命令rpm-qa/grepjdk和rpm-qa/grep gcj。然后根据查找到的软件,通过执行yum-y remove进行卸载。结果如图2-35所示。
图2-35 查看是否安装JDK
2)在Home下创建文件夹resourses,结果如图2-36所示。
3)将JDK的资源复制到resourses中,如图2-37所示。
图2-36 创建文件夹
图2-37 将JDK的资源复制到resourses中
4)复制文件到/usr/java下。
5)解压。
①使用Linux命令解压,输入命令:
结果如图2-38所示。
图2-38 字符界面解压
②如果是图形界面的话,选择提取即可,如图2-39所示。
图2-39 图形界面解压
6)配置环境变量。输入代码:
在文件尾部添加代码:
/usr/java/jdk1.7.0_67是解压缩之后自动创建的文件夹,可根据实际安装位置进行更改。
输入以下代码,使修改生效:
该过程不会返回任何信息。
再次执行“java-version”测试,结果如图2-40所示。
图2-40 “java-version”测试
2.5.2 Hadoop安装和配置
在开始安装之前,先设置主机名,切换用户root,如图2-41所示。
图2-41 切换用户root
打开文件。
输入以下代码,其中master是主机名。
使文件生效。
关闭终端,重新打开终端,结果如图2-42所示。
图2-42 重新打开终端后结果
重启虚拟机后,名字没有变成master,所以还要在hostname文件中修改,将内容改为master,即主机名。
其他虚拟机的主机名也从默认的localhost更改为对应的slave0和slave1。现在开始进行Hadoop安装和配置。
(1)解压hadoop压缩包
将Hadoop的安装包放到Home下的resources中,如图2-43所示。
图2-43 将Hadoop的安装包放到Home下的resources中
进入resources,解压安装包,结果如图2-44所示。
图2-44 解压安装包
解压之后会在用户目录下自动创建文件夹,如图2-45所示,作为Hadoop的安装目录。
但如果想要使用Hadoop,还需要完成一系列的配置。
(2)配置Hadoop环境变量
hadoop-env.sh是Hadoop的环境变量文件,位于hadoop-2.6.0/etc/hadoop子目录下。我们只需配置该文件的JDK路径即可。
将文件前面的“export JAVA_HOME=${JAVA_HOME}”改成实际的JDK安装路径。
如图2-46所示,编辑完成后保存退出。
图2-45 自动创建文件夹
图2-46 修改JDK路径
(3)配置Yarn环境变量
需要更改的环境变量为yarn-env.sh,其余的与Hadoop环境变量配置方法一致。
(4)配置核心组件文件
core-site.xml是Hadoop的核心组件文件,位于hadoop-2.6.0/etc/hadoop子目录下,打开该文件。
将以下配置代码放在文件的<configuration></configuration >之间,结果如图2-47所示,编辑后保存退出。
(5)配置文件系统
hdfs-site.xml是Hadoop的文件系统配置文件,位于hadoop-2.6.0/etc/hadoop子目录下,打开该文件。
将以下配置代码放在文件的<configuration></configuration >之间,如图2-48所示,编辑后保存退出。
图2-47 配置核心组件文件结果
图2-48 配置文件系统结果
这里的1指的是HDFS数据块的副本数,因为HDFS最大副本数是3,所以超过3没有任何意义。
(6)配置yarn-site.xml
yarn-site.xml是Hadoop的站点配置文件,位于hadoop-2.6.0/etc/hadoop子目录下,打开该文件。
将以下配置代码放在文件的<configuration></configuration >之间,结果如图2-49所示,编辑后保存退出。
(7)配置MapReduce计算框架文件
在hadoop-2.6.0/etc/hadoop子目录下找到mapred-site.xml.template文件,在当前目录下复制改名并打开文件。
图2-49 配置yarn-site.xml后结果
在文件下方添加下列代码,结果如2-50所示。
图2-50 配置MapReduce计算框架文件结果
(8)配置Master的slaves文件
slaves文件给出Hadoop集群的Slave节点列表,因此十分重要。在启动Hadoop时,系统根据该文件中的节点名称列表启动集群,不在表中的节点不会被视为计算节点。
编辑slaves文件。
用户根据自己搭建的集群情况进行编辑。
复制Master上的Hadoop到Slave节点,如要提高系统部署效率,复制Master上的Hadoop到Slave节点是一个更好的选择。每个节点复制一次,以slave0为例,命令如下:
在这一步当中需要进行密码验证,下一节将会对如何免密登录进行讲解。
2.5.3 SSH免密码配置
SSH是Secure Shell的缩写,由IETF的网络工作小组制定,SSH是建立在应用层和传输层上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。目前SSH相对比较可靠。在大数据集群中的Linux计算机之间要频繁地通信,而Linux的通信需要进行用户的身份验证,即输入登录密码。小规模通信的耽误时间可以忽略,如果是大规模的通信,工作效率会因为输入密码而降低,如果能够免密登录,就会大大提高效率。
免密登录是指两台Linux机器自检使用SSH连接时不需要用户名和密码。下面的配置分为在Master节点和所有Slave节点的操作。
本章使用的是普通用户iTheds。
(1)Master节点配置
首先,在终端生成密钥:
输入该命令后会有一系列的提示,默认直接按〈Enter〉键4次即可,执行完上面的命令后会生成id_rsa(私钥)和id_rsa.pud(公钥)文件,结果如图2-51所示。
图2-51 生成密钥
ssh-keygen是用来生成private和public密钥对的命令,将public密钥复制到远程集群后,使用SSH到另一台机器就不用密码了。-t是指定加密算法的参数,这里使用的加密算法是基于大数因式分解的rsa算法,也是应用最广泛的非对称加密算法。
生成的密钥在.ssh目录下,切换到该目录,查看文件详细信息,结果如图2-52所示。
图2-52 文件的详细信息
将公钥文件复制到.ssh下。
修改authorized_keys文件的权限为600。
此时各文件的详细信息如图2-53所示。
图2-53 各文件的详细信息
将authorized_keys文件复制到所有的Slave节点。以复制到Slave0节点上为例,使用如下命令,结果如图2-54所示。
图2-54 将authorized_keys文件复制到所有的Slave节点
(2)Slave节点配置
在slave0和slave1上搭建Slave节点环境,其配置步骤与Master的配置步骤相同,该过程中使用的authorized_keys文件是从Master复制过来的,移动到.ssh目录下,修改权限为600。因过程基本一致,具体操作就留给读者自行搭建。测试使用命令“ssh slave0”即可。