如何从源代码构建hadoop而不出错

lp0sw83n  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(453)

我花了几个星期的时间试图解决构建hadoop时的不同错误。所以,他帮我找到了一个偶然问题的答案,但在这里搜索了这么多之后,我始终没能找到整个问题的答案。
从这一切开始到现在已经有几个星期了,所以我已经忘记了大部分明确的错误信息,但是我已经包括了一些问题
protobuff版本错误
ssh连接不工作
生成期间出现错误异常
使用的java版本不正确
c++健全性检查失败
一大堆对我来说毫无意义的废话,我无法解释这些废话的根本原因
今天我终于让hadoop从gitrepo源代码开始构建,并希望为面临类似问题的so社区成员记录这个过程。
对于那些试图从源代码构建hadoop的人,下面是我如何从源代码编译所有东西的。
配置注意事项:
我正在虚拟环境中安装hadoop,在我的例子中是virtualbox。
主机运行windows 7 x64
访客虚拟机运行centos 7 x64
我的目标是最低限度的安装

bwleehnv

bwleehnv1#

如何从源代码无错误地构建hadoop
初步下载:开始前需要下载以下内容。
虚拟盒(我使用的版本是4.3.16 r95972,这里有:旧的vb版本)
centos 7最小iso文件来自-http://www.centos.org/download/
winscp(版本5.7.4)-https://winscp.net/eng/download.php
本演练包括4个阶段
在virtualbox中创建支持构建hadoop的centos设备
向设备添加ssh功能,以便下载的前提条件可以从主机scp'ed到访客vm
安装构建hadoop所需的所有东西(实用程序和依赖项)
无错误构建hadoop
阶段1-为virtualbox创建centos设备
首先打开virtualbox并单击左上角的“新建”按钮。这将打开一个新窗口,询问有关要创建的虚拟机设备的一些信息。
将其命名为“centos x64–hadoop base”
选择linux作为操作系统的“类型”
选择redhat(64位)作为“版本”
单击“下一步”

按照vm创建向导中的其余提示操作。我唯一改变的地方是默认的“内存大小”通道(我使用了4096MB)和“文件位置和大小”通道(我使用了128GB)。如果你的系统能支持的话,我鼓励你也这么做。别管其他所有的默认值
在vm创建向导的最后一段中单击“create”
一旦创建,vm将显示在virtualbox窗口的左侧窗格中。

双击刚刚创建的vm,等待对话框出现,询问您要使用的iso文件。
当对话框出现时,单击右侧的文件夹图标,并导航到/选择在初步步骤中下载的“centos minimal iso”。
在下拉框中列出iso后,单击“开始”

当出现提示时,在vm引导后,选择“install centos 7”(这不是默认设置,您必须按“up”箭头)并按“enter”。当安装程序加载时,它会首先询问您键盘布局。我保留默认设置,只需单击右下角的“继续”按钮。这将打开安装摘要页面,您需要在该页面上更改两个区域:“安装目标”和“网络和主机名”

单击“安装目标”
双击虚拟磁盘(确保背景为蓝色并且复选标记在那里)
单击“完成”返回“安装摘要”页面。

回到安装摘要页,-点击“网络和主机名”-在这个菜单屏幕上点击右边的切换开关打开以太网网络。-单击左上角的“完成”。

完成这两个修改后,您可以单击右下角的“开始安装”按钮。当iso安装到您的系统中时,您应该花时间通过
点击页面左上角的那个选项
填写它带来的表格
单击“完成”(如果您选择的密码被认为是弱密码,则必须双击“完成”才能接受)。
我添加了一个密码,但没有添加任何非root用户。
安装完所有内容后,单击屏幕右下角的“重新启动”按钮。

一旦系统重新启动,选择centos 7并允许其启动。以root用户身份登录以检查您的凭据,然后单击窗口右上角的红色x按钮并在提示时选择“关闭计算机电源”,关闭centos vm。
这就完成了第一阶段
你现在应该看看virtualbox
阶段2-向vm添加ssh功能以支持下载传输
首先单击centos设备,打开该设备的设置
接下来,单击virtualbox主菜单左上角的“设置”按钮。这将打开一个新窗口。
在新窗口的左侧窗格中,单击“网络”,将显示一组适配器选项卡。
现在点击标签“高级”左边的三角形。
这将显示一系列选项,但您需要单击的是标记为“端口转发”的按钮

这将打开另一个窗口,您可以在其中设置端口转发规则。
单击右上角的绿色加号。这将生成一行,您可以在其中输入端口转发规则。
将以下规则添加到行
名称=ssh,主机端口=2222,访客端口=22
单击端口转发窗口上的“确定”按钮
单击设备设置窗口上的“确定”按钮。

有了此规则,您现在应该能够通过ssh从windows主机连接到端口2222上的centos访客,并避免以下错误:
ssh:连接到主机localhost端口22:连接被拒绝
你现在应该再看看virtualbox了。
启动centos vm设备并以root用户身份登录。
登录后,从命令提示符执行以下行。 yum –y install openssh-server openssh-client 此命令将在centos vm上安装ssh服务器。安装之后,通过键入以下命令确认ssh服务器正在运行。 ps –aux | grep sshd 这个命令应该返回2个进程,显示sshd(ssh守护进程)。一个是grep命令本身。另一个是在后台运行的服务器。
现在我们需要确保ssh确实生成了与winscp通信所需的密钥。发出以下命令并确保所有键的字节大小值都不是零。 ls -l /etc/ssh
如果密钥的大小为0字节,则需要删除它们,重新启动sshd守护进程,并验证密钥是否在sshd重新启动时重新生成。为此,请执行以下命令 rm –rf /etc/ssh/ssh*key* systemctl restart sshd ls -l /etc/ssh 此过程将有助于避免意外的“连接被127.0.0.1关闭”错误。
现在我们有了一个ssh守护进程并生成了密钥,我们将测试连接。首先打开winscp。在弹出的“开始”菜单中输入以下值。
主机名=localhost,端口号=2222,用户名=root,密码=,文件协议=scp。
注意,您需要最后设置“文件协议”。如果您不这样做,当您输入一个它不期望的“端口号”时,它将试图超过您。输入所有值时。单击“登录”按钮并接受/单击“更新”或“确定”以查看您收到的任何安全警告。

登录后,在主机和vmguest之间移动一个文件,以确认一切正常。
虽然我在这里不着重讨论它,但是您也可以使用cygwin连接到vm,这对于诊断连接问题非常有用。要获得详细的诊断输出,需要输入的命令是 ssh –vvv –p 2222 root@localhost 这就完成了第2阶段
阶段3-安装构建hadoop所需的实用程序和依赖项
我们的centos发行版实际上是“赤裸裸的”,因此我们需要安装构建hadoop所需的一切。我们将在windows中下载大部分内容,然后通过winscp将它们移到vm中。
在开始之前,我们需要在centos命令行发出以下命令,将“downloads”目录添加到centos vm上根用户的主目录中。 mkdir ~/downloads/ 我们现在可以开始下载hadoop依赖项了。我们将把所有内容下载到windows,然后使用winscp将其移动到vm。
从下载java 7 jdk开始-http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
忽略页面顶部的“公共更新结束”错误消息。Java7是apache推荐的。
您想下载jdk-7u79-linux-x64.rpm文件
下载后,使用winscp导航到主机的下载目录和访客vm的新创建的“下载”目录(您可能需要单击winscp窗格vm侧的刷新图标以查看目录)。将jdk文件从主机拖放到vm客户机。

现在我们只需要在centos vm上安装jdk。从centos命令行将您的目录更改为我们在root's home下创建的“downloads”文件夹,在“downloads”目录中使用rpm安装java7。
cd ~/downloads rpm –ihv jdk-7u79-linux-x64.rpm 安装完成后,可以通过键入 java –version 它将生成一个输出,说明您已经安装了java运行时环境。
接下来,我们将安装hadoop成功构建所需的包的子集。该列表直接来自apache网站:https://wiki.apache.org/hadoop/howtocontribute 我们需要的命令

相关问题