在浏览器中执行命令的Hadoop [英] Executing hadoop commands in browser

查看:203
本文介绍了在浏览器中执行命令的Hadoop的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我跟随著名的迈克尔·诺尔教程的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:4571​​2错误org.apache.hadoop.security.UserGroupInformation:PriviledgedActionException为:WWW的数据的原因:org.apache.hadoop.security.AccessControlException :权限被拒绝:用户= WWW的数据,访问=写,索引节点=升级:hduser:超群:rwxr-XR-X
2013-11-18 14:54:4571​​2 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆