我一直在尝试设置apache套件的本地单个大数据节点。我成功地建立了hadoop,hdfs和yarn运行良好。然而,在过去的几个小时里,我一直在努力把Hive弄起来,并没有任何运气。当我说“hive—services hiveserver2”时,在打印出几行之后,它挂起了。我检查了10000端口是否有人监听,但没有。下面是命令“hive--services hiveserver2”的输出
2019-07-27 17:55:54: Starting HiveServer2
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/particle/apache-hive-2.3.5-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/particle/hadoop-2.9.2/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
由于hive-site.xml很大,我无法在这里通过它,但是如果您怀疑有任何属性,请告诉我,我会将它粘贴到这里。我是从tarball而不是maven安装Hive的。
我想所有这些都与这里提到的slf4j绑定冲突有关,但我不知道处理它所需的步骤。我们将非常感激你的帮助。
1条答案
按热度按时间nzk0hqpo1#
我试过很多次让Hive通过焦油球和maven装置工作。不管怎样,这都没有发生。
这就是我如何让Hive工作的(2019年8月3日)。
首先,我下载了最新的hive.tar.gz文件(从今天起是3.1.1)。下载之后,我确保在~/.bashrc文件中设置了以下内容。请注意,java版本是1.8,hadoop版本是2.9.2。不确定版本是否重要,但这些设置对我很有用。
之后,我获取了~/.bashrc文件(如下所示)。
在继续进行之前,我确保dfs和yarn正在运行。如果没有,请从$hadoop\u home/sbin/start-dfs.sh和$hadoop\u home/sbin/start-yarn.sh开始。与jps确认namenode、secondarynamenode、datanode、resourcemanager和nodemanager正在运行。
然后我创建了几个目录并设置了所有权。有些目录可能已经存在,所以不要担心。
之后,我通过键入以下命令初始化了derbydb。不确定这是否必要,但无论如何都做了。
之后,我创建了一个名为“hive site.xml”的文件,并将其放在$hive\u home/conf中。确保你做了适当的改变。下面我们将要做的是设置使用mysql作为配置单元的db。
之后我安装了mysql客户端和服务器。因为我使用的是ubuntu,所以我的命令很简单,如下所示。此步骤将根据您的操作系统而改变。
之后,我下载了驱动程序,需要使Hive工作。我用了这个链接(https://dev.mysql.com/downloads/connector/j/5.1.html)但这可能因您使用的mysql版本而异。一旦解压/解压它,就会在解压/解压文件夹中看到两个(或更多)的.jar文件。我在$hive\u home/lib中复制了这两个(或全部)文件(.jar文件)。
之后我登录了mysql。由于在安装时没有设置现有密码,因此必须使用以下命令。如果您已经有root/admin登录名和密码,那么您可以跳过前三行。请先确保您已更改到以下目录“$hive\u home/scripts/metastore/upgrade/mysql/”。
现在我有了一个mysql帐户,它与hive-site.xml中的设置相匹配。我用上面创建的用户名和密码登录到mysql,并输入以下命令,一次一个。
进入mysql shell后,一次一行地键入下面的行。
然后我在bashshell中键入以下命令。很多警告都来了。
最后我去了魔法司令部。
在发出了很多警告之后,我进入了等待的命令提示符。下面是结果。还有很多警告,但我会暂时接受。过去三天我一直在找这个。