美文网首页程序员
利用vmware和linux模拟安装hadoop集群

利用vmware和linux模拟安装hadoop集群

作者: 老鼠慎言 | 来源:发表于2019-03-09 16:24 被阅读0次

用到的工具和版本有vmwarecentos 6jdk1.8.0_201hadoop-2.6.1


  1. 在vmware上安装三个linux(centos 6) 操作系统
  2. 对三个虚拟机实现ssh免密码登录
    • 2.1 修改三个机器名称
    • 2.2 修改/etc/hosts文件,使三台机器可以通过名称ping
    • 2.3 给机器生成密钥文件
    • 2.4 在master机器上生成authorized_keys文件
    • 2.6 将authorized_keys文件复制到其他机器上去
    • 2.7 测试使用ssh进行无密登录
  3. 安装jdk
    • 3.1 解压安装jdk
    • 3.2 修改环境变量
    • 3.3 测试java
    • 3.4 在slave中克隆相关的java文件以及环境变量的修改
  4. 安装hadoop
    • 4.1 官网下载hadoop
    • 4.2 解压安装hadoop
    • 4.3 新建目录
    • 4.4 修改/etc/hadoop中的一系列配置文件
    • 4.5 在slave中克隆hadoop以及相关的配置文件
  5. 启动hadoop
    • 5.1 在namenode上执行初始化
    • 5.2 在namenode上执行启动命令
  6. 测试hadoop

一、安装linux

在vmware的主页找到如下图片

image.png ,点击,一路下一步,看到 image.png ,选择你的linux系统镜像的所在位置,下一步,直到输入用户名,密码等等 image.png
,完成等待linux操作系统的安装。重复上述操作建立三个同样的虚拟机

二、对三个虚拟机实现ssh免密码登录

相关操作都是在root用户权限下进行
①在终端输入hostname查看机器的名称 ,如下

[root@master Desktop]# hostname
master

hostname [新名字] 是将机器修改成你想要的名字,这里我改成master
另外两台机器对应的改成slave1,和slave2
②查看对应机器的ip地址,使用ifconfig指令

image.png
③在/etc/hosts 中添加下列代码:
指令为vim /etc/hosts(在vim中,按i为进入输入模式,输入结束后,按esc,然后输入:wq,保存并退出)
image.png
每台机器的ip和它对应的hostname
此时,可以测试一下三台机器是否可以互相ping通(两台互相ping的机器要处于开机状态)
代码为(展示为在masterping slave1的机器)

ping -c 3 slave1

参数-c是指定次数,这里为三次。
如果一切正常,应该出现下图所示画面:

image.png

④给机器生成免密文件,因为hadoop集群需要频繁的登录其他两台机器,所以最好不要频繁的输入密码。此处是在master上进行,其他两台机器照样。

ssh-keygen -t rsa -P ''

此时,机器会询问你在何处保存密钥,直接敲回车即可
/root/.ssh/目录下应该有如下两个文件

image.png

⑤接下来创建一个新的文件夹叫,authorized_keys,将刚才三台机器上的密钥复制到这个文件夹中,并将authorized_keys拷贝到其他两台机器上.
/root/.ssh/目录下创建authorized_keys

touch /root/.ssh/authorized_keys

我的master 上id_rsa.pub内容为
![master上id_rsa.pub中的内容(https://img.haomeiwen.com/i7230999/a9c1016d4df89ab9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240),将这段内容复制粘贴到authorized_keys中,换行,粘贴同样的slave1机器中的id_rsa.pub内容,然后slave2中的内容同样粘贴进来。保存退出。

authorized_keys中的内容

⑥复制authorized_keys到其他两台机器的对应目录中,然后在任意一台机器上测试是否可以ssh其他两台机器,注意登录成功后,要在终端输入exit,才退回原来的主机中。以master为例,注意其中的hostname不一样

ssh登录展示

三、安装JDK

3.1下载解压安装JDK:

在官网下载对应的JDKhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载JDK
将压缩包拖曳到vmware对应的linux中,如果拖曳不成功,VMware
vmware tools 点击这个,有一个安装vmtools的选项,安装,然后拖曳。

解压JDK

opt目录下创建一个java 文件夹

mkdir /opt/java

将下载的压缩包拷贝到这个文件夹中

cp 压缩包所在的路径 /opt/java

打开JDK所在的目录

cd /opt/java

执行解压缩命令

tar -zxvf jdk-8u201-linux-x64 (1).tar.gz

此时会多处一个文件夹,解压后的jdk

jdk解压完成后

3.2修改环境变量

vim /etc/profile

内容为

export JAVA_HOME=/opt/java/jdk1.8.0_121
export  CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export  PATH=$PATH:$JAVA_HOME/bin
修改环境变量

然后将这个代码执行一遍

source /etc/profile
编辑环境变量

3.3测试java

输入

java  -version
测试java版本
只要java指令有用即可。
其他两台电脑重复此操作。
两台主机之间文件的传递可用:
scp root@192.168.224.129:/opt/java /opt/

第一个参数是需要从192.168.224.129/opt/java目录中拷贝, 然后拷贝到当前操作主机的/opt/目录下
PS:环境变量还是需要重新修改的

四、安装hadoop

4.1 可以去hadoop官网下载,对照jdk的下载,这里给一个3.1版本的链接

https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz

4.2将hadoop拖曳到对应linux中,在/opt目录下创建一个hadoop目录

mkdir /opt/hadoop
新建hadoop目录

将压缩包拖到/opt/hadoop目录下,执行

tar -xvf 对应的hadoop压缩包
hadoop解压下的目录

4.3新建几个目录

root目录下新建如下目录

mkdir  /root/hadoop
mkdir  /root/hadoop/tmp
mkdir  /root/hadoop/var
mkdir  /root/hadoop/dfs
mkdir  /root/hadoop/dfs/name
mkdir  /root/hadoop/dfs/data

4.4修改配置文件
PS:复制代码时注意自己的hadoop版本主机名
①修改/opt/hadoop/hadoop-2.6.1/etc/hadoop/core-site.xml文件

vim /opt/hadoop/hadoop-2.6.1/etc/hadoop/core-site.xml

<configuration>节点内加入配置:注意修改自己的主机名

<!--用来指定使用hadoop时产生文件的存放目录-->
<property>

        <name>hadoop.tmp.dir</name>

        <value>/root/hadoop/tmp</value>

        <description>Abase for other temporary directories.</description>

   </property>
<!--指定namenode的地址,此处主机名需要修改master-->
   <property>

        <name>fs.default.name</name>

        <value>hdfs://master:9000</value>

   </property>

</configuration>

② 修改/opt/hadoop/hadoop-2.6.1/etc/hadoop/hadoop-env.sh

修改jdk路径
修改/opt/hadoop/hadoop-2.6.1/etc/hadoop/hdfs-site.xml 文件
<property>

   <name>dfs.name.dir</name>

   <value>/root/hadoop/dfs/name</value>

   <description>namenode在本地文件系统存储命名空间,事务日志的路径.</description>

</property>

<property>

   <name>dfs.data.dir</name>

   <value>/root/hadoop/dfs/data</value>

   <description>指定hdfs中datanode的存储位置.</description>

</property>

<property>

   <name>dfs.replication</name>

   <value>2</value>

</property>
<!--指定hdfs保存数据的副本数量-->

④ 修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.template 将其改名为mapred-site.xml
指令为:

cp   /opt/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.template     /opt/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml

在configuration节点加入配置,注意修改主机名称

 <property>

   <name>mapred.job.tracker</name>

   <value>master:49001</value>

</property>

<property>

      <name>mapred.local.dir</name>

       <value>/root/hadoop/var</value>

</property>


<property>
<!--告诉hadoop以后MR(Map/Reduce)运行在YARN上-->
       <name>mapreduce.framework.name</name>

       <value>yarn</value>

</property>

⑤修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/slaves文件,将里面的localhost删除,添加如下内容:

slave1
slave2

⑥修改/opt/hadoop/hadoop-2.8.0/etc/hadoop/yarn-site.xml文件,注意主机名

   <property>
         <!--指定ResourceManager的地址-->
        <name>yarn.resourcemanager.hostname</name>

        <value>master</value>

   </property>

   <property>

        <description>RM管理界面的地址.</description>

        <name>yarn.resourcemanager.address</name>

        <value>${yarn.resourcemanager.hostname}:8032</value>

   </property>

   <property>

        <description>The address of the scheduler interface.</description>
        <description>调度器界面的地址</description>

        <name>yarn.resourcemanager.scheduler.address</name>

        <value>${yarn.resourcemanager.hostname}:8030</value>

   </property>

   <property>

        <description>The http address of the RM web application.</description>
       <description>RMweb应用的http地址</description>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>${yarn.resourcemanager.hostname}:8088</value>

   </property>

   <property>

        <description>The https adddress of the RM web application.</description>

        <name>yarn.resourcemanager.webapp.https.address</name>

        <value>${yarn.resourcemanager.hostname}:8090</value>

   </property>

   <property>

        <name>yarn.resourcemanager.resource-tracker.address</name>

        <value>${yarn.resourcemanager.hostname}:8031</value>

   </property>

   <property>

        <description>The address of the RM admin interface.</description>

        <name>yarn.resourcemanager.admin.address</name>

        <value>${yarn.resourcemanager.hostname}:8033</value>

   </property>

   <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

   </property>

   <property>

        <name>yarn.scheduler.maximum-allocation-mb</name>

        <value>2048</value>

        <discription>每个节点可用内存,单位MB,默认8182MB</discription>

   </property>

   <property>

        <name>yarn.nodemanager.vmem-pmem-ratio</name>

        <value>2.1</value>

   </property>

   <property>

        <name>yarn.nodemanager.resource.memory-mb</name>

        <value>2048</value>

</property>

   <property>

        <name>yarn.nodemanager.vmem-check-enabled</name>
     <description>忽略内存检查 因为是在虚拟机上</description>
        <value>false</value>

</property>

在另外两台机器上用scp 复制hadoop以及相关文件的配置

五、启动hadoop

PS:因为slave的机器都是datanode,所以以下操作只需要在namenode(即master)上执行即可

5.1执行

cd   /opt/hadoop/hadoop-2.6.1/bin

进入该目录,执行初始化脚本,格式化hdfs

./hadoop  namenode  -format

稍等片刻,会在/root/hadoop/dfs/name/目录多了一个current目录

current目录
该目录中有一系列文件。

5.2在namenode上执行启动命令

cd    /opt/hadoop/hadoop-2.6.1/sbin
./start-all.sh

第一次执行命令,会有几个需要确认的地方,直接打印yes即可

六、测试hadoop

第一步首先需要关闭防火墙,centos6 是

 service iptables stop

centos7

systemctl   stop   firewalld.service

因为master是我们的namenode,所以,对应的ip地址192.168.224.129. 在windows的电脑上输入
http://192.168.224.129:50070/
出现

hadoop测试网页
在浏览器中输入
http://192.168.224.129:8088/
将转到cluster页面
cluster
即成功了。。写的好累/

⑦⑧⑨⑩

相关文章

网友评论

    本文标题:利用vmware和linux模拟安装hadoop集群

    本文链接:https://www.haomeiwen.com/subject/vyljpqtx.html