1
wander2008 2016-06-30 21:02:14 +08:00 via iPhone 1
不可以。
|
2
AntonChen 2016-06-30 21:07:53 +08:00 via iPhone 1
cdh 的可以 apache 的理论上可行,暂未测试正好最近想验证下。简单的说就是去没个节点上启动对应服务 不用 apache hadoop 自己的批量远程启动 先主后从
|
3
AntonChen 2016-06-30 21:09:49 +08:00 via iPhone 1
补充 一台机可以启动主从,估计是哪儿配置错误 具体需要看日志跟踪
|
4
wdg8106 OP 非常感谢,今天刚开始答,我再仔细看看日志
|
5
Jackliu91 2016-07-01 00:33:01 +08:00 via iPhone 1
搜伪分布式安装
|
7
wdg8106 OP |
8
Jackliu91 2016-07-01 10:07:09 +08:00 via iPhone 1
@wdg8106 首先伪分布式也可以用 Hive ,至于你说的卡住感觉是你没安对。然后如果你想用一台机器做全分布式,可以用虚拟机虚拟三台,但这种也只是玩具,跟你用伪分布式来学习效果是一样的。
|
10
wdg8106 OP hive 读取文件写入数据库写入的是空值是怎么回事呢。。
文件 stu.txt : 1 xiaopi 2 xiaoxue 3 qingqing 执行语句: load data local inpath '/usr/local/hadoop/examples/stu.txt' overwrite into table stu; 查询表 stu : hive> select id ,name from stu; OK NULL NULL NULL NULL NULL NULL Time taken: 0.087 seconds, Fetched: 3 row(s) hadoop 是伪分布式的,请问这个怎么解决呢, @AntonChen @Jackliu91 @wander2008 |
12
wdg8106 OP @Jackliu91
create table if not exists hive.stu(id int,name string) row format delimited fields terminated by '\t'; |
13
Jackliu91 2016-07-01 15:01:39 +08:00 1
@wdg8106 应该是这样的,你的文件中
1 xiaopi 是用空格分隔的,不是制表符,所以“ 1 xiaopi ”会成为第一个字段,第二个字段为 NULL ;但你第一个字段是 int ,从“ 1 xiaopi ”向 int 转换失败,所以第一列也为 NULL 。 |
15
wdg8106 OP @Jackliu91
又碰到了个 thrift 连接 hive 的 问题请教下啊, 先执行 hive --service hiveserver2 & 命令启动 hiveserver , 然后执行脚本连接 hive 进行操作: # test.py #!/usr/bin/env python import sys from hive_service import ThriftHive #!/usr/bin/env python import sys from hive_service import ThriftHive from hive_service.ttypes import HiveServerException from thrift import Thrift from thrift.transport import TSocket from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol def hiveExe(sql): try: transport = TSocket.TSocket('127.0.0.1',10000) transport = TTransport.TBufferedTransport(transport) protocol = TBinaryProtocol.TBinaryProtocol(transport) client = ThriftHive.Client(protocol) transport.open() client.execute(sql) print "The return value is:" print client.fetchAll() print "................." transport.close() except Thrift.TException,tx: print "%s" % (tx.message) if __name__ == '__main__': print "hello" hiveExe("show tables") 就是执行一行简单的 查看所有表的语句,但是程序卡在 client.execute(sql) 这行就不动了。 请问这个问题怎么解决呢,,, 用 netstat 命令查看 10000 端口 hiveServer 是启动成功的。 $ netstat -nl |grep 10000 tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 在 CLI 里面也是可以正常进行 hive 查询操作的 |