在浏览器中执行命令的Hadoop [英] Executing hadoop commands in browser
问题描述
我跟随著名的迈克尔·诺尔教程的http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/安装的hadoop
在单个节点。
现在我想通过浏览器来用PHP执行以下命令
USR /本地/ Hadoop的/ bin中/ Hadoop的罐子/usr/local/hadoop/contrib/streaming/hadoop-*streaming*.jar -mapper的/ usr / bin中/ Python的/无功/网络/数据挖掘/ AnalysisByYear / AnalysisByYear_mapper.py 2011-reducer的/ usr / bin中/ Python的/var/www/DataMining/AnalysisByYear/AnalysisByYear_reducer.py - 输入 - 输出/user/hduser/dataset/final_eval.txt /用户/ hduser /数据集,outputyear
我使用的是执行exec()
PHP的命令
执行它,但它并没有显示出任何结果。
在本教程中hduser给出的Hadoop的所有权。然而,浏览器登录作为用户WWW的数据。因此,它不能执行。我假设是错误。是否有可能以任何方式来执行脚本?
NameNode的日志如下:
2013-11-18 14:54:45712错误org.apache.hadoop.security.UserGroupInformation:PriviledgedActionException为:WWW的数据的原因:org.apache.hadoop.security.AccessControlException :权限被拒绝:用户= WWW的数据,访问=写,索引节点=升级:hduser:超群:rwxr-XR-X
2013-11-18 14:54:45712 INFO org.apache.hadoop.ipc.Server:54310上的IPC服务器处理器1,调用mkdirs(/应用/ Hadoop的/ tmp目录/ MA preD /分期/ www数据/ .staging,从127.0.0.1:40876的rwx ------):错误:org.apache.hadoop.security.AccessControlException:权限被拒绝:用户= WWW的数据,访问=写,索引节点=升级:hduser :超群:rwxr-XR-X
org.apache.hadoop.security.AccessControlException:权限被拒绝:用户= WWW的数据,访问=写,索引节点=升级:hduser:超群:rwxr-XR-X
在org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:199)
在org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:180)
在org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:128)
在org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5468)
在org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAncestorAccess(FSNamesystem.java:5442)
在org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirsInternal(FSNamesystem.java:2209)
在org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:2178)
在org.apache.hadoop.hdfs.server.namenode.NameNode.mkdirs(NameNode.java:857)
在sun.reflect.GeneratedMethodAccessor13.invoke(来源不明)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在org.apache.hadoop.ipc.RPC $ Server.call(RPC.java:578)
在org.apache.hadoop.ipc.Server $ $处理程序1.run(Server.java:1393)
在org.apache.hadoop.ipc.Server $ $处理程序1.run(Server.java:1389)
在java.security.AccessController.doPrivileged(本机方法)
在javax.security.auth.Subject.doAs(Subject.java:396)
在org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
在org.apache.hadoop.ipc.Server $ Handler.run(Server.java:1387)
我使用的解决方案开始我的Apache服务器作为hduser。
I have followed the famous michael noll tutorial http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ to install hadoop
in single node.
Now I want to execute the following command via browser through php
usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/contrib/streaming/hadoop-*streaming*.jar -mapper "/usr/bin/python /var/www/DataMining/AnalysisByYear/AnalysisByYear_mapper.py 2011" -reducer "/usr/bin/python /var/www/DataMining/AnalysisByYear/AnalysisByYear_reducer.py" -input /user/hduser/dataset/final_eval.txt -output /user/hduser/dataset-outputyear
I am using the exec()
command of php
to execute it but it doesn't show any result.
In the tutorial the hduser is given the ownership of hadoop. However the browser logs in as the user www-data. As a result it cannot execute. I am assuming that is the error. Is it possible to execute the script in any way?
The namenode logs are given below:
2013-11-18 14:54:45,712 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:www-data cause:org.apache.hadoop.security.AccessControlException: Permission denied: user=www-data, access=WRITE, inode="staging":hduser:supergroup:rwxr-xr-x
2013-11-18 14:54:45,712 INFO org.apache.hadoop.ipc.Server: IPC Server handler 1 on 54310, call mkdirs(/app/hadoop/tmp/mapred/staging/www-data/.staging, rwx------) from 127.0.0.1:40876: error: org.apache.hadoop.security.AccessControlException: Permission denied: user=www-data, access=WRITE, inode="staging":hduser:supergroup:rwxr-xr-x
org.apache.hadoop.security.AccessControlException: Permission denied: user=www-data, access=WRITE, inode="staging":hduser:supergroup:rwxr-xr-x
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:199)
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:180)
at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:128)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5468)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAncestorAccess(FSNamesystem.java:5442)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirsInternal(FSNamesystem.java:2209)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.mkdirs(FSNamesystem.java:2178)
at org.apache.hadoop.hdfs.server.namenode.NameNode.mkdirs(NameNode.java:857)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:578)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1393)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1389)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1387)
The solution I used is starting my apache server as hduser.
这篇关于在浏览器中执行命令的Hadoop的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!