首先需要安装以下Python 包:(我用的是Python 2)

在安装Python包之前需要安装一些依赖工具:

  1. Debian/Ubuntu: apt-get install python-dev libsasl2-dev gcc
  1. CentOS/RHEL: yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64 mysql-devel
  1. bitarray-0.8.3.tar.gz
  1. impyla-0.14.0.tar.gz
  1. MySQL-python-1.2.5.zip
  2.  
  3. 新建HiveHelper.py
  1. # -*- coding: utf-8 -*-
  2. from impala.dbapi import connect
  3.  
  4. class HiveHelper(object):
  5. def __init__(self):
  6. self.host = ''
  7. self.port =
  8. self.database = ''
  9. self.user = ''
  10. self.password = ''
  11. self.auth_mechanism = ''
  12. self.connect()
  13.  
  14. def connect(self):
  15. """ connect
  16. Args:
  17. null
  18. Returns:
  19. null
  20. """
  21. self.conn = connect(
  22. host=self.host,
  23. port=self.port,
  24. database=self.database,
  25. user=self.user,
  26. password=self.password,
  27. auth_mechanism=self.auth_mechanism)
  28. self.cursor = self.conn.cursor()
  29.  
  30. def close(self):
  31. """ close
  32. Args:
  33. null
  34. Returns:
  35. null
  36. """
  37. self.cursor.close()
  38. self.conn.close()
  39.  
  40. def query(self, sql):
  41. """ query
  42. Args:
  43. sql
  44. Returns:
  45. sql result
  46. """
  47. result = ()
  48. try:
  49. self.cursor.execute(sql)
  50. result = self.cursor.fetchall()
  51. except Exception as e:
  52. print e.message
  53. return result
  54.  
  55. def execute(self, sql):
  56. try:
  57. self.cursor.execute(sql)
  58. self.conn.commit()
  59. except:
  60. self.conn.rollback()

  

  1. 新建HiveSearch.py
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import os,sys
  5. import re
  6. import json
  7. import math
  8. import time
  9. import operator
  10. import urlparse
  11. import threading
  12. import HiveHelper
  13. import requests
  14. import calendar
  15. import datetime
  16.  
  17. class PcdnSearch:
  18. def __init__(self):
  19. self.sql = HiveHelper.HiveHelper()
  20. self.punch_data = {}
  21. self.flow_data = {}
  22.  
  23. def get_flow_data(self, time, clientid):
  24. sql = ""
  25.  
  26. # print sql
  27. try:
  28. result = self.sql.query(sql)
  29. for item in result:
  30. guid = item[1]
  31. flow = item[3]
  32. band = round(float(flow)*8/1000/1000/3600*1.1, 2)
  33. self.flow_data[guid] = (flow, band)
  34. except Exception, e:
  35. pass
  36.  
  37. def get_punch_data(self, time, clientid):
  38. sql = ""
  39.  
  40. def get_result(self):
  41.  
  42. if __name__ == '__main__':
  43. if len(sys.argv) == 3:
  44. run_time = sys.argv[1]
  45. client_id = int(sys.argv[2])
  46. else:
  47. print 'param error'
  48. exit(0)
  49. cb = PcdnSearch()
  50. cb.get_punch_data(run_time, client_id)
  51. cb.get_flow_data(run_time, client_id)
  52. cb.get_result()

  

  1.  

python 连接 hive数据库环境搭建的更多相关文章

  1. python 连接 hive

    1.python连接hive,其实是连接hiveserver,连接的包的impyla impyla安装: error: cc1plus 没有文件或目录 需要安装gcc 和g++,并且版本保持一致 er ...

  2. python 连接 hive 的 HiveServer2 的配置坑

    环境: hadoop 2.7.6 hive 2.3.4 Hive 的 thirft 启动: hadoop 单机或者集群需要: 启动 webhdfs 修改 hadoop 的代理用户 <proper ...

  3. Hive 教程(九)-python with hive

    本文介绍用 python 远程连接 hive,此时需要 hive 启动 hiveserver2 服务 windows 下报如下错误 thrift.transport.TTransport.TTrans ...

  4. 在 windows 下搭建 IDEA + Spark 连接 Hive 的环境

    为了开发测试方便,想直接在 IDEA 里运行 Spark 程序,可以连接 Hive,需不是打好包后,放到集群上去运行.主要配置工作如下: 1. 把集群环境中的 hive-core.xml, hdfs- ...

  5. InfluxDB 分布式时间序列数据库环境搭建——据qcon大会2016qiniu说集群很坑且闭源了

    InfluxDB 分布式时间序列数据库环境搭建   1. 环境说明 Ubuntu14.04  + influxDB V0.10.1 搭建3个节点的分布式数据库,副本数量2,各节点之间自动进行数据备份并 ...

  6. 《OD大数据实战》Hive环境搭建

    一.搭建hadoop环境 <OD大数据实战>hadoop伪分布式环境搭建 二.Hive环境搭建 1. 准备安装文件 下载地址: http://archive.cloudera.com/cd ...

  7. Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接

    今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...

  8. Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)

    Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...

  9. 【Python实战】使用Python连接Teradata数据库???未完成

    1.安装Python 方法详见:[Python 05]Python开发环境搭建 2.安装Teradata客户端ODBC驱动 安装包地址:TTU下载地址 (1)安装TeraGSS和tdicu(ODBC依 ...

随机推荐

  1. CentOS 7 安装 metasploit-framework

    1 一键安装metasploit-framework apt-get install curl,wgetcurl https://raw.githubusercontent.com/rapid7/me ...

  2. iptables内网访问外网 ε=ε=ε=(~ ̄▽ ̄)~

    介绍 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成. netfilter/iptables 关 ...

  3. jumpserver部署0.3版本 =====( ̄▽ ̄*)b

    jumpserver概述 跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点:没有实现对运维人员操作行为的控制和 ...

  4. 30 最小n个数

    public class test30{ public static void main(String args[]){ int array[]={3,2,5,1,4}; int temp[] = f ...

  5. 对JS继承的研究--------------引用

    问:类继承和原型继承不是同一回事儿吗,只是风格选择而已? 答:不是! 类继承和原型继承不论从本质上还是从语法上来说,都是两个截然不同的概念. 二者之间有着区分彼此的本质性特征.要完全看懂本文,你必须牢 ...

  6. jquery attribute选择器 语法

    jquery attribute选择器 语法 作用:[attribute] 选择每个带有指定属性的元素.可以选取带有任何属性的元素(对于指定的属性没有限制). 语法:$("[attribut ...

  7. KMP模版 && KMP求子串在主串出现的次数模版

    求取出现的次数 :  #include<bits/stdc++.h> ; char mo[maxn], str[maxn];///mo为模式串.str为主串 int next[maxn]; ...

  8. Angular CLI 创建你的第一个 Angular 示例程序

    第一步:安装 Angular CLI 你要使用 Angular CLI 来创建项目.创建应用和库代码,并执行多种开发任务,比如测试.打包和发布. 全局安装 Angular CLI. 要想使用 npm  ...

  9. 收藏一个bit模板使用实例

    #include<bits/stdc++.h> using namespace std; typedef long long ll; #define MAX_N 1000000 int b ...

  10. lcez校内模拟赛: 小R与苹果派——题解

    题目传送 首先对两个数组排序. 然后预处理出数组p[i]表示b[x]<a[i]的最大的x. 然后我们设f[i][k]表示对于前i个派,我单独选出来k组a[y]>b[y].(即此时有k组a& ...