send方:
找到所要导出的文件,get下来,并scp到同网段的其它主机节点下,就是receive方的机器上,路径自定义即可。
data_loc> hadoop fs -get /apps/hive/warehouse/hehe.db/test_exchange_txt/*
>scp * root@test-mg02:/opt/hive-data
在hive中新建数据库hehe,执行hadoop fs -ls /apps/hive/warehouse/,会发现有个数据库hehe.db,是因为在安装hive客户端时,指定默认的数据库路径为/apps/hive/warehouse/,一般默认是/user/hive/warehouse/。
receive方:
1、元数据信息
hive中创建相同的元数据信息(表结构)。
查看send方的建表语句,用于在receive方建表:
show create table tname;
为了不混淆,可以新建数据库和表。
create database hehe;
create table test;
会在/user/hive/warehouse下出现hehe.db,对应 /user/hehe
2、文件
找到接收文件的目录,将所有文件put到hdfs上。
data_loc>hadoop fs -put ./* /user/hehe/
data_loc>hadoop fs -ls /user/hehe/
#可查看文件是否在
#接着将数据load到hive 表中:
load data inpath ‘/…’ into table test
补充:
如果本地现已有文件(txt),
首先在数据库中建相应的表,
再将文件导入到hive表中,
(导入文件,一步到位)
以下方式任选其一:
①hadoop fs -put /user/hive/warehouse/hehe.db/test_exchange_txt
②load data local ‘/apps/hehe/hivelib/testdata/test.txt’ into table test_exchange_txt;
3、hive验证
关联 文件 和 元数据 信息后hive就能够正常查出来导过来的数据;
select * from test;