美文网首页大数据BigData
Hadoop集群完全分布式搭建

Hadoop集群完全分布式搭建

作者: geekAppke | 来源:发表于2018-11-06 10:03 被阅读10次

硬件要求:8G以上
集群:至少4台服务器

Linux集群基础配置

hadoop伪分布式系统配置
VM安装Linux虚拟机环境
VM克隆Linux虚拟机集群配置

1、操作系统:jdk(安装,环境PATH),ssh(免密钥)
2、部署hadoop,jdk2次配置,修改hadoop配置,core,hdfs
3、format >>> fsimage,version
4、start-dfs.sh
主机名 机器ip NN SNN DN
node001 192.168.118.101/24 *
node002 192.168.118.102/24 * *
node003 192.168.118.103/24 *
node004 192.168.118.104/24 *

配置文件:core-site.xmlhdfs-site.xmlslaves

每台服务器都要配置

(1)JDK安装,配置环境变量

rpm -i jdk-7u67-linux-x64.rpm
    rpm 安装,不是每个命令都有软连接——> 配置固定的!用jps去验证
vi /etc/profile

(2)ssh 免密钥
ssh登陆所有节点一次:ssh localhost,产生~/.ssh/known_hosts

# node001 生成密钥 dsa加密,-大写P 密码为空,-f 到那个文件
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
# 把公钥复制到authorized_keys 自己能免密登陆本机
# 把authorized_keys 拷贝到别的机器上 ,node001就能免密登陆它
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


管理节点:我想登陆谁,把我的公钥放到 它.ssh的authorize_keys里面
控制节点scp自己的id_dsa.pub分发到其他节点

node001免密登陆node003

[root@node001 .ssh]# scp id_dsa.pub  root@node003:`pwd`/node001.pub
[root@node003 ~]# cat ~/.ssh/node001.pub >> ~/.ssh/authorized_keys

一步到位
[root@node001 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub root@node001

(3)上传hadoop.tar.gz到服务器
解压:tar -xf hadoop*.tar.gz
移动到/opt: mv hadoop-2.6.5 /opt

export JAVA_HOME=/usr/java/jdk1.7.0_67
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在伪分布 Single Node Setup 的基础上搭建,下面给出hadoop集群搭建全过程

hadoop环境配置

/opt/hadoop-2.6.5/etc/hadoop
(1)xxx-env.sh

JAVA_HOME,2次配置(系统环境,脚本再次制定)
硬赋值,绝对路径,不引用!
JAVA_HOME=/usr/java/jdk1.7.0_67

(2)core-site.xml
配置:NameNode

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node001:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/hadoop/local</value>
    </property>
</configuration>

注意:hadoop.tmp.dir默认是/tmp/目录,需要手动指定一个持久目录
name\data存储目录都引用 —> ${hadoop.tmp.dir}

(3)hdfs-site.xml
配置:SecondNameNode

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node002:50090</value>
    </property>
<configuration>

设置SNN的http-address的节点主机名会让SNN去具体的节点启动

(4)slaves
配置:DataNode所在节点

node002
node003
node004


以上在控制节点配置完成

分发部署包到其他节点

[root@node001 opt]# scp -r ./hadoop-2.6.5/ node002:`pwd`
[root@node001 opt]# scp -r ./hadoop-2.6.5/ node003:`pwd`
[root@node001 opt]# scp -r ./hadoop-2.6.5/ node004:`pwd`
  • 控制节点,第1次使用必须格式化:hdfs namenode -format
  • 控制节点启动:start-dfs.sh
  • 每个节点jps验证:jps
  • 验证:浏览器node001:50070
/opt/hadoop-2.6.5
bin  决策功能脚本
sbin 管理脚本

配置文件
*-env.sh:jdk
core-site.xml:
    fs.defaultFS  namenode节点
    hadoop.tmp.dir:NN.dir,DN.dir
hdfs-site.xml:副本数
slaves:
    datanode节点列表


HDFS集群有clusterID,datanode启动时会和namenode对比clusterID
    如果相同,启动成功,如果不同,自杀进程

启动:hdfs namenode –format
去观察hadoop.tmp.dir设置的目录变化
注意,这个目录必须是空的
如果,报错等,想重新格式化,需要先删除

相关文章

网友评论

    本文标题:Hadoop集群完全分布式搭建

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