python 连接 hive数据库环境搭建
首先需要安装以下Python 包:(我用的是Python 2)
在安装Python包之前需要安装一些依赖工具:
- Debian/Ubuntu: apt-get install python-dev libsasl2-dev gcc
- CentOS/RHEL: yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64 mysql-devel
- bitarray-0.8.3.tar.gz
- impyla-0.14.0.tar.gz
- MySQL-python-1.2.5.zip
- 新建HiveHelper.py
- # -*- coding: utf-8 -*-
- from impala.dbapi import connect
- class HiveHelper(object):
- def __init__(self):
- self.host = ''
- self.port =
- self.database = ''
- self.user = ''
- self.password = ''
- self.auth_mechanism = ''
- self.connect()
- def connect(self):
- """ connect
- Args:
- null
- Returns:
- null
- """
- self.conn = connect(
- host=self.host,
- port=self.port,
- database=self.database,
- user=self.user,
- password=self.password,
- auth_mechanism=self.auth_mechanism)
- self.cursor = self.conn.cursor()
- def close(self):
- """ close
- Args:
- null
- Returns:
- null
- """
- self.cursor.close()
- self.conn.close()
- def query(self, sql):
- """ query
- Args:
- sql
- Returns:
- sql result
- """
- result = ()
- try:
- self.cursor.execute(sql)
- result = self.cursor.fetchall()
- except Exception as e:
- print e.message
- return result
- def execute(self, sql):
- try:
- self.cursor.execute(sql)
- self.conn.commit()
- except:
- self.conn.rollback()
- 新建HiveSearch.py
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- import os,sys
- import re
- import json
- import math
- import time
- import operator
- import urlparse
- import threading
- import HiveHelper
- import requests
- import calendar
- import datetime
- class PcdnSearch:
- def __init__(self):
- self.sql = HiveHelper.HiveHelper()
- self.punch_data = {}
- self.flow_data = {}
- def get_flow_data(self, time, clientid):
- sql = ""
- # print sql
- try:
- result = self.sql.query(sql)
- for item in result:
- guid = item[1]
- flow = item[3]
- band = round(float(flow)*8/1000/1000/3600*1.1, 2)
- self.flow_data[guid] = (flow, band)
- except Exception, e:
- pass
- def get_punch_data(self, time, clientid):
- sql = ""
- def get_result(self):
- if __name__ == '__main__':
- if len(sys.argv) == 3:
- run_time = sys.argv[1]
- client_id = int(sys.argv[2])
- else:
- print 'param error'
- exit(0)
- cb = PcdnSearch()
- cb.get_punch_data(run_time, client_id)
- cb.get_flow_data(run_time, client_id)
- cb.get_result()
python 连接 hive数据库环境搭建的更多相关文章
- python 连接 hive
1.python连接hive,其实是连接hiveserver,连接的包的impyla impyla安装: error: cc1plus 没有文件或目录 需要安装gcc 和g++,并且版本保持一致 er ...
- python 连接 hive 的 HiveServer2 的配置坑
环境: hadoop 2.7.6 hive 2.3.4 Hive 的 thirft 启动: hadoop 单机或者集群需要: 启动 webhdfs 修改 hadoop 的代理用户 <proper ...
- Hive 教程(九)-python with hive
本文介绍用 python 远程连接 hive,此时需要 hive 启动 hiveserver2 服务 windows 下报如下错误 thrift.transport.TTransport.TTrans ...
- 在 windows 下搭建 IDEA + Spark 连接 Hive 的环境
为了开发测试方便,想直接在 IDEA 里运行 Spark 程序,可以连接 Hive,需不是打好包后,放到集群上去运行.主要配置工作如下: 1. 把集群环境中的 hive-core.xml, hdfs- ...
- InfluxDB 分布式时间序列数据库环境搭建——据qcon大会2016qiniu说集群很坑且闭源了
InfluxDB 分布式时间序列数据库环境搭建 1. 环境说明 Ubuntu14.04 + influxDB V0.10.1 搭建3个节点的分布式数据库,副本数量2,各节点之间自动进行数据备份并 ...
- 《OD大数据实战》Hive环境搭建
一.搭建hadoop环境 <OD大数据实战>hadoop伪分布式环境搭建 二.Hive环境搭建 1. 准备安装文件 下载地址: http://archive.cloudera.com/cd ...
- Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...
- Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)
Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...
- 【Python实战】使用Python连接Teradata数据库???未完成
1.安装Python 方法详见:[Python 05]Python开发环境搭建 2.安装Teradata客户端ODBC驱动 安装包地址:TTU下载地址 (1)安装TeraGSS和tdicu(ODBC依 ...
随机推荐
- CentOS 7 安装 metasploit-framework
1 一键安装metasploit-framework apt-get install curl,wgetcurl https://raw.githubusercontent.com/rapid7/me ...
- iptables内网访问外网 ε=ε=ε=(~ ̄▽ ̄)~
介绍 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成. netfilter/iptables 关 ...
- jumpserver部署0.3版本 =====( ̄▽ ̄*)b
jumpserver概述 跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点:没有实现对运维人员操作行为的控制和 ...
- 30 最小n个数
public class test30{ public static void main(String args[]){ int array[]={3,2,5,1,4}; int temp[] = f ...
- 对JS继承的研究--------------引用
问:类继承和原型继承不是同一回事儿吗,只是风格选择而已? 答:不是! 类继承和原型继承不论从本质上还是从语法上来说,都是两个截然不同的概念. 二者之间有着区分彼此的本质性特征.要完全看懂本文,你必须牢 ...
- jquery attribute选择器 语法
jquery attribute选择器 语法 作用:[attribute] 选择每个带有指定属性的元素.可以选取带有任何属性的元素(对于指定的属性没有限制). 语法:$("[attribut ...
- KMP模版 && KMP求子串在主串出现的次数模版
求取出现的次数 : #include<bits/stdc++.h> ; char mo[maxn], str[maxn];///mo为模式串.str为主串 int next[maxn]; ...
- Angular CLI 创建你的第一个 Angular 示例程序
第一步:安装 Angular CLI 你要使用 Angular CLI 来创建项目.创建应用和库代码,并执行多种开发任务,比如测试.打包和发布. 全局安装 Angular CLI. 要想使用 npm ...
- 收藏一个bit模板使用实例
#include<bits/stdc++.h> using namespace std; typedef long long ll; #define MAX_N 1000000 int b ...
- lcez校内模拟赛: 小R与苹果派——题解
题目传送 首先对两个数组排序. 然后预处理出数组p[i]表示b[x]<a[i]的最大的x. 然后我们设f[i][k]表示对于前i个派,我单独选出来k组a[y]>b[y].(即此时有k组a& ...