如何实现让用户在网页中上传下载文件到HDFS中?

如何实现让用户在网页中上传下载文件到HDFS中?,第1张

hadoop计算需要在hdfs文件系统上进行,文件上传到hdfs上通常有三种方法:a hadoop自带的dfs服务,put;b hadoop的API,Writer对象可以实现这一功能;c 调用OTL可执行程序,数据数据库直接进入hadoop

hadoop计算需要在hdfs文件系统上进行,因此每次计算之前必须把需要用到的文件(我们称为原始文件)都上传到hdfs上。文件上传到hdfs上通常有三种方法:

a hadoop自带的dfs服务,put;

b hadoop的API,Writer对象可以实现这一功能;

c 调用OTL可执行程序,数据从数据库直接进入hadoop

由于存在ETL层,因此第三种方案不予考虑

将a、b方案进行对比,如下:

1 空间:方案a在hdfs上占用空间同本地,因此假设只上传日志文件,则保存一个月日志文件将消耗掉约10T空间,如果加上这期间的各种维表、事实表,将占用大约25T空间

方案b经测试,压缩比大约为3~4:1,因此假设hdfs空间为100T,原来只能保存约4个月的数据,现在可以保存约1年

2 上传时间:方案a的上传时间经测试,200G数据上传约1小时

方案b的上传时间,程序不做任何优化,大约是以上的4~6倍,但存在一定程度提升速度的余地

3 运算时间:经过对200G数据,大约4亿条记录的测试,如果程序以IO *** 作为主,则压缩数据的计算可以提高大约50%的速度,但如果程序以内存 *** 作为主,则只能提高5%~10%的速度

4 其它:未压缩的数据还有一个好处是可以直接在hdfs上查看原始数据。压缩数据想看原始数据只能用程序把它导到本地,或者利用本地备份数据

压缩格式:按照hadoop api的介绍,压缩格式分两种:BLOCK和RECORD,其中RECORD是只对value进行压缩,一般采用BLOCK进行压缩。

对压缩文件进行计算,需要用SequenceFileInputFormat类来读入压缩文件,以下是计算程序的典型配置代码:

JobConf conf = new JobConf(getConf(), log.class)

conf.setJobName(”log”)

conf.setOutputKeyClass(Text.class)//set the map output key type

conf.setOutputValueClass(Text.class)//set the map output value type

conf.setMapperClass(MapClass.class)

//conf.setCombinerClass(Reduce.class)//set the combiner class ,if havenot, use Recuce class for default

conf.setReducerClass(Reduce.class)

conf.setInputFormat(SequenceFileInputFormat.class)//necessary if use compress

接下来的处理与非压缩格式的处理一样

如何向 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 -copyFromLocal 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 -copyToLocal /data/weblogs/weblog_entries.txt ./weblog_entries.txt 1

最后用 ls 命令检验下时候将weblog_entries.txt 下载到本地

如何向oracle 10g数据库导入数据

Oracle 11g数据导入到10g

一、在11g服务器上,使用expdp命令备份数据

11g 导出语句:EXPDP USERID='facial/facial@orcl as sysdba' schemas=facialdirectory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log version=10.2.0.1.0

二、在10g服务器上,使用impdp命令恢复数据

准备工作:1.建库2.建表空间3.建用户并授权4.将test.dmp拷贝到10g的dpdump目录下

--创建表空间

create tablespace TS_Facial datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\Facial.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:\oracle\product\10.2.0\admin\orcl\dpdump目录下

10g 导入语句:IMPDP USERID='facial/facial@orcl as sysdba' schemas=facialdirectory=DATA_PUMP_DIR dumpfile=test.dmp logfile=test.log version=10.2.0.1.0

如何向mongodb分片集群导入数据

下载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()

如何向clementine12.0中导入数据库数据

在resources找到database节点连上去就可以,之后按照你的用户名和密码填好就可以,但是在之前要配置数据库。

如何向sql server2008中导入数据库

打开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账户登录,登录成功之后打开资源管理器窗口

在数据库上单击右键,选择【新建数据库】

在d出的新建数据库窗口中,输入数据库名字【test】然后点击确定

数据库【test】新建完成,在数据库上单击右键,选择【任务】【导入数据】

d出导入数据向导,选择下一步

数据源选择【Excel】,文件路径选择我们需要导入的文件

目标数据库选择我们刚才新建的【test】数据库,其他保存默认不变,一直单击【下一步】

勾选我们需要导入的Excel表,如图所示,然后单击下一步,完成

开始导入数据,如图所示,成功导入,点击【关闭】

这样我们就导入了Excel中的数据

如何从linux向dbeaver导入数据

1、右击新建连接 2、选择Oracle 3、将要填的数据都填好了,下拉框选sid,点测试,通过就ok了 4、狂点下一步,最后完成。 注:无需安装oracle客户端。只有这个dbeaver就可以,只是需要个驱动包这个不用说。不会加驱动可以追问

如何从EXCEL向MATLAB导入数据

首先把excel文件放在work文件夹里,假设文件名为a.xls。

然后在matlab命令窗口输入a=xlsread('a.xls')

此时,a矩阵即为exel里对应的数据

使用Matlab中的Excel Link就可以了。

如果使用Excel 2003版本, *** 作如下:

1 打开Excel。

2 在菜单栏中选择工具→加载项→浏览。

3 在Matlab的安装目录下打开toolbox\exlink文件夹,选择EXCLLINK.XLA,点击确认。

4 自动回到加载项对话框后,确保对话框中有“Excel

Link”,选中后点击确认按钮即可,菜单栏中自动添加了Matlab加载项。

5 使用其中的putmatrix,既可以将数据导入到Matlab中。

如果使用Excel 2007版本, *** 作如下:

1 打开Excel。

2 点击左上的office按钮→Excel选项→转到→加载项→浏览。

3 在Matlab的安装目录下打开toolbox\exlink文件夹,选择EXCLLINK.XLA,点击确认。

4 自动回到加载项对话框后,确保对话框中有“ExcelLink”,选中后点击确认按钮即可,菜单栏中自动添加了Matlab加载项。

5 使用其中的putmatrix,既可以将数据导入到Matlab中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6686652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存