HDFS集群搭建

Posted 编译未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS集群搭建相关的知识,希望对你有一定的参考价值。


一、HDFS 指令操作:HDFS延用Linux目录


1.若jps里没有namenode/datanode/SeceondaryNameNode

启动hdfs:

start-dfs.sh 


5.1)关闭:

stop-dfs.sh 

5.2)先删除/opt/hadoop-2.7.3/下tmp 

重新格式化

再启动


1.1 HDFS 各节点职责:

1)Namenode :储存元数据、管理datanode、指定备份数量

2)Datanode :发送数据包、储存具体数据块

3)SeceondaryNameNode:辅助管理namenode管理元数据(SeceondaryNameNode不是nmanode的热备份)


2.查看HDFS 文件系统根目录:/park01

hadoop fs -ls /

hadoop fs -ls /park01

或:

hdfs dfs -ls /

或:

http://192.168.56.100:50070/explorer.html#/

3.上传文件:

hadoop fs -put 源文件路径  目标文件路径(HDFS上的路径)


hadoop fs -put hadoop-2.7.3.tar.gz /


4.创建空目录:

hadoop fs -mkdir /目录路径 


5.下载文件:

hadoop fs -get 源文件路径(HDFS)  目标文件路径(Linux)


6.查看HDFS可用的指令,直接输入hadoop或者hdfs

hadoop fs

hdfs dfs




二、HDFS集群的搭建:


1.准备四台虚拟机:

  1台namenode   master

  3台datanode   slave1/slave2/slave3 

  1台secondaryNameNode  slave2

  ->通过克隆

2.修改虚拟机分配的内存

   内存512MB

3.启动四台虚拟机

修改master: vim ifcfg-xxx

  -IPADDR:192.168.56.200

重启网卡:service network restart


    slave1-3:

    -IPADDR:192.168.56.201

    -IPADDR:192.168.56.202

    -IPADDR:192.168.56.203



5.XShell远程连接以及虚拟机之间互Ping

  Xshell 连接四台虚拟机


6.设置主机名称:

192.168.56.200  master

        指令: hostnamectl set-hostname master

192.168.56.201  slave1

        指令: hostnamectl set-hostname slave1

192.168.56.202  slave2

        指令: hostnamectl set-hostname slave2

192.168.56.203  slave3

        指令: hostnamectl set-hostname slave3


查看主机名称:hostname


7.修改hosts文件(/etc/hosts)

在最底下添加:

192.168.56.200  master

192.168.56.201  slave1

192.168.56.202  slave2

192.168.56.203  slave3 

测试是否成功:

ping master

ping slave1

ping slave2

ping slave3


8.关闭四台虚拟机防火墙:

    firewall-cmd --state

    【若runnig:

    systemctl stop firewalld.service 

    关闭开机启动:

    systemctl disable firewalld.service】


9.开启免密登录:希望namenode可以免密登录到其他三台datanode上

这时就需要namenode产生对应的公钥、私钥,将公钥拷贝到其他三台电脑上

1)master免密:cp .ssh/id_rsa.pub .ssh/authorized_keys

2)slave免密:

a. 在namenode上生成公钥、私钥ssh-keygen -t rsa

b. 将namenode的公钥拷贝到slave1/slave2/slave3 

 ssh-copy-id slave1/ssh-copy-id slave2/ssh-copy-id slave3

 过程出现是否连接以及输入密码


10.上传JDK、Hadoop安装软件


11.解压JDK、Hadoop安装软件,配置环境变量


12.Hadoop配置:

    1):hadoop-env.sh(JAVA_HOME)

    2):core-site.xml 添加

        <!--指定hadoop使用HDFS文件系统作为默认的文件系统-->

        <property>

        <name>fs.defaultFS</name>

        <value>hdfs://master:9000</value>

        </property>

        <!--指定hadoop运行时产生的临时文件存放目录-->

        <property>

        <name>hadoop.tem.dir</name>

        </property>

3):hdfs-site.xml 添加

        <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>slave2:50090</value>

        </property>


4):slaves 添加datanode名

slave1

slave2

slave3

        

5):namenode格式化:在master主机上格式化操作

hdfs namenode -format


6):如果需要修改副本数量以及检测时间

        <property>

        <name>dfs.replication</name>

        <value>2</value>

        </property>

        <property>        

        <name>dfs.namenode.heartbeat.recheck-interval</name>

         <value>10000</value>

        </property>


7):单独开启或关闭一台

        hadoop-daemon.sh stop datanode

        hadoop-daemon.sh start datanode


以上是关于HDFS集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop集群 HDFS搭建

Hadoop集群搭建 HDFS

docker下,极速搭建spark集群(含hdfs集群)

【大数据】使用Docker搭建Hadoop集群

搭建HDFS集群

大数据笔记:HDFS集群搭建-HA模式概念