hive查询hbase
1. 背景 2.hbase查询的确是不太方便,除了指定rowkey,或者通过指定startkey stopkey进行scan之外,没有更有效的查询方式 如果想通过列值过滤,只能全表扫描了 如果要搞什么group by或者order by(除非你的rowkey做了相应设计) 更是没法弄 在传统的mysql/or
1. 背景
2.hbase查询的确是不太方便,除了指定rowkey,或者通过指定startkey stopkey进行scan之外,没有更有效的查询方式 如果想通过列值过滤,只能全表扫描了 如果要搞什么group by或者order by(除非你的rowkey做了相应设计) 更是没法弄 在传统的mysql/oracle得心应手的查询在hbase上就是束手束脚
3.当然可以通过写hadoop job解决问题,但为了查询去写job,代价未免有点高 于是hive出现了
4.有两个方法可以集成hive和hbase
1.使用HBaseStorageHandler,这个会直接操作HBase,可能会对线上产生影响
2.将HBase定期导入到HDFS,再通过hive访问HDFS
下面将详述第二种方法
HDFS导入
1.使用datax将HBase表导入到HDFS上,比如/group/wireless-arctic/task/arctic_task
2.hive产生外部表,从而避免导入数据
CREATE EXTERNAL TABLE task_history (
biz_type string,
cid string,
content string,
ctime string,
gmt_create string,
hostName string,
item string,
mtime string,
otags string,
priority string,
retry string,
result string,
srcImages string,
src_url string,
status string,
summary string,
task_type string,
title string,
userId string,
userNick string,
utags string,
writer string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001'
LOCATION '/group/wireless-arctic/task';location是云梯文件的目录
3.测试
select cid,result from task_history limit 10;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Selecting distributed mode: Input Size (= 2578823293 = 2 gigabytes 411 megabytes 366 kilobytes 125 bytes) is larger than hive.exec.mode.local.auto.inputbytes.max (= 134217728 = 128 megabytes 0 kilobytes 0 bytes)
Starting Job = job_201311281255_6734353, Tracking URL = http://hdpjt2.alibaba-inc.com/jobdetails.jsp?jobid=job_201311281255_6734353
Kill Command = /home/hadoop/hadoop-current/bin/../bin/hadoop job -Dmapred.job.tracker=hdpjt:9001 -kill job_201311281255_6734353
Hadoop job information for Stage-1: number of mappers: 10; number of reducers: 0
2013-12-19 18:53:02,891 Stage-1 map = 0%, reduce = 0%
2013-12-19 18:53:11,017 Stage-1 map = 50%, reduce = 0%
2013-12-19 18:53:12,033 Stage-1 map = 90%, reduce = 0%
2013-12-19 18:53:19,394 Stage-1 map = 100%, reduce = 100%
Ended Job = job_201311281255_6734353
OK
200011928538 success
200011928538 success
200011909281 success
200011928474 success
200011909281 success
200011928474 success
110010569498 failure:userId:1782836127,contentId:110010569498 ImageFlow,call error and ret:1
110010523403 success
110010523921 success
110010524299 success
Time taken: 23.137 seconds = 23 seconds 137 milliseconds添加分区及自动化
1.完成了上面的步骤,你就可以查询数据了,但面临一个问题,数据更新怎么办?
一个比较通用的做法就是每天跑一个定时任务将HBase表dump到HDFS,即每天一个快照每天的快照可以存放在以日期命名的目录中,这样可以保存多份快照,出了问题也好追踪2.hive如何利用这每天的快照?
那就是hive分区
分区的本意是数据量大了切分数据,但目前我们并未如此使用,而是利用分区来区分快照删除之前的表
drop table task_history;产生一张分区表
CREATE EXTERNAL TABLE task_history (
biz_type string,
cid string,
content string,
ctime string,
gmt_create string,
hostName string,
item string,
mtime string,
otags string,
priority string,
retry string,
result string,
srcImages string,
src_url string,
status string,
summary string,
task_type string,
title string,
userId string,
userNick string,
utags string,
writer string
)
PARTITIONED BY (dt string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001'
LOCATION '/group/wireless-arctic/task';其实就是在之前的建表语句中加了一行PARTITIONED BY (dt string)
添加分区
ALTER TABLE task_history ADD PARTITION(dt='20131223') LOCATION '/group/wireless-arctic/task/20131223';3.如何自动化
通过工具比如datax或者其他导出工具将HBase表导出到HDFS,正如前面提到的每天一个目录(以日期命名)
将每天的数据目录挂载到hive分区
hive -e "ALTER TABLE task_history ADD PARTITION(dt=`date -d yesterday +%Y%m%d`) LOCATION '/group/wireless-arctic/task/`date -d yesterday +%Y%m%d`';"将前面2个步骤的脚本整合到crontab 中就可以做到自动化了
最后如何通过分区查询
select * from task_history where dt='20131223' limit 10;即加上分区查询条件dt='20131223'

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Téléchargez la dernière version de l'application de réservation de billets 12306. C'est un logiciel d'achat de billets de voyage dont tout le monde est très satisfait. Il est très pratique d'aller où vous voulez. Il existe de nombreuses sources de billets fournies dans le logiciel. -authentification par nom pour acheter des billets en ligne. Tous les utilisateurs Vous pouvez facilement acheter des billets de voyage et des billets d'avion et profiter de différentes réductions. Vous pouvez également commencer à réserver à l'avance pour récupérer des billets. Vous pouvez réserver des hôtels ou des transferts spéciaux en voiture. Grâce à lui, vous pouvez aller où vous voulez et acheter des billets en un seul clic. Voyager est plus simple et plus pratique, ce qui rend l'expérience de voyage de chacun. plus confortable. Désormais, l'éditeur le détaille en ligne. Offre à 12306 utilisateurs un moyen de consulter l'historique des achats de billets. 1. Ouvrez Railway 12306, cliquez sur Mon dans le coin inférieur droit, puis cliquez sur Ma commande. 2. Cliquez sur Payé sur la page de commande. 3. Sur la page payante

Comment vérifier mes diplômes universitaires sur Xuexin.com ? Vous pouvez vérifier vos diplômes universitaires sur Xuexin.com. De nombreux utilisateurs ne savent pas comment vérifier leurs diplômes universitaires sur Xuexin.com. Ensuite, l'éditeur vous propose un didacticiel graphique sur la façon de vérifier vos diplômes universitaires sur Xuexin.com. les utilisateurs viennent jeter un oeil ! Tutoriel d'utilisation de Xuexin.com : Comment vérifier vos diplômes universitaires sur Xuexin.com 1. Entrée Xuexin.com : https://www.chsi.com.cn/ 2. Requête sur le site Web : Étape 1 : Cliquez sur l'adresse Xuexin.com ci-dessus pour accéder à la page d'accueil Cliquez sur [Requête sur l'éducation] ; Étape 2 : Sur la dernière page Web, cliquez sur [Requête] comme indiqué par la flèche dans la figure ci-dessous. Étape 3 : Cliquez ensuite sur [Connexion au fichier de crédits académiques] sur la nouvelle page ; Étape 4 : Sur la page de connexion, saisissez les informations et cliquez sur [Connexion] ;

Le remplacement de l'arrière-plan PPT est une opération importante qui peut rapidement unifier le style visuel de la présentation. Vous pouvez rapidement remplacer l'arrière-plan de l'ensemble de votre présentation en modifiant le masque des diapositives ou en utilisant la fonction Formater l'arrière-plan. De plus, certaines versions PPT proposent également une fonction de remplacement par lots, qui peut facilement remplacer l'arrière-plan de toutes les diapositives. Lors du remplacement de l'arrière-plan, vous devez veiller à choisir un arrière-plan qui correspond au thème de la présentation et vous assurer que la clarté et la résolution de l'arrière-plan répondent aux exigences.

1. Ouvrez le logiciel Meitu Xiu Xiu, sélectionnez [Embellissement de l'image] et importez des photos depuis l'album. 2. Cliquez sur [Découpe] dans la barre d'outils inférieure et sélectionnez la fonction [Remplacement de l'arrière-plan]. 3. Dans l'option [Arrière-plan], sélectionnez la couleur d'arrière-plan souhaitée dans la zone de couleur unie ou téléchargez une image personnalisée. 4. Après avoir confirmé la sélection, cliquez sur [Enregistrer] pour terminer le changement de couleur d'arrière-plan.

MySQL et PL/SQL sont deux systèmes de gestion de bases de données différents, représentant respectivement les caractéristiques des bases de données relationnelles et des langages procéduraux. Cet article comparera les similitudes et les différences entre MySQL et PL/SQL, avec des exemples de code spécifiques à illustrer. MySQL est un système de gestion de bases de données relationnelles populaire qui utilise le langage de requête structuré (SQL) pour gérer et exploiter des bases de données. PL/SQL est un langage procédural unique à la base de données Oracle et est utilisé pour écrire des objets de base de données tels que des procédures stockées, des déclencheurs et des fonctions. même

Le langage Go est né chez Google pour résoudre les problèmes de complexité et de prise en charge insuffisante de la concurrence du C++. Son intention initiale est de créer un langage multiplateforme simple, facile à apprendre et efficace, sécurisé en mémoire, pour améliorer la productivité des programmeurs, construire des systèmes fiables et évolutifs et promouvoir le portage et le partage de code.

Si vous souhaitez vérifier la date d'activation à l'aide d'un téléphone mobile Apple, le meilleur moyen est de la vérifier via le numéro de série du téléphone mobile. Vous pouvez également la vérifier en visitant le site officiel d'Apple, en le connectant à un ordinateur et en en téléchargeant un troisième. -logiciel de fête pour le vérifier. Comment vérifier la date d'activation du téléphone mobile Apple Réponse : requête de numéro de série, requête sur le site officiel d'Apple, requête sur ordinateur, requête sur un logiciel tiers 1. La meilleure façon pour les utilisateurs est de connaître le numéro de série de leur téléphone mobile. le numéro de série en ouvrant Paramètres, Général, À propos de cette machine. 2. Grâce au numéro de série, vous pouvez non seulement connaître la date d'activation de votre téléphone mobile, mais également vérifier la version du téléphone mobile, l'origine du téléphone mobile, la date d'usine du téléphone mobile, etc. 3. Les utilisateurs visitent le site Web officiel d'Apple pour trouver une assistance technique, trouvent la colonne de service et de réparation en bas de la page et y vérifient les informations d'activation de l'iPhone. 4. Utilisateur

Titre : Comment utiliser Oracle pour demander si une table est verrouillée ? Dans la base de données Oracle, le verrouillage de table signifie que lorsqu'une transaction effectue une opération d'écriture sur la table, les autres transactions seront bloquées lorsqu'elles souhaitent effectuer des opérations d'écriture sur la table ou apporter des modifications structurelles à la table (telles que l'ajout de colonnes, la suppression de lignes). , etc.). Dans le processus de développement actuel, nous devons souvent nous demander si la table est verrouillée afin de mieux dépanner et traiter les problèmes associés. Cet article explique comment utiliser les instructions Oracle pour demander si une table est verrouillée et donne des exemples de code spécifiques. Pour vérifier si la table est verrouillée, nous
