玩儿数据 - Hadoop集群环境搭建

Hadoop安装部署指南

author:yupeng
update_date:2017-04-17 08:40:04
version: 1.0

软件级分布式框架

1. 系统环境要求

  • 本安装说明针对Hadoop 2.x.y版本有效,其他版本可能有少许不同之处
  • 本安装说明针对Linux操作系统环境,在CentOS 6.5 x64系统环境中部署成功并通过测试,其他操作系统或版本可能有少许不同之处
  • JDK1.8+
  • 操作系统Root权限
  • 本安装说明以3台服务器为基础,如安装多台服务器同理进行即可

2. 测试服务器物理环境

  • 主 节 点: hostname:master ipaddr:192.168.10.27
  • 子节点1: hostname:cluster1 ipaddr:192.168.10.28
  • 子节点2: hostname:cluster2 ipaddr:192.168.10.29

3. 开始安装

  1. HOST配置
    将三台服务器的hostname添加到各个服务器的hosts解析当中
    ssh连接master节点:
    vi /etc/hosts
    将如下配置添加其中:
 192.168.10.27 master
 192.168.10.28 cluster1
 192.168.10.29 cluster2

配置完成后将此配置同步到其他子节点上:

scp root@192.168.10.28:/etc/hosts
scp root@192.168.10.29:/etc/hosts
//scp <username>@<host>:<target path>

配置完成后可通过ping <hostname>检测是否生效

  • SSH免密码
    Hadoop集群控制需要主节点通过SSH方式登录自己点并执行命令,所以如果没有设置SSH免密码,每次执行命令时都必须手动输入,非常繁琐并且在无人值守的状态下无法正常工作,故需设置SSH免密码
    ssh链接master节点:
  1. ssh-keygen并回车直至完成
  2. ssh-copy-id root@master 输入密码
  3. ssh-copy-id root@cluster1 输入密码
  4. ssh-copy-id root@cluster2 输入密码

使用ssh root@cluster1,ssh root@cluster2分别验证是否成功,若未提示输入密码即为配置成功,若仍需输入密码请重试上面步骤

  • JDK安装配置
    略。注:集群所有服务器JDK安装路径最好一致,本教程三台服务器JDK路径均一致,下面配置以此为基础
  • HADOOP安装(此步骤仅在主节点进行)
  1. 解压Hadoop-2.x.y.tar.gz,此处解压放在/opt目录(非必须,可任意目录)
  2. 配置环境变量,将hadoop加入系统变量当中
vi /etc/profile
//在文件最后添加以下配置
export HADOOP_HOME=/opt/hadoop-2.x.y
export PATH=$PATH:$HADOOP\_HOME/bin:$HADOOP\_HOME/sbin
//配置完成后使其生效
source /etc/profile
  1. 使用hadoop version检查是否安装成功,若未成功请仔细检查上述步骤何处出现问题
  • 主节点Hadoop配置
  1. hadoop-env.sh
    修改export JAVA_HOME=<xxx>为本机配置的JDK的绝对路径

  2. core-site.xml
    创建hadoop临时目录,此处创建的是: mkdir /opt/tmp

<configuration>
   <property>
     <name>fs.defaultFS</name>
     <value>hdfs://master:9000</value>
     </property>
   <property>
     <name>io.file.buffer.size</name>
     <value>131072</value>
   </property>
   <property>
     <name>hadoop.tmp.dir</name>
     <value>file:/opt/tmp</value>
   </property>
</configuration>
  1. hdfs-site.xml
    创建hdfs namenode目录及datanode目录
    此处创建的分别是:
    mkdir /opt/dfs/name
    mkdir /opt/dfs/data
<configuration>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9001</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/opt/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/opt/dfs/data</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property> 
</configuration>
  1. mapred-site.xml
<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.webapp.address</name>
    <value>master:19888</value>
  </property>
</configuration>
  1. yarn-site.xml
<configuration>
  <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.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:8035</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> 
</configuration>
  1. slaves
cluster1
cluster2
  • 子节点Hadoop配置
  1. 在两个子节点分别建立与主节点目录相同的tmp,name,node目录
    mkdir /opt/tmp
    mkdir /opt/dfs/name
    mkdir /opt/dfs/data
  2. 使用scp命令将刚才主节点配置好的Hadoop整个目录发送给子节点 ,完成后在子节点配置本节点Hadoop环境变量并source使其生效
    注意:主节点和子节点的hadoop目录必须一致(原理上是非必须的,为了我们使用和维护方便我们这样要求。若不想放在相同目录,可在各个子节点参考步骤5各自配置)
  • 格式化Namenode
    主节点运行命令:
    hadoop namenode -format
  • 运行测试
    在主节点运行命令:
    1.启动YARN资源管理器:start-yarn.sh
    2.启动HDFS文件系统:start-dfs.sh
    如果上述步骤全部正确执行则应该看到hadoop正在启动,启动完成后使用jps命令查看,各节点应该有以下对应进程在运行:

master:

  • ResourceManager
  • NameNode
  • SecondaryNameNode

cluster:

  • NodeManager
  • DataNode

若成功启动访问主节点http://master:50070 端口即可看到HDFS Web UI 管理界面

Hadoop管理界面

Hadoop数据节点预览

访问主节点http://master:8088 端口即可看到Yarn Web UI 管理界面
YARN管理界面

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容