我更喜欢Hadoop。我想在Hive上做一个项目。我有Hive的基本知识。但我想知道如何加载大表并在其上运行查询。
请分享任何项目的详细信息。
Apache Hive™数据仓库软件有助于查询和管理驻留在分布式存储中的大型数据集。 Hive提供了一种机制,用于将结构投影到此数据上,并使用类似SQL的语言HiveQL查询数据。
看看Apache HIVE website和best practices
看一下从java连接的Hive JDBC示例代码
更多HIVE教程链接
https://cwiki.apache.org/confluence/display/Hive/Tutorial
http://hortonworks.com/hadoop-tutorial/using-hive-data-analysis/
http://www.dezyre.com/hadoop-tutorial/hive-tutorial
加载数据的示例。
有多种方法可以将数据加载到Hive表中。用户可以创建指向HDFS中指定位置的外部表。在此特定用法中,用户可以使用HDFS put或copy命令将文件复制到指定位置,并使用所有相关行格式信息创建指向此位置的表。完成此操作后,用户可以转换数据并将其插入任何其他Hive表。
例如,如果文件/tmp/pv_2008-06-08.txt包含在2008-06-08上提供的逗号分隔的页面视图,并且需要将其加载到相应分区中的page_view表中,则以下命令序列可以达到此目的:
CREATE EXTERNAL TABLE page_view_stg(viewTime INT, userid BIGINT,
page_url STRING, referrer_url STRING,
ip STRING COMMENT 'IP Address of the User',
country STRING COMMENT 'country of origination')
COMMENT 'This is the staging page view table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '44' LINES TERMINATED BY '12'
STORED AS TEXTFILE
LOCATION '/user/data/staging/page_view';
hadoop dfs -put /tmp/pv_2008-06-08.txt /user/data/staging/page_view
FROM page_view_stg pvs
INSERT OVERWRITE TABLE page_view PARTITION(dt='2008-06-08', country='US')
SELECT pvs.viewTime, pvs.userid, pvs.page_url, pvs.referrer_url, null, null, pvs.ip
WHERE pvs.country = 'US';