python调用hive脚本(python访问Hive配置 jmydream的专栏 博客频道 CSDN.NET)
分类:
hive
2012-09-04 15:41 36人阅读 评论(0) 收藏 举报目录(?)[+]
hive有三种启动方式:hive命令行模式 ,直接输入/hive/bin/hive的执行程序 ,或者输入 hive –service cli 用于linux平台命令行查询 ,查询语句基本跟mysql查询语句类似
hiveweb界面的启动方式 ,hive
–service hwi 用于通过浏览器来访问hive 。可以分离查询的执行 ,同时执行多个查询;不用本地安装hive
hive远程服务 (端口号10000) 启动方式,hive以thrift服务的服务器形式运行 ,允许不同的语言编写客户端进行访问 ,通过thrift ,jdbc ,odbc连接器和hive服务器与hive通信 ,这种方式很适合java 、python编程人员通过jdbc接口去访问hive 。这里实现第三种方式 ,首先要安装thrift
Thrift是一个跨语言服务部署框架 ,最初由Facebook于2007年开发,后于2008年进入Apache孵化器(Apache Incubator) 。类似于SOAP ,COM 和CORBA ,Thrift通过定义一个中间定义语言和Thrift代码生成工具,生成指定语言的代码 。目前 ,Thrift
支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml的代码生成 。
在这里我们用的是thrift的另一个应用 ,不是生成指定语言的代码 ,而是通过Thrift Gateway ,利用Thrift序列化技术(支持C++ ,PHP ,Python等多种语言)适合其他异构系统调用hive ,在我们这用python客户端通过thrift调用hive(将hive相关的python语句放与hive服务器)thrift主页:http://thrift.apache.org/ ,上面有详细的安装说明 。
到thrift主页下载最新版本thrift.http://thrift.apache.org/download/thrift-0.8.0.tar.gz
直接解压
tar zxvfthrift-0.8.0.tar.gz出现错误:This does not look like a tar archive
这是个BUG
解决办法:
gzip -d xxxx.tar.gz (对于.tar.gz文件的处理方式)
tar -xf xxxx.tar(对于.tar文件处理方式)系统必备包和工具安装 ,按照http://thrift.apache.org/docs/install/ubuntu/上所说 ,安装必备工具和包
$:sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
python必备包安装:
$:python-dev python-twisted
安装thrifthttp://thrift.apache.org/docs/BuildingFromSource/
直接运行
$:./configure
不用运行
./bootstrap.sh
$:make & make installthrift安装完毕 。
thrift的lib包加入python的lib下
运行
$: python
>>>fromhive_serviceimport
>>>ThritHiveImportError:cannotimportnameThritHive
查看之后 ,才发现在执行了第(1)步后 ,python2.7/site-packages中并没有相应模块,这样当然是不可能通过编译的 ,所以到刚才解压后的根目录 ,将build/lib中的所有模块都拷贝到python2.7/site-packages中,如下:有两种方式:$:cd .../thrift-0.8.0/lib/py/build/lib.linux-x86_64-2.7
cp -r thrift/ /usr/lib/python2.7/site-packages/python插件方式eclipse下python写hive程序设置
在菜单项windonw->preferences下
添加thrift for python 和 thrift for hive
oK
hive有三种启动方式: 这里实现第三种方式 ,首先要安装thrift thrift的lib包加入python的lib下 eclipse下python写hive程序设置
hive有三种启动方式:
hive命令行模式 ,直接输入/hive/bin/hive的执行程序 ,或者输入 hive –service cli 用于linux平台命令行查询 ,查询语句基本跟mysql查询语句类似
hiveweb界面的启动方式 ,hive
–service hwi 用于通过浏览器来访问hive 。可以分离查询的执行 ,同时执行多个查询;不用本地安装hive
hive远程服务 (端口号10000) 启动方式,hive以thrift服务的服务器形式运行 ,允许不同的语言编写客户端进行访问 ,通过thrift ,jdbc ,odbc连接器和hive服务器与hive通信 ,这种方式很适合java 、python编程人员通过jdbc接口去访问hive 。
这里实现第三种方式 ,首先要安装thrift
Thrift是一个跨语言服务部署框架,最初由Facebook于2007年开发 ,后于2008年进入Apache孵化器(Apache Incubator) 。类似于SOAP ,COM 和CORBA,Thrift通过定义一个中间定义语言和Thrift代码生成工具 ,生成指定语言的代码 。目前 ,Thrift
支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml的代码生成 。
在这里我们用的是thrift的另一个应用 ,不是生成指定语言的代码 ,而是通过Thrift Gateway ,利用Thrift序列化技术(支持C++ ,PHP ,Python等多种语言)适合其他异构系统调用hive ,在我们这用python客户端通过thrift调用hive(将hive相关的python语句放与hive服务器)
thrift主页:http://thrift.apache.org/ ,上面有详细的安装说明。
到thrift主页下载最新版本thrift.http://thrift.apache.org/download/thrift-0.8.0.tar.gz
直接解压
tar zxvfthrift-0.8.0.tar.gz
出现错误:This does not look like a tar archive
这是个BUG
解决办法:
gzip -d xxxx.tar.gz (对于.tar.gz文件的处理方式)
tar -xf xxxx.tar(对于.tar文件处理方式)
系统必备包和工具安装 ,按照http://thrift.apache.org/docs/install/ubuntu/上所说 ,安装必备工具和包
$:sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
python必备包安装:
$:python-dev python-twisted
安装thrifthttp://thrift.apache.org/docs/BuildingFromSource/
直接运行
$:./configure
不用运行
./bootstrap.sh
$:make & make install
thrift安装完毕 。
thrift的lib包加入python的lib下
运行
$: python
>>>fromhive_serviceimport
>>>ThritHiveImportError:cannotimportnameThritHive
查看之后 ,才发现在执行了第(1)步后,python2.7/site-packages中并没有相应模块 ,这样当然是不可能通过编译的 ,所以到刚才解压后的根目录,将build/lib中的所有模块都拷贝到python2.7/site-packages中 ,如下:有两种方式:
$:cd .../thrift-0.8.0/lib/py/build/lib.linux-x86_64-2.7
cp -r thrift/ /usr/lib/python2.7/site-packages/
python插件方式
eclipse下python写hive程序设置
在菜单项windonw->preferences下
添加thrift for python 和 thrift for hive
oK
hive有三种启动方式:
hive命令行模式 ,直接输入/hive/bin/hive的执行程序 ,或者输入 hive –service cli 用于linux平台命令行查询 ,查询语句基本跟mysql查询语句类似hiveweb界面的启动方式 ,hive
–service hwi 用于通过浏览器来访问hive 。可以分离查询的执行 ,同时执行多个查询;不用本地安装hive hive远程服务 (端口号10000) 启动方式,hive以thrift服务的服务器形式运行 ,允许不同的语言编写客户端进行访问 ,通过thrift ,jdbc ,odbc连接器和hive服务器与hive通信 ,这种方式很适合java 、python编程人员通过jdbc接口去访问hive 。 这里实现第三种方式 ,首先要安装thriftthrift主页:http://thrift.apache.org/ ,上面有详细的安装说明。
到thrift主页下载最新版本thrift.http://thrift.apache.org/download/thrift-0.8.0.tar.gz直接解压
tar zxvfthrift-0.8.0.tar.gz
出现错误:This does not look like a tar archive解决办法:
tar -xf xxxx.tar(对于.tar文件处理方式)
thrift安装完毕 。
thrift的lib包加入python的lib下
运行
$: python
>>>fromhive_serviceimport
>>>ThritHiveImportError:cannotimportnameThritHive
查看之后 ,才发现在执行了第(1)步后,python2.7/site-packages中并没有相应模块 ,这样当然是不可能通过编译的 ,所以到刚才解压后的根目录,将build/lib中的所有模块都拷贝到python2.7/site-packages中 ,如下:有两种方式:
$:cd .../thrift-0.8.0/lib/py/build/lib.linux-x86_64-2.7cp -r thrift/ /usr/lib/python2.7/site-packages/
python插件方式eclipse下python写hive程序设置
在菜单项windonw->preferences下
添加thrift for python 和 thrift for hive
oK
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!