我有一个用Python编写的mapreduce工作.该程序在linux env中成功测试,但在Hadoop下运行时失败了.
这是作业命令:
hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-0.20.1+169.127-streaming.jar \
-input /data/omni/20110115/exp6-10122 -output /home/yan/visitorpy.out \
-mapper SessionMap.py -reducer SessionRed.py -file SessionMap.py \
-file SessionRed.py
Run Code Online (Sandbox Code Playgroud)
Session*.py的模式是755,#!/usr/bin/env python
是*.py文件中的第一行.Mapper.py是:
#!/usr/bin/env python
import sys
for line in sys.stdin:
val=line.split("\t")
(visidH,visidL,sessionID)=(val[4],val[5],val[108])
print "%s%s\t%s" % (visidH,visidL,sessionID)
Run Code Online (Sandbox Code Playgroud)
日志错误:
java.io.IOException: Broken pipe
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
at java.io.DataOutputStream.write(DataOutputStream.java:90)
at org.apache.hadoop.streaming.io.TextInputWriter.writeUTF8(TextInputWriter.java:72)
at org.apache.hadoop.streaming.io.TextInputWriter.writeValue(TextInputWriter.java:51)
at org.apache.hadoop.streaming.PipeMapper.map(PipeMapper.java:110)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)
at org.apache.hadoop.mapred.Child.main(Child.java:170)
at org.apache.hadoop.streaming.PipeMapper.map(PipeMapper.java:126)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358) …
Run Code Online (Sandbox Code Playgroud) 我正在玩一些API,我试图解决这个问题.
我正在通过API向我的服务器发出基本的HTTP身份验证请求.作为此请求的一部分,经过身份验证的密钥将作为用户名存储在HTTP标头中.
所以我的问题是,如何获取传入请求的内容,以便我可以对其进行检查?
我想做什么:
if incoming request has header == 'myheader':
do some stuff
else:
return ('not authorised')
Run Code Online (Sandbox Code Playgroud)
对于那些感兴趣的人,我试图让这个工作.
更新 我正在使用Django
这是一个家庭作业!我使用服务器的证书get_peer_certificate()
和调用dump_certificate
将证书转储到变量中.格式是PEM,看起来对我来说.
-----BEGIN CERTIFICATE-----
GIBBERISH................
......................
........................
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
如何从此文件('server.pubkey')中提取服务器的公钥,并plaintext
使用RSA
算法和任何python库进行加密.在撰写本文时,我正在使用pyOpenSSL
我开始在python中使用mysqldb模块,我似乎在调用查询的"标准"方式方面存在一些问题.
我知道标准方法是创建一个游标然后用它来执行查询.
但是,当我尝试实现一个时,它会给我以下错误:
AttributeError:cursor
我的数据库类看起来像:
class Database():
def __init__(self):
server = "localhost"
login = "login"
password = "passws"
database = "DB"
my_conv = { FIELD_TYPE.LONG: int }
self.conn = MySQLdb.connection(user=login, passwd=password, db=database, host=server, conv=my_conv)
self.cursor = self.conn.cursor()
def close(self):
self.conn.close()
def execute(self, query):
self.cursor.execute(query)
return self.cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)
现在我通过使用查询方法让它工作,但我觉得不使用标准会给我带来麻烦.
任何的想法 ?
python ×4
django ×1
hadoop ×1
http-headers ×1
mapreduce ×1
mysql ×1
mysql-python ×1
pyopenssl ×1
rsa ×1