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集群搭建的主要内容,如果未能解决你的问题,请参考以下文章