`
wbj0110
  • 浏览: 1613123 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Hive – 基于HADOOP的数据仓库

阅读更多

wget http://mirror.bit.edu.cn/apache/hive/hive-0.11.0/hive-0.11.0-bin.tar.gz

tar -xzvf hive-0.11.0-bin.tar.gz

cd hive-0.11.0-bin

sudo vi /etc/profile

增加:

export HIVE_HOME=/home/ysc/hive-0.10.0-bin

export PATH=$PATH:$HIVE_HOME/bin

       source /etc/profile

hadoop fs -mkdir       /tmp

hadoop fs -mkdir       /user/hive/warehouse

hadoop fs -chmod g+w   /tmp

hadoop fs -chmod g+w   /user/hive/warehouse

cp conf/hive-log4j.properties.template conf/hive-log4j.properties

如使用local模式:SET mapred.job.tracker=local;

使用HADOOP集群(默认):SET mapred.job.tracker=host001:9001;

       本地使用hive服务:

       hive(如出现错误:Missing Hive Builtins Jar:/home/ysc/hive-0.11.0-bin/lib/hive-builtins-*.jar,则需要重启sudo reboot)

       命令行执行HiveQL命令:创建表、准备文本数据、导入、查询

创建hive表:

create table demo (key int, value string) row format delimited fields terminated by '=' stored as textfile;

加载数据到demo 表:

load data local inpath '/home/ysc/hive-0.11.0-bin/data.txt' into table demo;

查询:

select * from demo;

select * from demo where key>=100 and key<=120;

select *,count(*) as fre from demo group by value order by fre desc;

    配置Metastore使用MySQL

       sudo apt-get install mysql-server mysql-client

       GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

sudo vi /etc/mysql/my.cnf

       注释bind-address           = 127.0.0.1

sudo service mysql restart

       mysql -uroot -pysc

       vi conf/hive-site.xml

       内容为:

<?xmlversion="1.0"?>

<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

<configuration>

       <!--使用mysql-->

       <property>

         <name>javax.jdo.option.ConnectionURL</name>     

<value>jdbc:mysql://host001:3306/hive?createDatabaseIfNotExist=true</value>

       </property>

       <property>

         <name>javax.jdo.option.ConnectionDriverName</name>

         <value>com.mysql.jdbc.Driver</value>

       </property>

       <property>

         <name>javax.jdo.option.ConnectionUserName</name>

         <value>root</value>

       </property>

       <property>

         <name>javax.jdo.option.ConnectionPassword</name>

         <value>ysc</value>

       </property>

       <!--使用hwi-->

       <property>

         <name>hive.hwi.listen.host</name>

         <value>0.0.0.0</value>

       </property>

       <property>

         <name>hive.hwi.listen.port</name>

         <value>9999</value>

       </property>

       <property>

         <name>hive.hwi.war.file</name>

         <value>lib/hive-hwi-0.11.0.war</value>

       </property>

       <!--使用metastore-->

       <property>

         <name>hive.metastore.uris</name>

         <value>thrift://host001:9083</value>

       </property>

</configuration>

       mysql-connector-java-5.1.18.jar放置到hive-0.10.0-bin/lib目录

   启动独立Metastore服务

       hive --service metastore  &

    启动独立Hive server服务

       hive --service hiveserver &

       远程使用hive服务

hive -h host001 -p 10000

   启动Hive Web Interface(HWI)服务

       hive --service hwi &

       http://host001:9999/hwi/

   Hive JDBC编程

       hadoop-core-1.1.2.jar以及HIVE_HOME/lib/*.jar加入构建路径

  publicstaticvoid main(String[] args) throws Exception {

      Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");

      Connection con = DriverManager.getConnection("jdbc:hive://host001:10000/default");

      String sql = "select * from person";

      PreparedStatement pst = con.prepareStatement(sql);

      ResultSet rs = pst.executeQuery();

      while(rs.next()){

         System.out.println(rs.getString(1)+" "+rs.getString(2));

      }

   }

    Hcatalog

sudo vi /etc/profile

增加:

export HADOOP_HOME=/home/ysc/hadoop-1.2.1

export HCAT_HOME=/home/ysc/hive-0.11.0-bin/hcatalog

export HCAT_PREFIX=$HCAT_HOME

export METASTORE_PORT=9083

export HCAT_LOG_DIR=/home/ysc/hive-0.11.0-bin/hcatalog/logs

export PATH=$PATH:$HCAT_HOME/bin:$HCAT_HOME/sbin

       source /etc/profile

mkdir /home/ysc/hive-0.11.0-bin/hcatalog/logs

chmod +x /home/ysc/hive-0.11.0-bin/hcatalog/bin/hcat

chmod +x /home/ysc/hive-0.11.0-bin/hcatalog/sbin/*.sh

hcat -e "create table test(id int, value string)"

hcat -e "drop table test"

hcat -e "show tables"

hcat -e "desc test"

hcat_server.sh start & (注意不要启动后面的命令:hive --service metastore  &)

hcat_server.sh stop

WebHCat(HCatalogREST API)

sudo vi /etc/profile

增加:

export HADOOP_CONF_DIR=$HADOOP_HOME/conf

export HADOOP_PREFIX=$HADOOP_HOME

export TEMPLETON_HOME=/home/ysc/hive-0.11.0-bin/hcatalog

       source /etc/profile

hadoop fs -put/home/ysc/hadoop-1.2.1/contrib/streaming/hadoop-streaming-1.2.1.jar /apps/templeton/hadoop-streaming-1.2.1.jar

hadoop  fs  -put  /home/ysc/pig-0.11.1.tar.gz  /apps/templeton/pig-0.11.1.tar.gz

hadoop  fs  -put  /home/ysc/hive-0.11.0-bin.tar.gz  /apps/templeton/hive-0.11.0-bin.tar.gz

hadoop fs -ls /apps/templeton

vi /home/ysc/hive-0.11.0-bin/hcatalog/etc/webhcat/webhcat-site.xml

输入:

<?xmlversion="1.0" encoding="UTF-8"?>

<configuration>

<property>

    <name>templeton.streaming.jar</name>

    <value>hdfs:///apps/templeton/hadoop-streaming-1.2.1.jar</value>

  </property>

  <property>

    <name>templeton.pig.archive</name>

    <value>hdfs:///apps/templeton/pig-0.11.1.tar.gz</value>

  </property>

  <property>

    <name>templeton.pig.path</name>

    <value>pig-0.11.1.tar.gz/pig-0.11.1/bin/pig</value>

  </property>

  <property>

    <name>templeton.hive.archive</name>

    <value>hdfs:///apps/templeton/hive-0.11.0-bin.tar.gz</value>

  </property>

  <property>

    <name>templeton.hive.path</name>

    <value>hive-0.11.0-bin.tar.gz/hive-0.11.0-bin/hive</value>

  </property>

  <property>

   <name>templeton.jar</name>    
 <value>${env.TEMPLETON_HOME}/share/webhcat/svr/webhcat-0.11.0.jar</value>

  </property>

  <property>

   <name>templeton.hive.properties</name>    
 <value>hive.metastore.local=false,hive.metastore.uris=thrift://host001:9083,hive.metastore.sasl.enabled=false</value>

  </property>

</configuration>

webhcat_server.sh start &

webhcat_server.sh stop

sudo apt-get install curl

curl -i 'http://host001:50111/templeton/v1/status'

curl -i 'http://host001:50111/templeton/v1/ddl/database/default/table/test?user.name=root'

curl -i -d user.name=root \

       -d rename=test2 \

      'http://localhost:50111/templeton/v1/ddl/database/default/table/test'

Hive命令:

       hive -e 'select * from demo'

 

hive -e 'select * from demo where key < 5'


HiveServer2

 

sudo vi /etc/profile

增加:

export HIVE_SERVER2_THRIFT_BIND_HOST=host001

export HIVE_SERVER2_THRIFT_PORT=10002

       source /etc/profile

       hadoop fs -chmod -R 777 /tmp

启动服务:hiveserver2 &或者hive --service hiveserver2 &

连接服务:beeline

beeline>!connect jdbc:hive2://host001:10002 root ysc org.apache.hive.jdbc.HiveDriver

0: jdbc:hive2://host001:10002>show tables;

0: jdbc:hive2://host001:10002>select * from students;

       当然也可以用JAVA借助JDBC调用

 

 

分享到:
评论

相关推荐

    大数据系列4:Hive – 基于HADOOP的数据仓库

    在“大数据系列4:Hive – 基于HADOOP的数据仓库”这篇博文中,可能详细介绍了如何设置和使用Hive,包括安装配置、创建表、导入数据、执行查询、优化性能等方面。通过学习这些内容,读者能够更好地理解Hive的工作...

    基于Hadoop的数据仓库Hive基础知识

    Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理、特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,可通过HQL语句实现简单的MR统计,Hive将HQL语句转换成MR任务进行...

    大数据:hive1

    2:hive是基于hadoop的数据仓库工具,可以将结构化的数据文件映谢成一张表,并提供类SQL查询功能。 本质:将Hql转化成mpareduce  其基本执行过程:  数据仓库通过sql进行统计分析——–&gt;将SQL语言中常用的操作...

    Hive操作笔记(呕心沥血制作)

    Hive 是一个基于 Hadoop 的数据仓库工具,它允许用户使用类似 SQL 的查询语言(HQL)来处理存储在 Hadoop 分布式文件系统(HDFS)上的大规模数据集。Hive 提供了数据汇总、分析和查询功能,非常适合批处理分析任务。...

    hive安装.pdf

    Apache Hive 是一个基于 Hadoop 的数据仓库工具,它允许用户使用 SQL 类似的语言(称为 HiveQL)查询和管理存储在 Hadoop 分布式文件系统(HDFS)中的大规模数据集。Hive 提供了数据整理、简单SQL 查询、基本的事务...

    基于大数据集群的hive搭建

    Hive 是一个基于 Hadoop 的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,方便数据分析师进行大数据处理。本文将详细介绍如何在大数据集群上搭建 Hive,主要包括三种运行...

    开发hive JDBC

    Hive是基于Hadoop的数据仓库工具,它允许用户使用SQL语法(称为HQL)来处理和查询分布式存储的大数据集。而JDBC(Java Database Connectivity)是Java语言中用于与数据库交互的一种标准接口,它提供了连接、查询、...

    HIVE HA高可用性及详细使用

    Hive是一种基于Hadoop的数据仓库工具,它能够将结构化的数据文件映射为数据库表,并通过提供类似SQL的查询语言来实现对这些数据的查询操作。这使得不熟悉MapReduce的用户也能方便地进行数据查询。 #### 安装与配置 ...

    Hadoop与大数据技术大会2012PPT

    这个压缩包包含了多个PDF文件,涵盖了Hadoop的高可用性、安全性、虚拟化、英特尔的Hadoop实现、HBase的协处理器、Hive在腾讯的分布式数据仓库应用、Namenode的高可用性和性能诊断,以及Tair和HBase的高级特性。...

    分析答案2

    2. **Hive**:Hive是基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。在这个案例中,我们首先创建了一个名为`db_phone_raw_2`的数据库,然后创建了多个表用于存储不同...

    参考答案1

    本场景涉及的是一个基于Hadoop和Hive的数据处理流程,主要目的是通过Hive对手机销售数据进行清洗、统计和分析,从而获取不同维度(如品牌、颜色、尺寸)的销售量。下面将详细讲解这个过程中的关键知识点。 首先,...

    分析答案1

    Hive是一个基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。在这个例子中,我们创建了四个数据库表: 1. 原始数据表`tbl_phone_data_3`,用于存储原始手机硬件配置信息...

    Apache TEZ部署手册

    Apache TEZ 是一个基于 Hadoop 的数据处理引擎,它提供了高性能、可扩展的数据处理能力。Apache TEZ 部署手册是一份详细的指导手册,涵盖了 Apache TEZ 的部署、配置和使用。 一、准备 在部署 Apache TEZ 之前,...

    大数据环境集群环境搭建.pdf

    本篇主要介绍如何在大数据环境下搭建一个基于Hadoop、Spark、Hive、ZooKeeper、Kafka和Flume的集群环境。以下是详细的步骤和相关知识点: 1. **系统环境准备**: - 使用的操作系统是CentOS 6.5,这是一个广泛用于...

Global site tag (gtag.js) - Google Analytics