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

作者 : 开心源码 本文共6749个字,预计阅读时间需要17分钟 发布时间: 2022-05-12 共178人阅读

用到的工具和版本有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://upload-images.jianshu.io/upload_images/7230999-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_121export  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/hadoopmkdir  /root/hadoop/tmpmkdir  /root/hadoop/varmkdir  /root/hadoop/dfsmkdir  /root/hadoop/dfs/namemkdir  /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删除,增加如下内容:

slave1slave2

⑥修改/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
即成功了。。写的好累/

⑦⑧⑨⑩

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 利用vmware和linux模拟安装hadoop集群

发表回复