文档章节

hive数据迁移,cdh3u5的hive中数据迁移到cdh5.1的hive中

月下独酌100
 月下独酌100
发布于 2014/10/29 15:38
字数 422
阅读 74
收藏 0

hive数据迁移,cdh3u5的hive中数据迁移到cdh5.1的hive中,由于distcp不能使用,需要手动导出数据

on hadoop4

cd /tmp/test/people_payment_log

hadoop fs -get /data/warehouse/userdb.db/people_payment/hour=201309* .

hadoop fs -get /data/warehouse/userdb.db/people_payment/hour=201310* .

hadoop fs -get /data/warehouse/userdb.db/people_payment/hour=201311* .

hadoop fs -get /data/warehouse/userdb.db/people_payment/hour=201312* .

hadoop fs -get /data/warehouse/userdb.db/people_payment/hour=201401* .

hadoop fs -get /data/warehouse/userdb.db/people_payment/hour=201402* .

hadoop fs -get /data/warehouse/userdb.db/people_payment/hour=201403* .


cd /tmp/test

tar -czf people_payment_log.tgz people_payment_log


压缩,copy到hdp7,/home/abc/cdh/people_payment,解压缩

on hdp7,scp -Cr hadoop4:/tmp/test/people_payment_log.tgz /home/abc/cdh/people_payment

cd /home/abc/cdh/people_payment;tar -xzf people_payment_log.tgz

将数据上传到cdh5集群的people_payment表中,shell内容如下:

base_dir=/home/abc/cdh/people_payment

data_dir=$base_dir/people_payment_log

ls $data_dir >$base_dir/hour.txt

cd $data_dir

 cat $base_dir/hour.txt |while read oneHour

do

    echo $oneHour

hadoop fs -put $oneHour /user/hive/warehouse/userdb.db/people_payment/

done


然后需要让hive metastore知道这些分区的存在,生成分区alert语句。

base_dir=/home/abc/cdh/people_payment

cd $base_dir 

echo "use userdb;">$base_dir/alert.txt

cat $base_dir/hour.txt |while read oneHour

do

    realy_hour=`echo $oneHour|awk -F '=' '{print $2}'`

echo "ALTER TABLE people_payment ADD PARTITION (hour = '$realy_hour');">>$base_dir/alert.txt 

done


alert.txt的内容类似

use userdb;

ALTER TABLE people_payment ADD PARTITION (hour = '2013090100');

ALTER TABLE people_payment ADD PARTITION (hour = '2013090101');


然后调用hive -f alert.txt集中进行alert partition。


直接有文件存在的话,可以用下面的方式导入hive

脚本内容如下:

base_dir=/home/abc/cdh/people_payment

data_dir=/data/login/data_login_raw

hive_db=userdb

table=user_login


 ls $data_dir/a.bc.d.201408*|awk -F '.' '{print $5}'>$base_dir/hour.txt

 cat $base_dir/hour.txt |while read oneHour

do

    echo $oneHour

    sql="use $hive_db;LOAD DATA LOCAL INPATH '$data_dir/a.bc.d.$oneHour'  OVERWRITE INTO table $table partition ( hour=$oneHour);"

    echo "===================================================$sql"

    /home/abc/cdh/hive/bin/hive -e "$sql"

done


最好是生成一个批量的LOAD DATA LOCAL INPATH。..语句

然后hive -f调用,避免了多次启动hive client.


© 著作权归作者所有

月下独酌100
粉丝 26
博文 220
码字总数 56475
作品 0
浦东
高级程序员
私信 提问
大数据迁移(简单案例)(41 )

大数据迁移: 所谓的大数据迁移就是把某个节点上的数据(或者几个节点上的数据)分别拷贝到不同数据节点上的过程. 就像我在的公司就是这样做的,在CDHhadoop的版本中,一个命令就能完成上面的大数...

肖鋭
2014/05/11
279
1
从 Hive 迁移到 Spark SQL 在有赞的实践

有赞数据平台从2017年上半年开始,逐步使用 SparkSQL 替代 Hive 执行离线任务,目前 SparkSQL 每天的运行作业数量5000个,占离线作业数目的55%,消耗的 cpu 资源占集群总资源的50%左右。本文...

Hive
03/20
0
0
hadoop2.7集群迁移namenode

我的hadoop集群是2.7.0的集群。 hadoop是机器不相关的,迁移namenode的话,可以按以下步骤迁移。 1、关闭所有hadoop集群、zookeeper、hive、hbase集群,设置hosts和ssh互信,调整服务器时间 ...

灵宝
2015/09/14
131
0
Hive 入门介绍

1 Hive是什么 Hive是构建在Hadoop之上的数据仓库平台; Hive是一个SQL解析引擎,它将SQL语句转译成MapReduce任务,并在Hadoop上执行; Hive表是HDFS的一个文件目录,一个表名对应一个目录名,...

林中漫步
2016/07/13
76
0
Hadoop(5)--hive

在Hadoop的存储处理方面提供了两种不同的机制,一种是之前介绍过的Hbase,另外一种就是Hive,有关于Hbase,它是一种nosql数据库的一种,是一种数据库,基于分布式的列式存储,适合海量数据的...

spark009
2018/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

将key=value转成对象形式

var params = {};testParan.split(',').forEach(item =>{ var tmpArr = item.split('='); Vue.set(params, tmpArr[0].trim(), tmpArr[1].trim());});Vue.set(params, 'sql', sql);......

沉迷代码我爱学习
12分钟前
1
0
什么是分立器件

  分立器件被广泛应用到消费电子、计算机及外设、网络通信,汽车电子、led显示屏等领域。   半导体产业中有两大分支:集成电路和分立器件。   集成电路   集成电路(integrated circ...

仙溪
23分钟前
1
0
kibana rpm安装

https://www.elastic.co/guide/en/kibana/6.2/rpm.html 下载对应的版本wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm 安装 rpm -ivh kibana-6.2.4-x86_64......

看的最远的地方
25分钟前
1
0
高防CDN相比较于高防服务器,为何更加稳定?

对于DDoS攻击,那些已经做过网站、平台的人应该知道,DDoS攻击是非常可怕的,因为这种攻击本质上不能防御,或者DDoS攻击只能被减轻,不能完全消除。DDoS,意思是“分布式拒绝服务”。它是一种...

云漫网络Ruan
26分钟前
3
0
线程SuspendThread() ResumeThread()的使用

SuspendThread():挂起线程 If the function succeeds, the return value is the thread's previous suspend count; otherwise, it is (DWORD) -1. ResumeThread():启动线程 If the functio......

rainbowcode
27分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部