您的位置:首页 > 运维架构

解决:MacOS下配置Hadoop及Hive单机遇到的问题(们)

2017-06-29 16:58 267 查看
MacOS Sierra 10.12.1

Hadoop 2.7.3

Hive 1.2.1

前言

本来安逸搞个local 的spark算了,但是过几天我还要搞个网易云音乐的大新闻,没有hive不得劲,遂装,期间遇到的问题,一一记录

安装

基础安装,先照这个来吧,反正肯定不会一次成功,科科,还可以自己百度,很多很多的

@jeetpan–Mac 系统安装Hadoop 2.7.3

问题

这才是重点,坑

Hadoop MapReduce Error - /bin/bash: /bin/java: is a directory

这是macos的java路径不对的问题,hadoop默认为bin/java,但是在macos中是/usr/bin/java,你不行可以which java看下是不是

解决方案:修改路径即可,在/hadoop-2.7.3/etc/hadoop目录下,vi hadoop-env.sh进行java路径配置,添加如下

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
当然这里的路径是自己的javajdk的路径,如果你装了jdk1.8.0_131.jdk版本的,那就应该是这个

进入hive的安装目录后, bin/hive 启动卡在Logging initialized using configuration in file:/Users/mrlevo/Documents/apache-hive-1.2.1-bin/conf/hive-log4j.properties进不去

解决方案:使用sudo bin/hive

Tracking URL里的application metrics参数都是0,node的log为空只显示http://

具体表现样式:



解决方案:这是内存配置的问题,具体解决方案请看@KaP–MapReduce job hangs, waiting for AM container to be allocated

hive能够正常查询等简单操作,但是Mapred job的时候就卡着不动了

解决方案:首先看看自己机器有没有联网,别笑,真的遇到过,然后看能否启动分配任务,比如有Tracking URL = http://MacdeMacBook-Pro.local:8088/proxy/application_1498720375962_0011/这个显示,那么启动没问题,进去查看log,log中一般显示Hadoop MapReduce Error - /bin/bash: /bin/java: is a directory,科科,请返回第一个问题

启动hive后报错如下 Exception in thread “main” Java.lang.IllegalArgumentException:java.net.URISyntaxException: Relative path in absolute URI:{system:java.io.tmpdir%7D/%7Bsystem:user.name%7D

解决方案

方法一:请看hive启动时{system:java.io.tmpdir%7D/%7Bsystem:user.name%7D错误

方法二:请看@zhangwx–这里

题外话,用他们的方式后,我还是会遇到这个问题,只不过是%7Bsystem:user.name%7D问题,最后解决方案只好把hive-site.xml中的{system:user.name}删掉,解决。

Permission denied: user=root, access=EXECUTE, inode=”/tmp/hadoop-yarn”:grid:supergroup:drwx——

解决方案:这是由于权限不够造成的,对要操作的文件location或者启动都好,首先确定自己的文件具有的权限,使用hadoop fs -lsr /查看自己hdfs上所有文件,查看一下自己要操作文件的属性,使用hadoop fs -chmod 777 /你的hdfs文件目录

配置完成后,重新多次格式化namenode,启动start-all.sh,之后jps查看的时候,发现datanode没起来,导致hive启动失败

解决方案:原因是,Namenode和Datanode的NamenodeID不一致,最直接有效的办法就是修改Datanode上的namenodeID(位于/dfs/data/current/VERSION文件中)或修改NameNode的namespaceID(位于/dfs/name/current/VERSION文件中),使其一致。晋心–datanode启动不起来的各种原因

刚刚还能启动hive并且跑mapred的,怎么现在不行了

解决方案:请保持网络连接(:这个zz问题真是太玄妙了!我屮艸芔茻了,这个单机版的还要网络连接什么鬼,但真的是这样!没有网络还启动不了了,可能我配置时候连了ESC上的节点?

方法二:如果还是不行,那就看下节点有没有掉的,使用jps,看下nodemanager,resourcemanager在不在,如果不在,先停掉yarn,使用stop-yarn.sh,然后再start-yarn.sh

最后

目前能想到的就这么多,但是期间各种小问题也算磨人,还有一些问题等我想到或者遇到再补充,希望对大家有所帮助!

致谢

@上述广大网友

@实验室小哥

@时不时耐心的自己哈哈哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hive hadoop macos