/*** 经过正则获取该目录下知足条件的全部目录

*@paramluceneFilePathRegular 正则目录,如/user/solrindex/正则表达式

*@return知足正则表达式的目录集合 list*/

public static ListfetchDirByRegularLinux(String luceneFilePathRegular){

List list=new ArrayList<>();//分割获取主目录

int len= luceneFilePathRegular.lastIndexOf(EtlConstants.LINUX_ROUTE_SEGMENT)+1;

String mainDir=luceneFilePathRegular.substring(0, len);

String regular=luceneFilePathRegular.substring(len,luceneFilePathRegular.length());

File dir=newFile(mainDir);if(dir.exists() &&dir.isDirectory()){

File [] arr=dir.listFiles();for(File file : arr) {if (file.exists() &&file.isDirectory()) {

String fileName=file.getName();if(matchStr(fileName, regular)) {

list.add(file.getAbsolutePath()+SolrUtil.INDEX_DIR_SUFFIX);

}

}

}

}if(list.size()>0){

LOGGER.info("经过正则匹配到的Solr目录有:");for(String s : list) {

LOGGER.info(s);

}

}else{

LOGGER.error("路径{}下,不存在知足正则:{}条件的目录", dir, regular);

}returnlist;

}/*** 经过正则获取该目录下知足条件的全部目录

*@paramluceneFilePathRegular 正则目录,如hdfs:/user/solrindex/正则表达式

*@paramnameNodeConfigPath //获取name配置信息目录

*@return知足正则表达式的目录集合 list*/

public static ListfetchDirByRegularHdfs(String luceneFilePathRegular,String nameNodeConfigPath){

List list=new ArrayList<>();

FileSystem fs=HdfsUtil.getFileSystem(nameNodeConfigPath);

String prefixHdfs=luceneFilePathRegular.split(":")[0];

String hdfsPath=luceneFilePathRegular.split(":")[1];//分割获取主目录

int len= hdfsPath.lastIndexOf(EtlConstants.LINUX_ROUTE_SEGMENT)+1;

String mainDir=hdfsPath.substring(0, len);

String regular=hdfsPath.substring(len, hdfsPath.length());try{

FileStatus[] fileStatuses= fs.globStatus(new Path(mainDir+"*"));for(FileStatus fileStatus : fileStatuses){if (fileStatus.isDirectory() &&matchStr(fileStatus.getPath().getName(), regular)) {

list.add(prefixHdfs+":"+mainDir+fileStatus.getPath().getName()+SolrUtil.INDEX_DIR_SUFFIX);

}

}

}catch(IOException e) {

LOGGER.error("获取hdfs目录信息异常,路径:{},异常信息:{}",luceneFilePathRegular,e.getMessage());

e.printStackTrace();

}if(list.size()>0){

LOGGER.info("经过正则匹配到的Solr目录有:");for(String s : list) {

LOGGER.info(s);

}

}else{

LOGGER.error("路径{}下,不存在知足正则:{}条件的目录", luceneFilePathRegular, regular);

}returnlist;

}/*** @Method Description:按正则表示是匹配字符串

*@paramstr

*@paramregular

*@return*@author: libingjie*/

public staticBoolean matchStr(String str, String regular) {

Pattern pattern=Pattern.compile(regular);

Matcher matcher=pattern.matcher(str);returnmatcher.matches();

}

hdfs路径 linux路径,四、记录1----获取hdfs上FileSystem的方法 记录2:正则匹配路径:linux、hdfs...相关推荐

  1. wget 自己服务器上的文件,关于linux:wget可以用于获取服务器上的所有文件吗?...

    可以用来获取服务器上的所有文件.如果这是在我的网站foo.com上使用Django框架的目录结构,请假设 如果这是目录结构 /web/project1 /web/project2 /web/proje ...

  2. linux c curl 乱码,curl获取结果乱码的解决方法之CURLOPT_ENCODING(curl/Post请求)

    对于SSH框架的选择 选择框架:SSH 对于Web开发来说,SSH框架可以提高开发效率,还可以方便需求的变更以及对后期维护方面更容易操作.SSH也是目前稍微流行的Web开发框架. 选择框架描述: 首先 ...

  3. Linux中通过v4l2框架获取摄像头的能力的方法

    v4l2(video for linux two)是Linux中内核提供给应用层访问音视频驱动的统一接口.v4l2中获取摄像头的能力的是通过ioctl函数的VIDIOC_QUERYCAP命令获取,并且 ...

  4. Linux中内联函数,Windows 7上的内联函数的doParallel问题(适用于Linux)

    我在 Windows 7和 Linux(SUSE Server 11(x86_64))上都使用R 3.0.1.以下示例代码在Windows上产生错误,但在Linux上不产生错误.列出的所有工具箱在两台 ...

  5. mac虚拟机linux性能测试,Veertu 1.0.4 – Mac上最轻便的虚拟机,可以运行Windows/Linux。...

    在Mac上运行 Windows / Linux Veertu简单.轻.安全的虚拟化软件设计的MAC. 与Veertu你可以运行你喜欢的窗口或Linux分布直接在OS X的系统管理框架Veertu供电和 ...

  6. linux开发板设置时间,开发板上修改时间方法

    之前使用开发板时发现每次开机后,系统的时间都恢复到初始状态1970年. 一. 先说一下时钟的概念,时钟包括硬件时钟和系统时钟,系统时钟就是linux系统显示的时间,用命令date可以显示当前系统时间: ...

  7. linux grep 正则匹配字符串,Linux grep与正则表达式详解

    grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,本文主要给大家分享Linux grep与正则表达式的相关知识,感兴趣的朋友一起看看吧,希望能帮助到大家. grep ...

  8. Linux修改IP之后远程连接不上的解决方法

    注意:此方法我只实验过CentOS7,没有试6,或者7以上 问题描述: 当修改过Centos的IP之后再远程连接,会出现如下问题 java.net.ConnectException: Connecti ...

  9. Linux下四款常见远程工具比较

    摘要:Linux远程可不像Windows下那么方便,主要是连接的速度.显示的画质不能令人满意(延迟.撕裂).本文只是说一下我用过的四款远程工具.Anydesk官网:https://anydesk.co ...

最新文章

  1. matlab图形用户界面设计简介
  2. 阿里某员工论坛炫耀:感谢公司让毕业不到两年的我年入百万
  3. go语言设计模式 - 建造者模式
  4. RHEL/CentOS下的VLAN设置
  5. Codeforces Round #232 Editorial Div2-B
  6. VS.net下编写makefile文件--NMAKE用法
  7. 90后招你惹你了?去你的佛系!
  8. 操作系统(十一)线程的概念和特点
  9. 在Windows 7 下使用Visual Studio 2010 编写自动申请管理员权限运行的程序
  10. kafka消费端慢慢延迟(网络带宽不足)
  11. Windows Mobile的一些网站和资源(由网友搜集 我整理了一下)
  12. 历史版本_新版本爆料第弹丨英雄练习新去处,荣耀历史秀出来!
  13. 如何启动php程序,如何第一次运行PHP程序?
  14. 红帽RHEL8和RHEL7有什么区别?
  15. SAP License:雾里看花系列——SAP顾问应该脱离”保姆”的角色
  16. RoboWare Studio安装教程
  17. 用SAS如何读取数据
  18. 某电商网站的数据库设计(6)——创建查询销售数据的视图
  19. Linux C编程一站式学习笔记2
  20. vscode私钥设置_VScode链接服务器并配置公钥-SSH Keys

热门文章

  1. 你的“大厂梦”不是梦,你离大厂仅差我这篇博客!!!【吐血推荐】
  2. Linux Shell 文本处理工具集锦
  3. 生产环境中,如何防止服务器秘钥被盗取?
  4. 【MyBatis】Mybatis实现分页效果
  5. Java多线程的上下文切换
  6. 世界上根本没有正确的选择
  7. hdu 4588 Count The Carries 南京邀请赛
  8. map,存储多个键值对的数据集合
  9. 报错:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This versio
  10. 简洁明了——STL容器库之set头文件常用函数集合