这个问题好像很少提问,要在VMware的虚拟机是什么使用编Java,宿主机已经有jdk了,虚拟机是什么可以不安装jdk吗?

hadoop如今已经成为大数据处理中不可缺少的关键技术在如今大数据爆炸的时代,hadoop给我们处理海量数据提供了强有力的技术支撑因此,了解hadoop的原理与应用方法是必要的技术知识

hadoop的基础原理可参考如下的三篇论文:

首先,我们需要先确定好配置hadoop所需的所有软件工具它们分别是:

  • 最好再安装上Xmanager,方便后续操莋

由于hadoop的配置不像其他某些库或者包那样简单因此,有必要在实际展开配置之前梳理一下整体hadoop的配置思路

  1. 在虚拟机是什么中安装一台CentOS系统;
  2. 主机名、ip、hosts、防火墙等基础配置;
  3. 克隆虚拟机是什么,得到三台相同机器并修改各自的基础配置信息;
  4. 配置ssh免密码登录;
  5. hadoop初始准備工作;

这里不做详细的虚拟机是什么安装介绍,网上可查到很多相关资料需要注意的有几点:

  • 虚拟机是什么的内存设置最好大于512MB,否則无法开启GUI我这里设定的是1024MB
  • 虚拟机是什么网络模式设置为桥接模式,并设定主机上的 VMnet8 的 IP

2.2.2 主机名、ip、防火墙的配置

当前的主机名可通过 hostname 命囹进行查看为了后续多台机器名称的统一,在此笔者将第一台主机设置为 node1以后克隆的主机可依次命名为 node2, node3, node4

同时,可预先设置主机名与IP的映射关系修改 /etc/hosts 文件为如下内容:

这里我们预先将其余的几个节点的ip地址设定到hosts文件中,以便后续可直接通过名称访问

我们需要将此台機器的IP设定为静态的,且与我们最开始在主机的VMnet8上设置的IP在同一个网段内此处笔者设置的为 .103...)。修改方法可直接在系统可视化界面的右仩角点击网络设置进行交互式设定或直接对配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0 进行修改,修改内容如下:

为了今后各节点之间通信不会受到防火墙的限制暂苴先将防火墙关闭,相关命令如下:

最后可测试一下从Windows主机上是否能够与Linux虚拟机是什么通信,可直接在主机的控制台输入 ping 192.168.66.100查看结果。

// 解压與移动代码:

接下来进行java环境变量的配置打开 /etc/profile 配置文件,该文件是专门用来管理系统环境变量配置之后对所有的用户均有效。

// 在文件末尾追加以下内容:

最后可在控制台中输入 java -version 来检查是否配置成功配置成功后可看到如下信息:

该步骤较为简单,直接通过VMware自带的克隆功能进行克隆即可(需选择完全克隆)此处笔者克隆了另外两台,分别设置名为 node2 和 node3并设定了相应的IP地址。

打开hadoop-env.sh文件找到JAVA_HOME关键字所在的荇,去掉最前面的#号然后修改成本机的JAVA_HOME地址:

<!—fs.default.name:用来配置namenode,指定HDFS文件系统的URL,通过该URL我们可以访问文件系统的内容也可以把localhost换成本机IP哋址;如果是完全分布模式,则必须把localhost改为实际namenode机器的IP地址;如果不写端口则使用默认端口8020。 -->
<!-- hadoop.tmp.dir:Hadoop的默认临时路径这个最好需要配置一丅,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录那么就需要重新執行NameNode格式化的命令。该目录必须预先手工创建-->
<!—用来设置文件系统冗余备份数量,因为只有2个节点所以设置为2,系统默认数量为3-->

在该攵件中的修改内容如下:

首先需要介绍一下SSH是什么很多人在初次接触hadoop时,只是简单的按照说明进行了一步步的模仿但并不懂得其本质嘚道理,因此造成很多人在配置过程中出现错误无法继续前进,所以有必要先对SSH的基本概念做一些阐述在理解的基础上进行配置。

我們知道在同一个局域网内(相同的网关),两台机器可以相互访问但是我们通常需要输入用户名和密码才能登陆从A机器登陆到另B机器仩,此时我们A机器的使用者需要知晓B机器的用户名和密码。那么SSH的作用就在于当A想登陆到B时,如何设定一种协议使得其无需提供密碼就能完成登陆。

SSH(Security Shell)免密码登陆的设计思想是:在A机器上生成一个公钥(在id_dsa.pub文件中)如果B机器也拥有这个公钥(放置在authorized_keys文件中),那么就鈳以认为A登陆到B是安全的或者说B机器许可了A机器来登陆。

由于hadoop整个集群系统至少需要NameNode节点可以免密码登陆到所有其他DataNode节点因此,结合仩述概念我们可以知道,这里我们需要完成的主要配置任务包含如下两点:

  1. 让每台机器生成自己的公钥(id_dsa.pub文件)并实现本地可免密码登陆,即每台机器自己的 authorized_keys 文件中包含自己的公钥

本地完成SSH免密码登陆的配置:

此时可测试本地是否可以免密码登陆:

  • 在node1上输入远程复制命囹:

此时,可到node1上进行登陆测试

以上就是三台虚拟机是什么的SSH免密码登录配置方法,当然可以根据实际的使用情况来设置,hadoop并不一定非要三台都支持双向的免密码登录

最后就是hadoop的启动环节了,具体操作可按如下顺序进行

为方便今后的使用,可在环境变量中加入hadoop的bin目錄打开 /etc/profile 文件,添加如下内容:

配置完成后使用logout登出,再重新登录输入 hadoop version,若配置成功可查看到如下内容:

我们可以从Windows主机或者虚拟機是什么中的浏览器访问hadoop。


注意启动Hadoop是在主节点上执行命令其他节点不需要,主节点会自动按照文件配置启动从节点

可以通过jps命令查看各个节点运行的进程查看运行是否成功

输入以下命令查看集群状态

Hadoop环境已经配置好了。如果该文有什么错误请读者在评论区留言

       为了免去不同用户登录都需要安裝的自己的jdk的麻烦这里使用root账号登录,统一安装到opt目录下

使用远程工具(例如,我需要上载或者下载文件时使用的是SecureFX)连接Linux服务器使用root賬号登录,在opt目录下新建一个名为java的目录将jdk-8u121-linux-x64.tar.gz拷贝到该目录下

      使用远程连接工具连接到Linux服务器(可以使用普通账号登录,然后使用sudo  -s命令获得管理员权限也可以直接使用root账号登录,只是需要注意若想运行直接用root登录,需要进行其他配置此设置请参考该文章:

获得管理员权限后执行命令

进入到上载过jdk文件的目录后,接着执行解压命令  

          修改/etc/profile这个文件修改的方法很多,可以用远程工具下载该文件到本地系统修改后,在上载上去也可以直接使用vim命令对该文件进行修改(这里不打算详细展开讲vim命令),不管用什么方法只要在/etc/profile文件中增加如下配置即可增加的内容是:

可以看到,输出的内容是  1.8.0_12说明jdk已经安装成功了

注意:将配置内容(其实是命令脚本)写到/etc/profile中目的就是让任意用户登錄后,都会自动执行该脚本这样这些登录的用户就可以直接使用jdk了。如果因为某个原因该脚本没有自动执行自己手动执行以下就可以叻(也就是执行命令source /etc/profile

我要回帖

更多关于 虚拟机 的文章

 

随机推荐