【已解决】【大数据综合案例】上| Hive与MongoDB配置

news/2024/12/22 12:00:50/

遇到的问题及解决方法

Hive

报错:sudo: 未知用户;HiveServer2启动失败;端口被占用

导入数据:通过JDBC连接Hive和MySQL,将数据从Hive导入MySQL。通过JDBC连接Hive,需要通过Hive的thrift服务实现跨语言访问Hive,实现thrift服务需要开启hiveserver2。

1. core-site.xml

首先,在Hadoop的配置文件core-site.xml中添加以下配置信息:

<property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value>
</property>
<property><name>hadoop.proxyuser.hadoop.groups</name><value>*</value>
</property>

2. 开启hiveserver2

 然后,开启Hadoop以后,在目录“/usr/local/hive”下,执行以下命令开启hiveserver2,并且设置默认端口为10000。

cd /usr/local/hive
./bin/hive --service hiveserver2 -hiveconf hive.server2.thrift.port=10000

 错误信息 sudo: 未知用户:hive 表明您尝试使用的用户 hive 在您的系统上不存在。在Linux系统中,sudo 命令用于以另一个用户的权限执行命令,但在这种情况下,系统找不到名为 hive 的用户。

以下是解决这个问题的步骤:

1. 创建 hive 用户

如果您的系统中没有 hive 用户,您需要创建一个。您可以使用 useradd 命令来创建用户:

sudo useradd -m hive

这个命令会创建一个新的用户 hive 并且为该用户创建一个主目录。

2. 设置 hive 用户的密码

创建用户后,您可能需要为该用户设置密码,以便能够通过 sudo 命令以该用户身份执行命令:

sudo passwd hive

按照提示输入密码,并确保记住这个密码,因为您可能需要在执行 sudo 命令时使用它。

【密码】hive

3. 配置 sudo 权限

为了让 hive 用户能够无密码使用 sudo,您需要编辑 /etc/sudoers 文件并添加相应的规则。您可以使用 visudo 命令来安全地编辑这个文件:

sudo visudo

visudo 编辑器中,添加以下行:

hive ALL=(ALL) NOPASSWD: ALL

这行规则允许 hive 用户在所有主机上作为所有用户执行所有命令而无需输入密码。

4. 重新尝试启动 HiveServer2

完成上述步骤后,您可以尝试再次以 hive 用户身份启动 HiveServer2:

sudo -u hive /usr/local/hive/bin/hive-service hiveserver2 -hiveconf hive.server2.thrift.port=10000

注意事项

  • 创建新用户和配置 sudo 权限需要管理员权限,因此确保您有足够的权限来执行这些操作。
  • 使用 visudo 编辑 /etc/sudoers 文件时要小心,因为错误的配置可能会导致 sudo 命令无法使用。
  • 如果您不需要为 hive 用户配置无密码 sudo 权限,您可以在执行命令时省略 sudo -u hive 部分,并直接以当前用户身份运行 HiveServer2,但您需要确保当前用户有权限访问和执行 Hive 的相关文件和命令。

3. 启动成功

启动时,当屏幕上出现“Hive Session ID = 6bd1726e-37c5-41fc-93ea-ef7e176b24f2”信息时,会停留较长的时间,需要出现几个“Hive Session ID=...”以后,Hive才会真正启动。启动成功以后,会出现如图所示信息。

4. 查看端口

启动结束后,使用如下命令查看10000号端口是否已经被占用:

sudo netstat -anp|grep 10000

如果显示10000号端口已经被占用(如图所示),则启动成功。

MongoDB

根据以上信息,系统上已经安装了 MongoDB 3.2.17 版本,但是在尝试更新软件包列表时遇到了一些问题。这些问题包括:

  1. MongoDB 3.2 仓库的公钥错误:系统无法验证 MongoDB 3.2 仓库的签名,因为缺少相应的公钥(NO_PUBKEY D68FA50FEA312927)。

  2. MongoDB 4.4 仓库被忽略apt-get update 命令忽略了 MongoDB 4.4 的仓库。

  3. Ubuntu Kylin 仓库连接超时:在尝试连接到 Ubuntu Kylin 仓库时出现了超时错误。

要解决这些问题,按照以下步骤操作:

解决 MongoDB 3.2 公钥错误

由于 MongoDB 3.2 版本已经不再受支持,删除指向该版本的仓库配置,并安装 MongoDB 4.4 或更高版本。

        1.删除 MongoDB 3.2 仓库配置: 编辑 /etc/apt/sources.list.d/ 目录下的 MongoDB 仓库配置文件,注释掉或删除指向 MongoDB 3.2 的行。

具体步骤:

  1. 打开终端。

  2. 使用文本编辑器打开 MongoDB 的仓库配置文件。通常,这个文件可能被命名为 mongodb-org-3.2.list 或者类似的名称。可以使用 nanovim 编辑器,或者你喜欢的任何编辑器。例如,使用 nano 编辑器的命令如下:

    sudo nano /etc/apt/sources.list.d/mongodb-org-3.2.list
  3. 在打开的文件中,您会看到类似下面的行:

    deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse
  4. 要注释掉这一行,使其不被 apt 使用,您需要在行的开头添加一个 # 符号,如下所示:

    # deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse
  5. 保存文件并退出编辑器。如果您使用的是 nano,可以通过按下 Ctrl + X,然后按 Y 确认保存更改,最后按 Enter 键退出。

  6. 一旦您注释掉了 MongoDB 3.2 的仓库配置,运行以下命令来更新您的软件包列表:

    sudo apt-get update

这样,您的系统就不会再尝试从 MongoDB 3.2 的仓库获取软件包了。如果您决定安装 MongoDB 4.4 或更高版本,确保您已经添加了对应版本的仓库配置和 GPG 密钥。

        2.添加 MongoDB 4.4 的 GPG 密钥

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

解决 MongoDB 4.4 仓库被忽略的问题

确保您的 MongoDB 4.4 仓库配置正确,并且没有被注释掉。使用以下命令更新软件包列表:

sudo apt-get update

解决 Ubuntu Kylin 仓库连接超时的问题

  1. 检查网络连接:确保您的网络连接正常。

  2. 更换仓库源:如果问题依旧,您可以尝试更换为其他镜像源,例如阿里云的 Ubuntu 镜像源。

  3. 暂时忽略 Ubuntu Kylin 仓库:如果 Ubuntu Kylin 仓库对您不是必需的,您可以暂时忽略它。

安装或升级 MongoDB

如果更新成功,现在可以安装或升级到 MongoDB 4.4:

sudo apt-get install -y mongodb-org

如果在执行这些步骤时遇到任何问题,或者 apt-get update 仍然报告错误,那么可能是由于网络问题或者 MongoDB 仓库的配置问题。在这种情况下,您可能需要检查您的网络连接,或者尝试使用其他镜像源。如果问题依旧存在,您可能需要联系您的网络服务提供商或寻求专业的网络技术支持。


http://www.ppmy.cn/news/1557181.html

相关文章

基于“2+1 链动模式商城小程序”的微商服务营销策略探究

摘要&#xff1a;本文探讨在竞争激烈的市场经济与移动互联网时代背景下&#xff0c;微商面临的机遇与挑战。着重分析“21 链动模式商城小程序”如何助力微商改变思路&#xff0c;通过重视服务、提升服务质量&#xff0c;以服务营销放大利润&#xff0c;实现从传统微商模式向更具…

云消息队列 MQTT 版:物联网通信的基础设施

在物联网&#xff08;IoT&#xff09;技术日新月异的今天&#xff0c;设备之间的通信需求逐渐增大&#xff0c;尤其是在需要高效、实时数据交换的应用场景中&#xff0c;如何确保设备与设备、设备与平台之间的无缝对接与信息流通&#xff0c;成为了行业发展的关键。为了适应这些…

GhostRace: Exploiting and Mitigating Speculative Race Conditions-记录

文章目录 论文背景Spectre-PHT&#xff08;Transient Execution &#xff09;Concurrency BugsSRC/SCUAF和实验条件 流程Creating an Unbounded UAF WindowCrafting Speculative Race ConditionsExploiting Speculative Race Conditions poc修复flush and reload 论文 https:/…

uniapp音频类

功能&#xff1a; 1.可以设置固定地时间间隔播放循环 export default {audio: null,playInterval: 0, // 播放间隔时间&#xff08;毫秒&#xff09;time: null,init(src, options) {let that this;that.playInterval options.playInterval ?? 5000return new Promise((re…

汇编DOSBox 如何使文件可以运行

1.在vscode编写&#xff08;其他也可以&#xff09;如何在vscode中编写汇编语言并在终端进行调试(保姆级别&#xff09;_如何在vscode编译asm-CSDN博客 2.点击ML615中的DOS 2.1在命令行中输入命令 ml 文件名.asm ml 文件名.obj 2.2 将生成的exe文件移动到Assembly里面 这个文件…

对uniApp 组件 picker-view 的二次封装,实现日期,时间、自定义数据滚动选择,容易扩展

在开发过程中根据业务需求&#xff0c;对unaipp的picker-view 组件进行了一些封装&#xff0c;目前封装&#xff1a;实现日期&#xff0c;时间、自定义数据滚动选择。 开发的朋友感兴趣可以看看&#xff0c;可以根据你们的需要&#xff0c;可以对封装的组件增加功能配置&#…

在Windows11上编译C#的实现Mono的步骤

在Windows11上编译Mono的步骤 1、 在win11打开开发者模式,在更新和安全选项里,如下图: 2、下载并安装64位的cygwin, 下载网站:www.cygwin.com 3、 安装 Visual Studio 2015 or later 的社区版本。 4、 下载Mono的windows最新版本。 5、 在cmd.exe里运行下面的命令来安…

centos怎么安装haproxy

在CentOS上安装HAProxy的步骤如下&#xff1a; 添加HAProxy的官方仓库&#xff1a; HAProxy提供了一个官方的RPM仓库&#xff0c;可以通过添加这个仓库来安装最新版本的HAProxy。首先&#xff0c;你需要下载仓库的公钥并添加仓库&#xff1a; sudo rpm --import https://haprox…