第二十七讲.动态设置相关参数(replication为2和blocksize为10字节)

视频:【美妙人生】Hadoop课程系列之HDFS–手把手教你精通HDFS

【美妙人生】Hadoop课程系列之HDFS–手把手教你精通HDFS

【视频笔记】


通过java.net.URL类访问写入HDFS数据
----------------------------------------------------------------

?? ?/**
?? ? * 通过java.net.URL类访问写入HDFS数据
?? ? * 结论:通过URL的方式不能实现对HDFS的写操作,抛java.net.UnknownServiceException: protocol doesn't support output
?? ? * @throws IOException
?? ? */
?? ?@Test
?? ?public void writeByURL() throws Exception {
?? ??? ?URL _url ?=new URL("hdfs://master1:9000/spaceQuota/hello.txt");
?? ??? ?URLConnection conn = _url.openConnection();
?? ??? ?OutputStream out = conn.getOutputStream();
?? ??? ?out.write("hello world".getBytes());
?? ??? ?out.close();
?? ?} ? ?

通过FileSystem API做write操作
----------------------------------------------------------------------------

? ?/**
?? ? * 通过FileSystem API做写操作
?? ? */
?? ?@Test
?? ?public void ?writeByAPI() throws IOException{
?? ??? ?Configuration conf = new Configuration();
?? ??? ?FileSystem fs ?=FileSystem.get(conf);
?? ??? ?Path file = new Path("/spaceQuota/hello.txt");
?? ??? ?FSDataOutputStream out = fs.create(file);
?? ??? ?out.write("hello world".getBytes());
?? ??? ?out.close();
?? ?}

通过FileSystem API做写操作,动态设置相关参数:replication为2和blocksize为10字节
-----------------------------------------------------------------------------------------------

 ?/**
?? ? * 通过FileSystem API做写操作,动态设置相关参数:replication和blocksize
?? ? * 有一些参数集群生效,例如:dfs.namenode.fs-limits.min-block-size=10
?? ? * 注:加载config信息的优先级:
?? ? * ? ? 代码级-->{classPath/***-site.xml}-->{HOADOOP_HOME/etc/haddop/***-site.xml}
?? ? */
?? ?@Test
?? ?public void writeByAPIForBlocksize() throws IOException{
?? ??? ?Configuration conf = new Configuration();
?? ??? ?conf.set("fs.defaultFS", "hdfs://master1:9000");
?? ??? ?conf.set("dfs.bytes-per-checksum", "10");
?? ??? ?FileSystem fs ?=FileSystem.get(conf);
?? ??? ?Path file = new Path("/spaceQuota/hello6666.txt");
?? ??? ?FSDataOutputStream out = fs.create(file, true, 4096,(short)2, 10);
?? ??? ?out.write("hello world".getBytes());
?? ??? ?out.close();
?? ?}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值