美文网首页
Ubuntu16.04 下搭建 Hadoop2.7.4 群集(3

Ubuntu16.04 下搭建 Hadoop2.7.4 群集(3

作者: 一个三要不起 | 来源:发表于2017-11-10 18:34 被阅读0次

一、相关准备

二、开始

1.首先在VMware Workstation上安装3个Ubuntu虚拟机。

不会安装的请看我上一篇文章
分别给他们命名为master、slave1、slave2。

2.给Ubuntu设置静态IP。
  • 点击 编辑,虚拟网络编辑器


  • 选择 VMnet8 NAT模式,勾上“NAT模式”、“使用本地DHCP服务……”。可以在下边看到子网IP及掩码。点击“DHCP设置”可以看到可使用的IP地址范围。



  • 启动master,编辑/etc/network/interfaces文件(root用户下操作)。
    修改内容如下所示。address是表示本机的IP,可自行修改,但不要超出128~254的范围。用同样的方法分别修改slave1、slave2的IP(slave1:192.168.118.201,slave2:192.168.118.202)。
    vim /etc/network/interfaces
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.118.200
netmask 255.255.255.0
gateway 192.168.118.2

dns-nameserver 8.8.8.8

修改后重启shutdown -r now,输入ifconfig可以看到IP地址已经改变。

  • 编辑每一台虚拟机的/etc/hosts
    vim /etc/hosts
    添加每一台虚拟机的IP及虚拟机名:
127.0.0.1       localhost
127.0.1.1       ubuntu

192.168.118.200 master
192.168.118.201 slave1
192.168.118.202 slave2

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

在每一台虚拟机上都能通过虚拟机名ping通其他两台虚拟机。
“Ctrl”+“C”结束ping。


3.配置Hadoop

在3台虚拟机上都安装hadoop、JDK以及SSH。不会的安装请参考我的上一篇文章
在master上进行如下操作,实现master与slave无密码登陆。

ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2
master下:
  • 编辑hadoop-env.sh
    vim /usr/hadoop/etc/hadoop/hadoop-env.sh
    在JAVA_HOME处输入jdk目录

  • 编辑core-site.xml
    vim /usr/hadoop/etc/hadoop/core-site.xml
    在<configuration></configuration>标签内输入以下内容

<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/hadoop/tmp</value>
</property>

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
</property>

<property>
  <name>io.file.buffer.size</name>
  <value>131072</value>
</property>

  • 编辑hdfs-site.xml
    vim /usr/hadoop/etc/hadoop/hdfs-site.xml
    在<configuration></configuration>标签内输入以下内容
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave1:50090</value>
</property>

<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/hadoop/hdfs/name</value>
</property>

<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/hadoop/hdfs/data</value>
</property>

<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>

  • 编辑mapred-site.xml
    vim /usr/hadoop/etc/hadoop/mapred-site.xml.template
    在<configuration></configuration>标签内输入以下内容
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>
<property>
   <name>mapreduce.jobhistory.address</name>
   <value>master:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:19888</value>
 </property>

重命名mapred-site.xml.template 为mapred-site.xml
mv /usr/hadoop/etc/hadoop/mapred-site.xml.template /usr/hadoop/etc/hadoop/mapred-site.xml

  • 编辑yarn-env.sh
    vim /usr/hadoop/etc/hadoop/yarn-env.sh
    把JAVA_HOME值改为JDK目录

  • 编辑yarn-site.xml
    vim /usr/hadoop/etc/hadoop/yarn-site.xml
    在<configuration></configuration>标签内输入以下内容

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
     <name>yarn.nodemanager.resource.cpu-vcores</name>
     <value>8</value>
 </property>
 <property>
     <name>yarn.nodemanager.resource.memory-mb</name>
     <value>8192</value>
</property>
<property>
     <name>yarn.resourcemanager.address</name>
     <value>master:8032</value>
</property>
<property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>master:8030</value>
</property>
<property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>master:8031</value>
</property>
<property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>master:8033</value>
</property>
<property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>master:8088</value>
</property>

  • 编辑slaves
    vim /usr/hadoop/etc/hadoop/slaves
    添加slave
slave1
slave2

所有虚拟机的配置都一样
在master上配置之后可以通过scp命令拷贝hadoop目录到slave中。
如把master上的/usr/hadoop目录传输到slave1的/home/pan/目录下:
scp -r /usr/hadoop slave1:/home/pan/
(如果使用root用户传输失败,切换普通用户试试)

4.启动Hadoop群集

按照上面的配置理论上角色分配应该如下所示:

主机名 角色
master NameNode 、ResourceManager
slave1 NodeManager、SecondaryNameNode、DataNode
slave2 NodeManager、DataNode

在master中格式化
hdfs namenode -format
接着同样在msater中用普通用户启动Hadoopstart-all.sh
(用root用户会出现Permission denied, please try again.错误,SSH的问题)
如果出现command not found,输入source /etc/profile更新环境变量再启动Hadoop

  • 在master中jps


    master
  • slave1


    slave1
  • slave2


    slave2

    与表格相同,配置成功!

主机名 角色
master NameNode 、ResourceManager
slave1 NodeManager、SecondaryNameNode、DataNode
slave2 NodeManager、DataNode

相关文章

网友评论

      本文标题:Ubuntu16.04 下搭建 Hadoop2.7.4 群集(3

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