A. 怎么把 elasticsearch 里面的数据导入到 hadoop 里面
input {
file {
type => "log"
#stat_interval => "\t"
path
=> "启磨滑/home/hadoop/xinwang_XW351464_2110.log"
}
}
filter {
if
[path] =~ "xinwang_XW351464_2110" {
mutate { replace => { "type" =>
"apache_access" } }
grok {
match => { "message" =>
"%{COMBINEDAPACHELOG}" }
}
}
date {
match => [ "timestamp" ,
"dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch
{
#cluster => "logstash_ela"
#node_name=> "es_master"
host =>
"192.168.1.152"
index => "eslsg"
index_type => "type"
protocol
=> "http"
port => 9200
workers => 1
}
}
执行 ./logstash agent -v -f txtTes.conf 的时候出现:
Grok loading patterns from file
{:path=>"/home/hadoop/logstash-1.4.2/patterns/postgresql",
:level=>:info}
Grok loading patterns from file
{:path=>"/home/hadoop/logstash-1.4.2/patterns/mongodb",
:level=>:info}
Grok loading patterns from file
{:path=>"/home/hadoop/logstash-1.4.2/patterns/mcollective",
:level=>:info}
Grok loading patterns from file
{:path=>"/home/hadoop/logstash-1.4.2/patterns/redis",
:level=>:info}
Grok loading patterns from file
{:path=>"/home/hadoop/logstash-1.4.2/patterns/java",
:level=>:info}
Grok loading patterns from file
{:path=>"/home/hadoop/logstash-1.4.2/patterns/ruby",
:level=>:info}
Grok loading patterns from file
{:path=>"/home/hadoop/logstash-1.4.2/patterns/junos",
:level=>:info}
Match data
{:match=>{"message"=>"%{COMBINEDAPACHELOG}"}, :level=>:info}
Grok
compile {:field=>"message", :patterns=>悄腊["%{COMBINEDAPACHELOG}"],
:level=>:info}
Pipeline started {:level=>:info}
New Elasticsearch
output {:cluster=>nil, :host=>"192.168.1.152", :port=>9200,
:embedded=>false, :protocol=>"http", :level=>:info}
Automatic
template management enabled {:manage_template=>"true",
:level=>:info}
Using mapping template {:template=>"{ \"template\" :
\"logstash-*\", \"settings\" : { \"index.refresh_interval\" : \"5s\" },
\"mappings\" : { \"_default_\" : { \"_all\" : {\"enabled\" : true},
\"dynamic_templates\" : [ { \"string_fields\" : { \"match\" : \"*\",
\"match_mapping_type\" : \"string\", \"mapping\" : { \"type\" : \"string\",
\"游稿index\" : \"analyzed\", \"omit_norms\" : true, \"fields\" : { \"raw\" :
{\"type\": \"string\", \"index\" : \"not_analyzed\", \"ignore_above\" : 256} } }
} } ], \"properties\" : { \"@version\": { \"type\": \"string\", \"index\":
\"not_analyzed\" }, \"geoip\" : { \"type\" : \"object\", \"dynamic\": true,
\"path\": \"full\", \"properties\" : { \"location\" : { \"type\" : \"geo_point\"
} } } } } }}", :level=>:info}
B. 如何向 hadoop 导入数据
1.2 使用Hadoop shell命令导入和导出数据到HDFS
实验准备
实例需要用到的数据-weblog_entries.txt
在namenode创建2个文件夹用来存放实验用的数据
mkdir /home/data 1
mkdir /home/data_download1
将weblog_entries.txt上传到namenode里的/home/data文件夹(我使用SecureFXPortable.exe 工具)
注:以下命令都是在namenode节点运行的
实验过程
1.在HDFS中创建一个新的文件夹,用于保存weblog_entries.txt
hadoop fs -mkdir /data/weblogs1
2.将weblog_entries.txt文件从本地文件系统复制到HDFS刚创建的新文件夹下
cd /home/data1
hadoop fs -FromLocal weblog_entries.txt /data/weblogs1
3.列出HDFS上weblog_entries.txt文件的信息:
hadoop fs –ls /data/weblogs/weblog_entries.txt 1
4.将HDFS上的weblog_entries.txt文件复制到本地系统的当前文件夹下
cd /home/data_download1
hadoop fs -ToLocal /data/weblogs/weblog_entries.txt ./weblog_entries.txt 1
最后用 ls 命令检验下时候将weblog_entries.txt 下载到本地
C. 怎样把oracle中数据迁移到hadoop
大讲台hadoop 在线学习为你解答:通过使用MapRece的方式,使Hadoop可以直宴判接访问Oracle,并将相关的数据写入到HDFS文件当中。 从而陵祥和可以顺利地将Oracle中的数据迁移到Hadoop文件系统中尺盯。
D. 请教如何在hadoop获取数据
我们的一些应用程序中,常常避免不了要与数据库进行交互,而在我们的hadoop中,有时候也需要和数据库进行交互,比如说,数据分析的结果存入数据库,
或者是,读取数据库的信息写入HDFS上,不过直接使用MapRece操作数据库,这种情况在现实开发还是比较少,一般我们会采用Sqoop来进行数
据的迁入,迁出,使用Hive分析数据集,大多数情况下,直接使用Hadoop访问关系型数据库并中姿,可能培物产生比较大的数据访问压力,尤其是在数据库还是单机
的情况下,情况可能更加糟糕,在集群的模式下压力会相对少一些。
那么,今天散仙就来看下,如何直接使用Hadoop1.2.0的MR来读写操作数据库,hadoop的API提供了DBOutputFormat和
DBInputFormat这两个类,来进行与数据库交互,除此之外,我们还需要定义一个类似JAVA
Bean的实体类,来与数据库的每行记录进行对应,通常这个类要实现Writable和DBWritable接口,来重写里面的绝绝4个方法以对应获取每行记
E. 怎样通过web前端把数据传至hadoop里
hadoop跑在服务器上,属于后台。
web前端属于前台。
首先得把数据从前台传到后台,然后再从后台传入hadoop是这么个思路滑孙。
从前台传入后台,就是标准的web传值,表单也好信饥链ajax也好,然后后台用个struts的action啊或者servelt么得接收一下。
然后传入hadoop就好办了,写入文件么的都可肢嫌以,后台就简单了,不多说了。
F. hadoop把结果写进txt文件中
向hadoop文件系统hdfs写入数据
import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URI;import org.apache.commons.compress.utils.IOUtils;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.apache.hadoop.util.Progressable;public class FileCopyWithProgress
{ public static void main(String[] args) throws IOException
{
String localsrc = args[0];
String dst = args[1];
InputStream in = new BufferedInputStream(new FileInputStream(localsrc));
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(dst),conf);
try (OutputStream out = fs.create(new Path(dst),new Progressable(){ public void progress()
{
System.out.print(".");//用于显示文件复制进度
}
}))
{
IOUtils.(in, out);
}
}
}
G. 如何使用Hadoop读写数据库
可以啊,可以上传本地文本文件到HDFS,还有与数据库hbase与hive连接的接口
H. 如何将Lucene索引写入Hadoop2.x
将索引写在Hadoop2.x的HDFS上,写入2.x的Hadoop相对1.x的Hadoop来说要简单的
说了,因为默认solr(4.4之后的版本)里面自带的HDFSDirectory就是支持2.x的而不支持1.x的,使用明笑2.x的Hadoop平台,可
以直接把solr的corejar包拷贝到工程里面,即激友含可使用建索引,散仙,是在eclipse上使用eclipse插件来运行hadoop程序,具体要
用到的jar包,告悄除了需要用到hadoop2.2的所有jar包外,还需增加lucene和solr的部分jar包,截图如下,散仙本次使用的是
Lucene4.8.1的版本:
具体的代码如下:
package com.mapreceindex;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.Term;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.util.Version;
import org.apache.solr.store.hdfs.HdfsDirectory;
import org.wltea.analyzer.lucene.IKAnalyzer;
/**
*
* 将索引存储在Hadoop2.2的HDFS上
*
* @author qindongliang
* QQ技术交流群:
* 1号群: 324714439 如果满员了请加2号群
* 2号群: 206247899
*
*
* **/
public class MyIndex {
public static void createFile()throws Exception{
Configuration conf=new Configuration();
FileSystem fs=FileSystem.get(conf);
Path p =new Path("hdfs://192.168.46.32:9000/root/abc.txt");
fs.createNewFile(p);
//fs.create(p);
fs.close();//释放资源
System.out.println("创建文件成功.....");
}
public static void main(String[] args)throws Exception {
//createFile();
//long a=System.currentTimeMillis();
// add();
// long b=System.currentTimeMillis();
// System.out.println("耗时: "+(b-a)+"毫秒");
query("8");
//delete("3");//删除指定ID的数据
}
/***
* 得到HDFS的writer
*
* **/
public static IndexWriter getIndexWriter() throws Exception{
Analyzer analyzer=new IKAnalyzer(true);
IndexWriterConfig config=new IndexWriterConfig(Version.LUCENE_48, analyzer);
Configuration conf=new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.46.32:9000/");
//conf.set("maprece.framework.name", "yarn");
//conf.set("yarn.resourcemanager.address", "192.168.46.32:8032");
//Path p1 =new Path("hdfs://10.2.143.5:9090/root/myfile/my.txt");
//Path path=new Path("hdfs://10.2.143.5:9090/root/myfile");
Path path=new Path("hdfs://192.168.46.32:9000/qin/myindex");
//HdfsDirectory directory=new HdfsDirectory(path, conf);
HdfsDirectory directory=new HdfsDirectory(path, conf);
IndexWriter writer=new IndexWriter(directory, config);
return writer;
}
public static void add()throws Exception{
IndexWriter writer=getIndexWriter();
// Document doc=new Document();
// doc.add(new StringField("id", "3", Store.YES));
// doc.add(new StringField("name", "lucene是一款非常优秀的全文检索框架", Store.YES));
// doc.add(new TextField("content", "我们的工资都不高", Store.YES));
// Document doc2=new Document();
// doc2.add(new StringField("id", "4", Store.YES));
// doc2.add(new StringField("name", "今天天气不错呀", Store.YES));
// doc2.add(new TextField("content", "钱存储在银行靠谱吗", Store.YES));
//
// Document doc3=new Document();
// doc3.add(new StringField("id", "5", Store.YES));
// doc3.add(new StringField("name", "没有根的野草,飘忽的命途!", Store.YES));
// doc3.add(new TextField("content", "你工资多少呀!", Store.YES));
// writer.addDocument(doc);
// writer.addDocument(doc2);
// writer.addDocument(doc3);
for(int i=6;i<10000;i++){
Document doc=new Document();
doc.add(new StringField("id", i+"", Store.YES));
doc.add(new StringField("name", "lucene是一款非常优秀的全文检索框架"+i, Store.YES));
doc.add(new TextField("content", "今天发工资了吗"+i, Store.YES));
writer.addDocument(doc);
if(i%1000==0){
writer.commit();
}
}
//writer.forceMerge(1);
writer.commit();
System.out.println("索引3条数据添加成功!");
writer.close();
}
/***
* 添加索引
*
* **/
public static void add(Document d)throws Exception{
IndexWriter writer=getIndexWriter();
writer.addDocument(d);
writer.forceMerge(1);
writer.commit();
System.out.println("索引10000条数据添加成功!");
writer.close();
}
/**
* 根据指定ID
* 删除HDFS上的一些数据
*
*
* **/
public static void delete(String id)throws Exception{
IndexWriter writer=getIndexWriter();
writer.deleteDocuments(new Term("id", id));//删除指定ID的数据
writer.forceMerge(1);//清除已经删除的索引空间
writer.commit();//提交变化
System.out.println("id为"+id+"的数据已经删除成功.........");
}
public static void query(String queryTerm)throws Exception{
System.out.println("本次检索内容: "+queryTerm);
Configuration conf=new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.46.32:9000/");
//Path p1 =new Path("hdfs://10.2.143.5:9090/root/myfile/my.txt");
// Path path=new Path("hdfs://192.168.75.130:9000/root/index");
Path path=new Path("hdfs://192.168.46.32:9000/qin/myindex");
Directory directory=new HdfsDirectory(path, conf);
IndexReader reader=DirectoryReader.open(directory);
System.out.println("总数据量: "+reader.numDocs());
long a=System.currentTimeMillis();
IndexSearcher searcher=new IndexSearcher(reader);
QueryParser parse=new QueryParser(Version.LUCENE_48, "content", new IKAnalyzer(true));
Query query=parse.parse(queryTerm);
TopDocs docs=searcher.search(query, 100);
System.out.println("本次命中结果: "+docs.totalHits+" 条" );
for(ScoreDoc sc:docs.scoreDocs){
System.out.println("评分: "+sc.score+" id : "+searcher.doc(sc.doc).get("id")+" name: "+searcher.doc(sc.doc).get("name")+" 字段内容: "+searcher.doc(sc.doc).get("content"));
}
long b=System.currentTimeMillis();
System.out.println("第一次耗时:"+(b-a)+" 毫秒");
// System.out.println("============================================");
// long c=System.currentTimeMillis();
// query=parse.parse(queryTerm);
//
// docs=searcher.search(query, 100);
// System.out.println("本次命中结果: "+docs.totalHits+" 条" );
// for(ScoreDoc sc:docs.scoreDocs){
//
// System.out.println("评分: "+sc.score+" id : "+searcher.doc(sc.doc).get("id")+" name: "+searcher.doc(sc.doc).get("name")+" 字段内容: "+searcher.doc(sc.doc).get("content"));
//
// }
// long d=System.currentTimeMillis();
// System.out.println("第二次耗时:"+(d-c)+" 毫秒");
reader.close();
directory.close();
System.out.println("检索完毕...............");
}
}
使用IK的分词器,建立索引完毕后,在HDFS上的索引如下截图:
检索数据时,第一次检索往往比较慢,第一次之后因为有了Block Cache,所以第二次,检索的速度非常快,当然这也跟你机器的配置有关系:
本次检索内容: 8
WARN - NativeCodeLoader.<clinit>(62) | Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
总数据量: 9994
本次命中结果: 1 条
评分: 4.7582965 id : 8 name: lucene是一款非常优秀的全文检索框架8 字段内容: 今天发工资了吗8
第一次耗时:261 毫秒
============================================
本次命中结果: 1 条
评分: 4.7582965 id : 8 name: lucene是一款非常优秀的全文检索框架8 字段内容: 今天发工资了吗8
第二次耗时:6 毫秒
INFO - HdfsDirectory.close(97) | Closing hdfs directory hdfs://192.168.46.32:9000/qin/myindex
检索完毕...............
I. 如何向 hadoop 导入数据
1.2 使用Hadoop shell命令导入和导出数据到HDFS
实验准备
实例需要用到的数据-weblog_entries.txt
在namenode创建2个文件夹用来存放实验用的数据
mkdir /home/data 1
mkdir /home/data_download1
将肆搭weblog_entries.txt上传到namenode里的/home/data文件夹(我使用SecureFXPortable.exe 工具)
注:以下命令都是在namenode节点运行的
实验过程
1.在HDFS中创建一个新的文件夹,用于保存weblog_entries.txt
hadoop fs -mkdir /data/weblogs1
2.将weblog_entries.txt文件从本地文件系统复制到HDFS刚创建的新文件夹下
cd /home/data1
hadoop fs -FromLocal weblog_entries.txt /data/weblogs1
3.列出HDFS上weblog_entries.txt文件的信息:
hadoop fs –ls /data/weblogs/weblog_entries.txt 1
4.将HDFS上的weblog_entries.txt文件复制到本地系统的当前文件夹下
cd /home/data_download1
hadoop fs -ToLocal /data/weblogs/weblog_entries.txt ./weblog_entries.txt 1
最后用 ls 命令检验下时候将weblog_entries.txt 下载到本地
Oracle 11g数据导入到10g
一、在11g服务器上,使用expdp命令备份数据
11g 导出语句:EXPDP USERID='facial/facial@orcl as sysdba' schemas=facialdirectory=DATA_PUMP_DIR mpfile=test.dmp logfile=test.log version=10.2.0.1.0
二、在10g服务器上,使用impdp命令恢复数据
准备工作:1.建库2.建表空间3.建用户并授权4.将test.dmp拷贝到10g的dpmp目录下
--创建表空间
create tablespace TS_Facial datafile 'E:ORACLEPRODUCT10.2.0ORADATAORCLFacial.DBF' size 500M autoextend on next 50M;
--创建用户
create user Facial identified by Facial default tablespace TS_Facial;
--授权给用户
grant connect,resource,dba to Facial;
test.dmp 和 test.log 放在E:oracleproct10.2.0adminorcldpmp目录下
10g 导入语句:IMPDP USERID='facial/facial@orcl as sysdba' schemas=facialdirectory=DATA_PUMP_DIR mpfile=test.dmp logfile=test.log version=10.2.0.1.0
下载mongoDB(mongoDB下载地址),笔者使用的是mongoDB 2.0.4的linux 64-bit版本。
解压:tar xzf mongo.tgz
默认情况下,mongoDB将数据存储在/data/db目录下,但它不会自乎橡动创建该目录,所以我们需要手动创建它:
$ sudo mkdir -p /data/db/
$ sudo chown `id -u` /data/db
也可以使用--dbpath参数来指定别的数据库目录。
如果只是想在单机上测试一下mongoDB的话,非常简单,首先启动MongoDB server,
$ ./mongodb-xxxxxxx/bin/mongod
在另外一个终端,连接到我们启动的server:
$ ./mongodb-xxxxxxx/bin/mongo
> db.foo.save( { a : 1 } )
> db.foo.find()
在resources找到database节点连上去就可以,之后按照你的用户名和密码填好就可以,但是在之前要配置数据库。
打开SQL Server Management Studio,在对象资源管理器中,展开“SQL Server 实例”→“数据库”→“MySchool”节点,单击鼠标右键,选择“任务”→“导出数据”命令。出现导入和导出向导的欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框,如图
在“选择数据源”对话框中设置如下选项:
数据源:SQL Native Client 10.0。
服务器名称:DC。
身份验证:Windows身份验证。
数据库:MySchool。
单击“下一步”按钮,出现“选择目标”对话框,设置如下选项(如图所示):
目标:平面文件目标。
文件名:C:student.txt。
格式:带分隔符。
单击“下一步”按钮,出现“指定表复制或查询”对话框,如图所示。
在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮,出现“配置平面文件目标”对话框,如图所示。
设置源表或源视图为MySchool.dbo.student,单击“下一步”按钮。
在“保存并执行包”对话框中选中“立即执行”复选框,如图所示,然后单击“下一步”按钮。
在如图所示的对话框中单击“完成”按钮。
如图所示,当执行完后,单击“关闭”按钮。
8
在Windows资源管理器中打开C:student.txt文件,验证导出的结果。
工具/原料
sql2008
方法/步骤
登录sql2008数据库,其实其他版本的数据库也是一样的原理
使用windows账户登录,登录成功之后打开资源管理器窗口
在数据库上单击右键,选择【新建数据库】
在弹出的新建数据库窗口中,输入数据库名字【test】然后点击确定
数据库【test】新建完成,在数据库上单击右键,选择【任务】【导入数据】
弹出导入数据向导,选择下一步
数据源选择【Excel】,文件路径选择我们需要导入的文件
目标数据库选择我们刚才新建的【test】数据库,其他保存默认不变,一直单击【下一步】
勾选我们需要导入的Excel表,如图所示,然后单击下一步,完成
开始导入数据,如图所示,成功导入,点击【关闭】
这样我们就导入了Excel中的数据
1、右击新建连接 2、选择Oracle 3、将要填的数据都填好了,下拉框选sid,点测试,通过就ok了 4、狂点下一步,最后完成。 注:无需安装oracle客户端。只有这个dbeaver就可以,只是需要个驱动包这个不用说。不会加驱动可以追问
首先把excel文件放在work文件夹里,假设文件名为a.xls。
然后在matlab命令窗口输入a=xlsread('a.xls');
此时,a矩阵即为exel里对应的数据
使用Matlab中的Excel Link就可以了。
如果使用Excel 2003版本,操作如下:
1 打开Excel。
2 在菜单栏中选择工具→加载项→浏览。
3 在Matlab的安装目录下打开toolboxexlink文件夹,选择EXCLLINK.XLA,点击确认。
4 自动回到加载项对话框后,确保对话框中有“Excel
Link”,选中后点击确认按钮即可,菜单栏中自动添加了Matlab加载项。
5 使用其中的putmatrix,既可以将数据导入到Matlab中。
如果使用Excel 2007版本,操作如下:
1 打开Excel。
2 点击左上的office按钮→Excel选项→转到→加载项→浏览。
3 在Matlab的安装目录下打开toolboxexlink文件夹,选择EXCLLINK.XLA,点击确认。
4 自动回到加载项对话框后,确保对话框中有“ExcelLink”,选中后点击确认按钮即可,菜单栏中自动添加了Matlab加载项。
5 使用其中的putmatrix,既可以将数据导入到Matlab中。
J. csv数据导入Hadoop中的HDFS
作者 : lly
本文介绍通过使用Hadoop命令的方式将csv数据导入进入HDFS中
具体的环境准备及搭建流程可参考以下文章,本文不再做赘述
基础环境准备:https://blog.csdn.net/supermapsupport/article/details/91443032
Hadoop集群搭建:https://blog.csdn.net/supermapsupport/article/details/91972499
未注册到 iServer的 csv 数据进行分布式分析服务,则需确保在 csv 存放目录下有与其对应的 .meta 文件,该.meta文件包含 csv 数据文件的元信息,所以我们将两个数据一起拷入。以示范数据 newyork_taxi_2013-01_14k.csv 为例,.meta 文件内容为:
"FieldInfos": [
{
"name": "col0",
"type": "WTEXT"
} ,
{
"name": "col1",
"type": "WTEXT"
} ,
{
备蔽 "name": "col2",
"type": "WTEXT"
} ,
{
"name": "col3",
"type": "INT32"
} ,
{
"name": "col4",
"type": "WTEXT"
} ,
{
源滚郑 "name": "col5",
"type": "WTEXT"
} ,
{
"name": "col6",
"type": "WTEXT"
} ,
{
"name": "col7",
"type": "INT32"
} ,
{
"name": "col8",
"type": "INT32"
} ,
{
"name": "col9",
"type": "DOUBLE"
} ,
{
"name": "X",
"type": "DOUBLE"
} ,
{
"name": "Y",
"type": "DOUBLE"
} ,
{
"name": "col12",
"type": "DOUBLE"
} ,
{
雹颂 "name": "col13",
"type": "DOUBLE"
}
] ,
"GeometryType": "POINT",
"HasHeader": false,
"StorageType": "XYColumn"
}
1.首先将数据放到opt目录下
2.将示例数据导入到 hdfs 中,启动 hadoop,在 hadoop-2.7.7/bin 中执行
. /hadoop fs -mkdir /input #创建/input 目录
. /hdfs dfs -put /opt / newyork_taxi_2013-01_14k.csv /input/ #将 taxi 数据导入到/input 目录中
. /hdfs dfs -put /opt / newyork_taxi_2013-01_14k.meta /input/
3.导入完成后,可以使用如下命令查看
. /hadoop fs -ls /input
4.输出结果如下