Hadoop集群环境配置

766 阅读3分钟

这是我参与8月更文挑战的第23天,活动详情查看:8月更文挑战

WangScaler: 一个用心创作的作者。

声明:才疏学浅,如有错误,恳请指正。

上篇文章使用虚拟机配置Hadoop集群环境的搭建我们搭建了hadoop的部分环境,这篇文章我们继续搭建我们的环境,结合这两篇文章hadoop的基本环境就搭建好了。

安装hadoop

提前安装jdk,并下载hadoop的安装包。 上传hadoop的安装包到三台虚拟机上。可以使用mobaxterm,这个工具集成了xshell和xftp,并且比这两款软件更好用,界面也更加美观,强烈推荐大家使用。

解压hadoop的压缩包 tar -zxf hadoop-2.6.4.tar.gz -C /usr/local

配置虚拟机的环境

  • 1、修改三台机器的host文件vim /etc/host
192.168.253.130	master
192.168.253.131	slave1
192.168.253.132	slave2
  • 2、修改hostname vim /etc/sysconfig/network master的机器修改成以下内容
hostname=master

slave1机器修改成

hostname=slave1

依次类推,你有几个节点修改几个。

修改hadoop的配置文件

cd /usr/local/hadoop-2.6.4/etc/hadoop/
  • 1、core-site.xml 修改成
<configuration>
    <property>
    <name>fs.defaultFS</name>  
      <value>hdfs://master:8020</value>  
      </property>  
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/var/log/hadoop/tmp</value>
    </property>
</configuration>

这个配置用来指定namenode的地址hdfs://master:8020以及指定使用hadoop时产生文件的存放目录。

  • 2、hadoop-env.sh 引入java的环境,所以一定要提前准备好java的环境,如何安装jdk可自行百度,没什么难度。
export JAVA_HOME=/usr/java/jdk1.7.0_80
  • 3、hdfs-site.xml
<configuration>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///data/hadoop/hdfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///data/hadoop/hdfs/data</value>
</property>
<property>
     <name>dfs.namenode.secondary.http-address</name>
     <value>master:50090</value>
</property>
<property>
     <name>dfs.replication</name>
     <value>3</value>
</property>
</configuration>

这个配置用来指定hdfs中namenode的存储位置和指定hdfs中datanode的存储位置 同时指定hdfs保存数据的副本数量为3。

  • 4、mapred-site.xml cp mapred-site.xml.template mapred-site.xml 通过模板文件生成mapred-site的文件,修改后的内容如下:
<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<!-- jobhistory properties -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
</property>
<property>
     <name>mapreduce.jobhistory.webapp.address</name>
     <value>master:19888</value>
</property>
</configuration>

指定hadoop以后Map/Reduce运行在YARN上

  • 5、yarn-site.xml
<configuration>

 <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>    
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>${yarn.resourcemanager.hostname}:8032</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>${yarn.resourcemanager.hostname}:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>${yarn.resourcemanager.hostname}:8088</value>
  </property>
  <property>
    <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>
    <name>yarn.resourcemanager.admin.address</name>
    <value>${yarn.resourcemanager.hostname}:8033</value>
  </property>
  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data/hadoop/yarn/local</value>
  </property>
  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/data/tmp/logs</value>
  </property>
<property> 
 <name>yarn.log.server.url</name> 
 <value>http://master:19888/jobhistory/logs/</value>
 <description>URL for job history server</description>
</property>
<property>
   <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      </property>
<property>  
        <name>yarn.nodemanager.resource.memory-mb</name>  
        <value>2048</value>  
 </property>  
 <property>  
        <name>yarn.scheduler.minimum-allocation-mb</name>  
        <value>512</value>  
 </property>   
 <property>  
        <name>yarn.scheduler.maximum-allocation-mb</name>  
        <value>4096</value>  
 </property> 
 <property> 
    <name>mapreduce.map.memory.mb</name> 
    <value>2048</value> 
 </property> 
 <property> 
    <name>mapreduce.reduce.memory.mb</name> 
    <value>2048</value> 
 </property> 
 <property> 
    <name>yarn.nodemanager.resource.cpu-vcores</name> 
    <value>1</value> 
 </property>
</configuration>

指定nomenodeManager获取数据的方式是shuffl以及指定ResourceManager的地址

注意:如果你没有slave2,只有一个节点的话,配置文件不同。 单节点需要降低配置,否则导致运算时间过长。 单节点的配置文件可通过CSDN中的资源下载Hdoop单节点yarn-site.xml配置文件,也可以直接评论找我获取。

修改slaves文件

vim slaves 修改slaves文件,修改后的内容如下:

image.png

ssh免密登陆

ssh-keygen -t rsa

image.png

  ssh-copy-id -i /root/.ssh/id_rsa.pub master
  ssh-copy-id -i /root/.ssh/id_rsa.pub slave1
  ssh-copy-id -i /root/.ssh/id_rsa.pub slave2

输入shh slave1 测试可以无密码登陆slave1

image.png

配置时间同步问题

安装ntp yum install -y ntp 注意:我在这里安装时出现错误提示

image.png 没有挂载media,重新挂载一边即可。

image.png

修改master机器vim /etc/ntp.conf。 注释server开头行并添加

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

因为我们这里使用的虚拟机,为了防止防火墙的问题,我们直接关闭防火墙,如果你是真实的服务器,切记不要这么干。

service iptables stop & chkconfig iptables off
service ntpd start & chkconfig ntpd on

在子节点上执行 ntpdate master

以上最基本的hadoop环境就搭建完毕了。

来都来了,点个赞再走呗!

关注WangScaler,祝你升职、加薪、不提桶!