分享

hadoop远程客户端(集群以外)如何跑mapreduce

howtodown 2014-11-15 13:15:11 发表于 问题解答 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 56690
问题导读
1.第三方的应用想在java应用里启动一个mapreduce作业,怎么弄?
2.你认为能远程连接hadoop的原因是什么?





提问:
来自论坛会员的提问:
某个第三方的应用(这个第三方的应用部署在hadoop集群之外),想在java应用里启动一个mapreduce作业,怎么弄?
原理:
我们知道在eclipse中,可以远程链接集群运行mapreduce。那么我们如果是第三方应用,或则在集群以外,该如何跑mapredcue。
我们只需要安装hadoop客户端即可,也就是说我们需要hadoop环境,并且能够远程连接,而远程连接,相信我们在eclipse中就已经学会了,所以在集群以外运行mapreduce也不是难事。详细参考以下内容






hadoop远程客户端安装配置

客户端系统:ubuntu12.04

客户端用户名:mjiang

服务器用户名:hadoop

  • 下载hadoop安装包,保证和服务器版本一致(或直接copy服务器的hadoop安装包)
    下载参考:hadoop家族、strom、spark、Linux、flume等jar包、安装包汇总下载(持续更新)
  • 配置
    • 系统配置
      修改 ~/.bashrc 文件
      添加 export PATH=/path/to/hadoop/home/:$PATH
    • hadoop配置文件修改
      在客户端只需配置集群namenode 和 jobtracker 的相关信息,以及java安装目录。即修改conf目录下文件:
      hadoop-env.sh:
      1. export JAVA_HOME=/home/mjiang/hadoop_work/jrockit-jdk1.6.0_29
      2. core-site.xml:
      3. <property>
      4. <name>fs.default.name</name>
      5. <value>hdfs://master:8020</value>
      6. </property>
      7. mapred-site.xml:
      8. <property>
      9. <name>mapred.job.tracker</name>
      10. <value>master:8021</value>
      11. </property>
      复制代码

  • 现在hadoop客户端已经配置好,可以运行基本的命令如:
    hadoop fs -lsr /
    但是由于服务器端还没有设置权限,所以向hdfs系统上传文件等命令还不能运行。
hadoop多用户权限配置

参考

hadoop多用户时权限问题

在Ubnutu上创建多个用户使用jps查看hadoop信息




远程客户端用户在hadoop集群上运行程序时,可能会出现类似错误:

错误现象

  1. org.apache.hadoop.security.AccessControlException: Permission denied: user=mjiang, access=EXECUTE, inode="job_201111031322_0003":hadoop:supergroup:rwx-.
复制代码

原因:本地用户想要远程操作hadoop系统,没有权限引起的。


这就是权限配置不对造成的,解决方案:

  • 如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。
  • 公司级应用时权限配置:
    这里只进行简单的权限配置,远程用户能正常提交运行作业即可,更加专业、高级的权限配置暂时还用不到,也没有做过多研究。
    在解决权限配置问题时,我们对hadoop多用户权限配置的问题,转移成单纯的hdfs文件的用户权限配置问题:

    • 在服务器主机上添加客户端用户以及hadoop默认组名:
      1. sudo  /usr/sbin/groupadd  supergroup
      2. sudo  /usr/sbin/useradd  -e 20130630   -g supergroup -n  -r mjiang
      复制代码

    • 修改hadoop集群中hdfs文件的组权限使属于supergroup组的所有用户都有读写权限
      1. hadoop fs -chmod 773 /
      复制代码



已有(1)人评论

跳转到指定楼层
hb1984 发表于 2014-11-18 18:41:26
谢谢楼主分享。            
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条