VirtualBox 的虚拟机有多种网络配置模式,包括:桥接、网络地址转换(NAT)、NAT、仅主机等。

在图书馆看到关于 Hadoop 的书,刚好有空,就借回来了看看。然后在睡房测验建立环境,用了一天才弄好。

Hadoop 的运转形式有 单机形式、伪分布式形式、彻底分布式形式。我挑选的时彻底分布式形式装置。

因而需求多台机器。但哪来的多台机器呢,当然是虚拟机啦。

由于 Hadoop 只能运转在 *nix 环境中,因而我在 Ubuntu 中又用 VirtualBox 装置了两台虚拟机。一台作为 master, 一台作为 slave1.

由于怕搞坏宿主机器,因而没在物理机上折腾。集群,通常是有很多台机器的,但我内存才 6G 仍是就开两台吧。

首要装置虚拟机都很简单,就不说了。需求留意的便是用户名、机器名和网络装备。

听说 Hadoop 需求集群中机器的 用户名共同 ,因而装置时用一致的用户名暗码即满意有求又好记。

主机名,master 就设置为 master, slave 就设置为 slave1. 如果有更多 slave,数字递加即可。主机名仅仅助记用的,不必太介意这些细节。

然后便是网络装备。咱们需求完成的方针有:

1. 各虚拟机间可相互拜访

2. 虚拟机和主机可相互拜访

3. 虚拟机可上外网

为了完成第三点,最便利的办法便是运用“ 网络地址转化(NAT) ”这种方法。

为了完成***点和第二点,还需求增加 “ 仅主机(HostOnly) ”方法。

VirtualBox 的虚拟机有多种网络装备形式,包含:桥接、网络地址转化(NAT)、NAT、仅主机等。

桥接方法是虚拟出一块网卡,虚拟机内运用这个虚拟网卡,相当于一台物理机装备网络。但咱们校园一人一个 IP 地址,网络也需求认证登录,因而并不适用。

网络地址转化(NAT)是默许的网络装备,这样能够使虚拟机上网,也不要装备 IP,动态分配 DHCP 的 IP 地址,相当于虚拟机是宿主的一个程序。

NAT 方法,听说是上一个形式的升级版,没试过(需求在 VB 大局设置里装备网卡)。

仅主机形式,虚拟出一个网卡,宿主和虚拟机都能够衔接,这样宿主和虚拟机就在同一个网络中可相互拜访了。

我运用的方法是,在虚拟机的「办理」-「大局设置」-「网络」中,挑选「仅主机网络」,没有装备就增加一个,有就双击检查概况,记下IP地址。

默许是 192.168.56.1 你也能够改为 192.168.1.1 这种。DHCP 选项卡不勾选。

然后这样宿主就主动衔接上这个虚拟网卡了,Ubuntu 菜单栏会有一项显现「设备未保管」的网络便是这个。由于你的IP便是刚刚记下的,不需求再在「修改衔接」里装备了。

在虚拟机封闭状况或刚新建还没发动时,装备他的网络。挑选要装备的虚拟机,「设置」-「网络」:

网卡一:启用网络衔接,挑选「网络地址转化(NAT)」。

网卡二:启用网络衔接,挑选「仅主机(HostOnly)适配器」,界面挑选刚刚大局增加的那个称号。

发动虚拟机后,在其间能够看到两个网络衔接,在右上角的菜单栏中点击挑选「修改衔接」

「以太网」选项卡挑选网络接口,新版别的Ubuntu不是eth0/eth1这种称号了,是 enp0s3/enp0s8类似的称号,数字小的一个是网卡一,另一个是网卡二。

在网卡一中,咱们挑选的是 NAT 形式,那么,在 IPv4 选项卡,就只需求挑选 DHCP 就行了,不必装备 IP 地址(主动分配10.0.2.x)。这个是虚拟机上外网的网络。

在网卡二中,咱们挑选的时仅主机形式,在 IPv4 选项卡中,需求装备静态 IP(网关能够不必装备),用于各个机器间相互拜访。这个是宿主和虚拟机之间的局域网。

还需求在IPv4选项卡中的「路由…」按钮中 勾选「仅将衔接用于相应的网络上的资源」 这样当两个网络一起启用时,拜访外网就不会用网卡二的网关了。不然或许拜访外网运用网卡二的网关192.168.56.1,那么将不能拜访外网。

Hadoop 集群建立(构建hadoop集群)  集群 配置 第1张

虚拟机装备网络

现在,你能够在虚拟机(192.168.56.2)中ping通外网(如youthlin.com)、其他装备好的虚拟机(192.168.56.3)、宿主机(192.168.56.1)。

然后便是预备装置 Hadoop 了。

  • Open-SSH
  • JDK7+
  • Hadoop2.7.3

ssh 便是装备免暗码登录。

  1. ssh-keygen-trsa

生成公钥私钥密钥对,把公钥 id_rsa.pub 导入方针主机的 authorized_keys 文件中,那么本机就能够免暗码登录方针主机。

Hadoop 2.7 需求 JDK7+ 版别,我是在 Oracle 网站上下载 JDK 然后解压的。只需在 /etc/profile 要装备 JAVA_HOME 就能够了。

Hadoop 我下载的是当时 2.7.3 版别,解压在 /opt/ 文件夹下。

  1. chown-Rxxx/opt

xxx 为你需求的用户名,意思是把 /opt 文件夹授权给 xxx 用户。

装备文件全在 $HADOOP_HOME/etc/Hadoop

  1. exportJAVA_HOME=xxx
  2. exportHADOOP_HOME=xxx
  3. exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

这三个环境变量在 profile 里也要装备一下,把 $JAVA_HOME/bin、$HADOOP_HOME/bin 参加 PATH,刊出再登录收效。

  1. core-site.xml
  2. hdfs-site.xml
  3. mapred-site.xml.template
  4. slaves

这几个文件详细装备自行查找吧,我也不太确认咋配。可看下方参阅链接。

先在 HADOOP_HOME 下新建了 tmp、name、data 文件夹, hadoop.tmp.dir 设为 tmp, dfs.namenode.name.dir 设为 name的途径, dfs.datanode.data.dir 设为 data的途径。暂时没有用到 yarn.xml 等今后搞理解了在研讨……

一切机器都这样装备。然后就算装备好了环境~

预备发动之前需求先格式化 HDFS. 这是 Hadoop 用的分布式文件体系,理解为 NTFS、ext4 之类的就行了,只不过 HDFS 里的文件时存在多台机器上的。

  1. hdfsnamenode-format

Exiting with status 0就表明履行成功了。

发动运用的指令在 $HADOOP_HOME/sbin 下,用 start-dfs.sh 和 start-yarn.sh 发动 Hadoop

  1. hdfsdfs-ls
  2. hdfsdfs-put
  3. hdfsdfs-cat

用于列出HDFS里文件、上传本地文件到HDFS、输出HDFS里文件内容。

Hadoop 集群建立(构建hadoop集群)  集群 配置 第2张

Hadoop自带的网络界面

测验装置是否成功用 WordCount 检测。(此刻能够拜访 http://master:50070/ 为了便利能够把 master/slave1 的 IP 放在/etc/hosts 里)

首要在 master 里随意预备一个文本文件,比方叫做 words,内容便是几个单词。

然后再

  1. hdfs-dfs-put/path/to/words/test/words

这样就把 words 文件放入 HDFS 文件体系了。

在 HADOOP_HOME 履行:

  1. hadoopjarshare/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jarwordcount/test/words/test/out

记履行单词计数计算程序,/test/words 为输入文件,/test/out 为输出目录,其间输出目录的父目录有必要存在,不然报反常,slave 里 hadoop-env.sh 没装备 JAVA_HOME 也会报反常。退出码为 0 表明履行成功。

Hadoop 集群建立(构建hadoop集群)  集群 配置 第3张

运转成果

这样就算装置成功发动成功了,jps 指令能够看到运转中的 Java 进程。下一步有空的话再看书学习~

转载请说明出处
知优网 » Hadoop 集群建立(构建hadoop集群)

发表评论

您需要后才能发表评论