文档章节

3.马士兵_hadoop入门

BeGit
 BeGit
发布于 2017/04/16 20:04
字数 766
阅读 44
收藏 0

1.存储模块(hadoop),资源调度模块(yarn),计算引擎(mapreduce)

2.hdfs,看成一个由很多机器组成的大硬盘。支持动态扩展,动态增减。配置core-site.xml;slave文件记录了管理那些datanode,namenode可以集中管理。

3.本次是用java程序访问hdf,360,百度网盘。

4.如果机器跑不了那么多,就用伪分布式结构。

5. jps,hdfs dfsadmin -report,可以查看集群的启动情况。

6.hadoop默认存的路径是/tmp,如果没有修改过的话,linux重启不定时的会清除这个目录。有可能造成不正常,所以要进行一定的修改。hdfs namenode -formate。start[stop]-dfs.sh。

7.用程序访问hdfs。 

a.URL.

b.获得内容的简单方法:

URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
        URL url = new URL("hdfs://192.168.56.100:9000/hello.txt");
        InputStream in = url.openStream();
        IOUtils.copyBytes(in, System.out, 1024, true);

c.创建写入过程可能有用户权限问题。是因为:vi hdfs-site.xml中配置了权限的检查,内容,关闭检查:

<property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
</property>修改后只要重启namenode即可,如果重启集群,那生产环境的代价就太大了。另外说一句,delete文件默认只是放入垃圾堆中。
代码示例,基本的核心代码原理基本的baidu网盘就实现了:

import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;


public class HelloHDFS {

    public static void main(String[] args) throws Exception {
        /*URL url = new URL("http://www.baidu.com");
        InputStream in = url.openStream();
        IOUtils.copyBytes(in, System.out, 1024, true);*/
        /*URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
        URL url = new URL("hdfs://192.168.56.100:9000/hello.txt");
        InputStream in = url.openStream();
        IOUtils.copyBytes(in, System.out, 1024, true);*/
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://192.168.56.100:9000");
        FileSystem fileSys = FileSystem.get(conf);
        //这里能执行很多常规增删改查功能
        
        boolean suc = fileSys.mkdirs(new Path("/gxl"));
        System.out.println(suc);
        
        suc = fileSys.exists(new Path("/gxl"));
        System.out.println(suc);
        
//        suc = fileSys.delete(new Path("/gxl"),true);
//        System.out.println(suc);
        
        suc = fileSys.exists(new Path("/gxl"));
        System.out.println(suc);
        
        //上传windows文件
        FSDataOutputStream out = fileSys.create(new Path("/test.data"), true);
        FileInputStream in = new FileInputStream("F:/BaiduNetdiskDownload/Xftp.exe");
//        IOUtils.copyBytes(in, out, 4096,true);
        
        byte[] buf = new byte[4096];
        int len = in.read(buf);
        while(len != -1){
            out.write(buf,0,len);
            len = in.read(buf);
        }
        in.close();
        out.close();
        
        //读信息
        FileStatus[] fstatus = fileSys.listStatus(new Path("/"));
        for(FileStatus status:fstatus){
            System.out.println(status.getPath());
            System.out.println(status.getPermission());
            System.out.println(status.getReplication());
        }
    }
}
8.其实java写hdfs还是比较简单的,只不过实际中用的很少,有了hive,pig后,mapreduce也很少了。

9.hdf默认用linux权限系统来控制,kerberos,可以控制权限系统。

10.大数据的组件主要hdfs,yarn(资源管理调用),mapreduce到此,真个hdfs基础整个结束。这是个入门,如果你的技术能力比较强的,你已经可以开始你的大数据之旅了。

11.大数据过后就是就是云计算了,hdfs就是云计算基础了,比如spark内存计算,storm流式计算。yarn,mapreduce后有了云计算基础,textflow后ai基础就有了。wecker数据挖掘基础就有了。

总结:

1.权限可以用kerberos.

2.secondarynamenoe倒是叫check point name比较贴切。

3.ha可以实现超大规模集群,一台namenode根本装不下用Federation。

这些完全可以自动锻炼自己能力来搞定。

越学东西越多,越学越谦虚。

© 著作权归作者所有

BeGit
粉丝 20
博文 93
码字总数 71312
作品 0
顺义
后端工程师
私信 提问
Java视频网盘分享

Java教程视频分享 1、JavaScript视频教程 链接: http://pan.baidu.com/s/1gd57FVH 密码: d9ei 2、JPA视频教程 链接: http://pan.baidu.com/s/1dDCx1fj 密码: fwwd 3、马士兵hibernate视频教程...

PXZ6603
2017/04/26
0
0
马士兵JAVA基础实录教程

本教程自从发布以来,已经被下载了2000多万次,创造了国内视频教程的记录。该教程是尚学堂老师上课时真实录制而成, 充分展现了讲师的风采,高超的技术、幽默的授课风格、深入浅出的分析。 ...

2846613430
2016/04/20
142
0
500 G JAVA视频网盘分享(Jeecg社区)

500 G JAVA视频网盘分享(Jeecg社区) [涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有] Jeecg社区秉承开源宗旨,分享社区Java架构学习视...

Jeecg
2015/11/13
1K
1
hadoop hive hbase 入门学习 (三)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// hadoop 自学系列 hado......

curiousby
2015/03/12
0
0
HBase伪分布式安装

文档转自:http://blog.panaihua.com/archives/92 一、概述 我的机器使用hadoop-2.7.2,hbase-1.1.3版本,系统为ubuntu14。 hadoop安装:上一篇文章 二、HBase的安装 下载地址:http://mirr...

kongjun
2016/03/02
548
0

没有更多内容

加载失败,请刷新页面

加载更多

EDI 电子数据交换全解指南

EDI(Electronic Data Interchange,电子数据交换)技术使得企业与企业(B2B)实现通信自动化,帮助交易伙伴和组织更快更好地完成更多工作,并消除了人工操作带来的错误。从零售商到制造商、物...

EDI知行软件
今天
3
0
CentOS7的LVM动态扩容

# 问题 CentOS7上面的磁盘空间有点紧张,需要扩容。 解决 查询当前磁盘状态 [root@xxx ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTfd0 2:0 1 4K ...

亚林瓜子
今天
5
0
Kafka 0.8 Producer (0.9以前版本适用)

Kafka旧版本producer由scala编写,0.9以后已经废除 示例代码如下: import kafka.producer.KeyedMessage;import kafka.javaapi.producer.Producer;import kafka.producer.ProducerConfig;......

实时计算
今天
5
0
Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
6
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部