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

用到的工具和版本有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_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

即成功了。。写的好累/

⑦⑧⑨⑩

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容