搭建HDFS集群的客户端并利用eclipse控制HDFS

HDFS集群为什么要搭建客户端?
  • 因为我们不建议将某个DataNode作为客户端对数据进行操作。这种操作叫做集群内操作。集群内操作的缺点是,第一份数据总会存储在当前节点上,这样当前节点会存的数据多,出现数据倾斜问题。对于存储框架来说,有的节点存的多,有的节点存的少。第一个磁盘IO会高,久而久之导致第一台磁盘性能与其他有差异。
  • 如果每一次上传文件都是选择某一台datanode作为客户端,就会导致节点上的磁盘以及网络IO负载超过其他节点,久而久之节点的磁盘及网卡性能远远低于其他节点,从而导致数据倾斜问题,有可能有数据丢失问题,导致集群其他额外的磁盘IO和网络IO。
  • 数据倾斜也可能导致计算倾斜,出现计算时间长,效率低的问题,出现木桶效应。所以我们一般选择集群外操作,也就是配置集群的客户端。
如何配置集群客户端?

1、找一台新的虚拟机、服务器,这台服务器必须能与集群通信,必须配置成功Java JDK

ping node1
ping node2
ping node3
ping node4

2、将配置好的安装包原封不动的拷贝到新的服务器上
3、配置环境变量方便操作HDFS
4、在客户端正常操作HDFS集群就可以了

使用eclipse控制HDFS填坑
在本机下配置HADOOP_HOME

1.下载winutils的windows版本

GitHub上,有人提供了winutils的windows的版本,项目地址是:https://github.com/srccodes/hadoop-common-2.2.0-bin
  直接下载此项目的zip包,下载后是文件名是hadoop-common-2.2.0-bin-master.zip,随便解压到一个目录

2.配置环境变量

增加用户变量HADOOP_HOME,值是下载的zip包解压的目录,然后在系统变量path里增加$HADOOP_HOME\bin 即可。

操作权限问题

可以读,不可以删除修改
在系统环境变量加上环境变量HADOOP_USER_NAME值为虚拟机的用户名

hdfs依赖的jar包导入到工程中,tomcat启动不起来了

原因:jar包冲突
解决方法:整理精简jar包

Permission denied错误

报错如下
在这里插入图片描述
出现此错误是权限问题。需要修改虚拟机每个节点里的hdfs-site.xml配置文件。加入如下配置:

<property>    
	<name>dfs.permissions</name>
	<value>false</value>
</property>

成功解决此问题。

HDFS的联邦机制

高可用的集群:解决NN单点故障问题
如果经常存小文件:内存占用量过大
可以使用联邦机制来解决
两个NN元数据相互隔离但是DN共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值