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

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://

具体表现样式:

解决:MacOS下配置Hadoop及Hive单机遇到的问题(们)_第1张图片
这里写图片描述

解决方案:这是内存配置的问题,具体解决方案请看@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启动不起来的各种原因


最后

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


致谢

@上述广大网友
@实验室小哥
@时不时耐心的自己哈哈哈

你可能感兴趣的:(解决:MacOS下配置Hadoop及Hive单机遇到的问题(们))