Debian 上安装:
-
$sudoapt-getinstallhadoop-hive
redhat/centos 上安装:
-
$sudoyuminstallhadoop-hive
启动hive 控制台:
okay,可以使用hive 了 你可以参照hive 的wiki 里的介绍(很全面)玩一玩hive 的操作
http://wiki.apache.org/hadoop/Hive
玩了会儿了,该干正事了。
hive 默认带的是derby 数据库来存放创建的表信息(只存放表结构,内容放到hdfs里)
derby毕竟是嵌入式数据库,作正式应用不安全。幸好hive支持mysql,于是安装mysql
我用的是centos 安装自然很简单:
启动mysql:
/etc/init.d/mysqld start
为hadoop/hive 创建mysql用户:
-
mysql
-
mysql>CREATEUSER'hadoop'@'centos1'IDENTIFIEDBY'hadoop';
-
mysql>GRANTALLPRIVILEGESON*.*TO'hadoop'@'centos1'WITHGRANTOPTION;
-
mysql>exit
测试是否成功:
okay 现在我们成功安装了hive 下面我们修改hive 的配置让hive使用mysql
如果你用的cloudera 的话:
vi /etc/hive/conf/hive-site.xml
然后改成这样:
-
<property>
-
<name>hive.metastore.local</name>
-
<value>true</value>
-
</property>
-
-
<property>
-
<name>javax.jdo.option.ConnectionURL</name>
-
<value>jdbc:mysql:
-
</property>
-
-
<property>
-
<name>javax.jdo.option.ConnectionDriverName</name>
-
<value>com.mysql.jdbc.Driver</value>
-
</property>
-
-
<property>
-
<name>javax.jdo.option.ConnectionUserName</name>
-
<value>hadoop</value>
-
</property>
-
-
<property>
-
<name>javax.jdo.option.ConnectionPassword</name>
-
<value>hadoop</value>
-
</property>
okay, 现在启动 hive:
$hive
用的就是mysql 数据库存放表结构了。
你会惊奇地发现之前玩的那些表都没了,就让它们长眠在derby里吧!
集群搭建完毕,于是乎实际应用来了。
由于scribe 用的时间不长,产生的日志量还少,我们需要对过去三个月的cookie访问数据进行一个分析。
怎么办? 写个java程序吧数据库里的数据导进来(scribe之前 ,还是吧所有日志写到数据库中的,可想而知查询得多慢)
导出了15G的数据(3各月cookie访问记录)
下面就有个不能满足的需求了:要求把分析结果放回到mysql 数据库中方便管理人员查看
你懂的, linux控制台操作的hive 是不可能把结果数据放进mysql的(就我的能力而言。)只能打印到控制台或者写入文件
于是乎想到了hive 是有jdbc 客户端的
首先启动hive server:
-
hive--servicehiveserver50031(端口号)
好了服务启动了,等待客户端连接并执行客户端代码。
hive 支持多种客户端,jdbc odbc php python 等等 想了解的可以去wiki 看看。
okay 用eclipse 写hive 吧~ 这回熟悉了吧
在eclipse 中创建一个新的javaproject
把hive/lib 下的所有jar copy到项目的lib目录下 另外再加一个mysql-connector-5.*.*.jar 用来把数据写入mysql
废话不说 ,贴代码:
-
packagecom.hive;
-
-
importjava.sql.SQLException;
-
importjava.sql.Connection;
-
importjava.sql.ResultSet;
-
importjava.sql.Statement;
-
importjava.sql.DriverManager;
-
-
publicclassHiveJdbcClient{
-
privatestaticStringdriverName="org.apache.hadoop.hive.jdbc.HiveDriver";
-
-
-
-
-
-
publicstaticvoidmain(String[]args)throwsSQLException{
-
try{
-
Class.forName(driverName);
-
}catch(ClassNotFoundExceptione){
-
-
e.printStackTrace();
-
System.exit(1);
-
}
-
Connectioncon=DriverManager.getConnection(
-
"jdbc:hive://192.168.3.201:50031/defalt","hadoop",
-
"masterninja");
-
Statementstmt=con.createStatement();
-
ResultSetres=stmt
-
.executeQuery("selectcookie_id,COUNT(cookie_id)countfromcookie_infowhereuid=5779665groupbycookie_idORDERBYcountDESClimit20");
-
while(res.next()){
-
System.out.println(res.getString(1)+""+res.getInt(2));
-
}
-
}
-
}
我这里只是把结果集打印出来了 没有写入mysql (贴的只是测试代码)
写好后运行就成。如果您公司的服务器与外网是隔离的(我们公司就是)
就把程序打个jar 上传到服务器集群中的一台上(起码能访问到hiveserver 的)
运行java -jar XXX.jar
你会发现hive server 的那台机器开始在linux控制台打印了...
分享到:
相关推荐
cloudera manager中添加hive数据库使用mysql的配置的详细步骤
Redis,HBase,Solr,Cassandra,ZooKeeper,HDFS,Yarn,Hive,Presto,Drill,Impala,Consul,Spark,Jenkins,Travis CI,Git,MySQL ,Linux,DNS,Whois,SSL证书,Yum安全更新,Kubernetes,Cloudera等......
mysql,sqoop,spark,hive工作流管道它将通过两个表order和order_items产生每日收入Sqoop 以“ parquet”格式将订单和order_items数据从mysql导入到hdfs 在这里,我们正在创建sqoop作业以用于增量数据导入命令订单...
Redash 是一款开源的 BI 工具,提供了基于 web 的数据库...Redash支持查询多个数据库,包括:Redshift、Google BigQuery、PostgreSQL、MySQL、Graphite、Presto、Google电子表格、Cloudera Impala、Hive和自定义脚本。
所以在第⼀部分的学习中我们需要达到以下⽬标: 1、通过对 Linux 操作系统体系结构、 服务管理、包管理、NTP 协议时间 服务器、关系型数据库理论和 MySQL 数据库等相关知识的学习, 掌握⼤部分安装部署 Hadoop 集群...
如今,Redash 支持查询多个数据库,包括:Redshift、Google BigQuery、PostgreSQL、MySQL、Graphite、Presto、Google Spreadsheets、Cloudera Impala、Hive 和自定义脚本。 Redash 由两部分组成: 查询编辑器:考虑...
HAProxy配置:针对Hadoop,大数据,NoSQL,Docker,Elasticsearch,SolrCloud,HBase,MySQL,PostgreSQL,Apache Drill,Hive,Presto,Impala,Hue,ZooKeeper,SSH,RabbitMQ,Redis,Riak,Cloudera的80多个...
This book is a practical guide on using the Apache Hadoop projects including MapReduce, HDFS, Apache Hive, Apache HBase, Apache Kafka, Apache Mahout and Apache Solr. From setting up the environment to...
DevOps-Bash工具:550多种DevOps Bash脚本-AWS,GCP,Kubernetes,Kafka,Docker,API,Hadoop,SQL,PostgreSQL,MySQL,Hive,Impala,Travis CI,Jenkins,Concourse,GitHub,GitLab,BitBucket,Azure DevOps,...
第一个,你要把mysql驱动包放在lib目录下。不然会报找不到驱动包的错误 问题2. Exception in thread “main” java.lang.NoClassDefFoundError: org/json/JSONObject 解决方法: 这是因为sqoop缺少java-json.jar包 ...
⼤数据开源框架集锦 1 ⼤数据平台 Hadoop 离线数据的分布式存储和计算基础框架 分布式存储HDFS 离线计算引擎MapReduce 资源调度Apache YARN CDH 基于稳定版Hadoop及相关项⽬最成型的发⾏版本, 成为企业部署最⼴泛的...
扩展: 1、数据处理主要技术 Sqoop:作为⼀款开源的离线数据传输⼯具,主要⽤于Hadoop(Hive) 与传统数据库(MySql,PostgreSQL)间的数据传递。它可以 将⼀个关系数据库中数据导⼊Hadoop的HDFS中,也可以将HDFS中的...
Reduce阶段对Map处理数据的结构进⾏汇总 ⼤数据体系 名词解释 序 序 号 号 名称 名称 描述 描述 1 Sqoop Sqoop是⼀款开源的⼯具,主要⽤于在Hadoop、Hive与传统的数据库(MySql)间进⾏数据的传递,可以将⼀个关系型...
在数据量较小的情况下,一般采取单机数据库,如应用非常广泛,技术成熟的 MySQL。数据量大到一定程度后,就必须采取分布式系统了。目前业界最知名的就是 Apache 基金会名下的 Hadoop 系统,它根本可以作为大数据...
先进的Nagios插件集 最大,最先进的生产级Nagios监视代码集合(超过450个程序)... 在命令行上运行以进行测试或在脚本中运行以进行依赖项可用性检查也很有用,并且为这些技术提供了一系列,以使对集群技术的监视和编写
盖特 关于 Groovy ETL(Getl)-Groovy上的开源项目,自2012年以来开发,可... IBM DB2,FireBird,H2数据库,Hadoop Hive,Cloudera Impala,MS SQLServer,MySql,IBM Netezza,NetSuite,Oracle,PostgreSql,Micro
今天, Redash支持查询多个数据库,包括:Redshift,Google BigQuery,PostgreSQL,MySQL,Graphite,Presto,Google Spreadsheets,Cloudera Impala,Hive和自定义脚本。 Redash包含两个部分: 查询编辑器:考虑...