Sem*_*ape 0 ssh hadoop virtualbox centos windows-7-x64
我花了几周时间尝试解决构建Hadoop的不同错误.SO有助于指出我偶尔会遇到问题的答案,但经过大量的搜索后,我无法完成整个过程.
所有这一切开始已经有几周了,所以我忘记了大部分明确的错误信息,但是我已经包含了一些问题
今天我终于让Hadoop从git repo源构建,并希望记录面向类似问题的SO社区成员的流程.
对于那些试图从源代码构建Hadoop的人来说,这就是我从源代码编译所有内容的方法.
一些关于配置的说明:
如何从没有错误的源代码构建Hadoop
初步下载:您需要在开始之前下载以下内容.
这个步骤包括4个阶段
阶段1 - 为VirtualBox创建CentOS设备
首先打开VirtualBox,然后单击左上角的"新建"按钮.这将打开一个新窗口,询问有关您要创建的虚拟机设备的一些信息.

按照VM创建向导中的其余提示进行操作.我从"内存大小"段落(我使用4096 MB)和"文件位置和大小"段落(我使用128 GB)的默认值中改变了.如果您的系统可以支持,我建议您也这样做.保留所有其他默认值
创建后,VM将显示在VirtualBox窗口的左侧窗格中.


出现提示时,在VM引导后,选择"安装CentOS 7"(这不是默认设置,您必须按"向上"箭头)并按"Enter".加载安装程序时,首先要问你的是键盘布局.我保留默认值,只需点击右下角的"继续"按钮即可.这将打开"安装摘要"页面,您需要在该页面上对2个区域进行更改:"安装目标"和"网络和主机名"


返回"安装摘要"页面, - 单击"网络和主机名" - 在此菜单屏幕中,单击右侧的切换开关打开以太网网络. - 点击左上角的"完成".

完成这两项修改后,您可以单击右下角的"开始安装"按钮.当iso安装到您的系统时,您应该花时间提供root密码
我添加了密码,但我没有费心添加任何非root用户.
安装完所有内容后,单击屏幕右下方显示的"重新启动"按钮.

系统重新启动后,选择CentOS 7并允许它启动.通过以root身份登录来检查您的凭据,然后通过单击窗口右上角的红色X按钮关闭CentOS VM,并在出现提示时选择"关闭计算机电源".
这完成了第1阶段
你现在应该只关注VirtualBox
阶段2 - 向VM添加SSH功能以支持下载传输

这将打开另一个窗口,您可以在其中设置端口转发规则.
Name = ssh,主机端口= 2222,Guest端口= 22

有了这个规则,您现在应该能够从Windows主机ssh到端口2222上的CentOS Guest,并避免以下错误:
ssh:连接到主机localhost端口22:连接被拒绝
您现在应该再次查看VirtualBox.
yum –y install openssh-server openssh-client
此命令将在CentOS VM上安装ssh服务器.安装完成后,通过键入以下命令确认ssh服务器正在运行.
ps –aux | grep sshd
此命令应返回显示sshd(ssh守护程序)的2个进程.一个是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.
请注意,您需要最后设置"文件协议".如果不这样做,当你输入一个它不期望的"端口号"时,它会试图超越你.输入所有值时.单击"登录"按钮并接受/单击"更新"或"确定"以获取任何安全警告.

登录后,在主机和VM Guest之间移动文件以确认一切正常.
虽然我不会在这里关注它,但我们也可以将Cygwin连接到VM,它对于诊断连接问题很有用.您需要输入以获取详细诊断输出的命令是
ssh –vvv –p 2222 root@localhost
这完成了第2阶段
阶段3 - 安装构建Hadoop所需的实用程序和依赖项
我们的CentOS发行版真的是"准系统",所以我们需要安装构建Hadoop所需的一切.我们将通过在Windows中下载大多数内容然后通过WinSCP将它们移动到VM来完成此操作.
在开始之前,我们需要通过在CentOS命令行发出以下命令,将"downloads"目录添加到CentOS VM上root用户的主目录中.
mkdir ~/downloads/
我们现在可以开始下载Hadoop依赖项了.我们将所有内容下载到Windows,然后使用WinSCP将其移至VM.
首先从http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载Java 7 JDK
忽略页面顶部的"公共更新结束"错误消息.Java 7是Apache推荐的.
您想下载jdk-7u79-linux-x64.rpm文件
下载后,使用WinSCP导航到主机的下载目录和新创建的访客VM的"下载"目录(您可能需要单击WinSCP窗格的VM侧的刷新图标以查看目录).将jdk文件从主机拖放到VM Guest.

现在我们只需要在CentOS VM上安装JDK.从CentOS命令行将目录更改为我们在root的home下创建的"downloads"文件夹,一旦在"downloads"目录中使用rpm安装java 7.
cd ~/downloads
rpm –ihv jdk-7u79-linux-x64.rpm
安装完成后,您可以通过键入进行验证
java –version
这将产生输出,说明您已安装Java Run Time Environment.
接下来,我们将安装Hadoop成功构建所需的一部分软件包.该列表直接来自Apache网站:https://wiki.apache.org/hadoop/HowToContribute,我们需要在命令行输入以检索它们的命令是:
yum -y install lzo-devel zlib-devel gcc autoconf automake libtool openssl-devel fuse-devel
接下来我们将安装Apache的Maven.你可以在这里下载:https:
//archive.apache.org/dist/maven/binaries/
Apache的网站说你可以使用版本3+.我使用的是3.2.2版,所以请下载此文件:
Apache的行家-3.2.2-bin.tar.gz
下载文件后,使用WinSCP将其从主机移动到Guest VM的"downloads"文件夹,就像使用JDK文件一样.然后我们将文件解压缩到/ usr/local /目录中,并在/ usr/local /目录中创建一个符号链接,该链接指向具有以下三个命令的maven文件夹.
tar xzf apache-maven-3.2.2-bin.tar.gz -C /usr/local
cd /usr/local
ln -s apache-maven-3.2.2 maven
我们现在需要将Maven的bin目录添加到$ PATH变量中.我们通过编辑root的主目录中的.bashrc文件来实现.使用以下命令打开文件以在vi中进行编辑
vi ~/.bashrc
这将在vi编辑器中显示bash文件(如果需要,可以在此处找到有关vi的教程:http://www.unix-manuals.com/tutorials/vi/vi-in-10-1. html)按照这些说明正确更新文件.
现在退出CentOS.重新登录CentOS,并检查以确保使用以下命令正确设置新的PATH变量.
exit
<log back in as root>
mvn –version
您应该看到指示maven当前已安装的输出

接下来我们需要为gcc安装C++支持.我们使用以下一行命令执行此操作
yum –y install gcc-c++.x86_64
接下来我们需要安装git,以便我们可以下载Hadoop源代码.
yum –y install git
一旦你有了git.继续下载Hadoop源代码.在我们构建源代码之前还需要做一件事(ProtocolBuffer),但是在下载ProtocolBuffer之前我们需要在repo中看到BUILDING.txt文件以确保我们获得正确的版本.
要获取Hadoop源,我们运行git clone命令.只需从CentOS命令行执行以下命令即可下载Hadoop存储库.
cd /usr/local
git clone git://git.apache.org/hadoop.git
克隆操作将在/ usr/local目录中放置一个"hadoop"目录.当操作完成并返回命令提示符后,使用以下命令查看新hadoop目录中的BUILDING.txt文件:
less /usr/local/hadoop/BUILDING.txt
在文件的"要求"部分中,它说明了Hadoop正确构建所需的ProtocolBuffer版本.在这种情况下,它是ProtocolBuffer 2.5.0.有了这些信息,我们回到命令提示符,按"q"退出.

现在我们终于可以安装Hadoop需要的最后一件事:ProtocolBuffer.要获得正确版本的ProtocolBuffer,我们访问ProtocolBuffer发布页面:
https://github.com/google/protobuf/releases
然后向下滚动,直到我们看到Hadoop编译所需的版本.在本演练中,您要下载以下文件.
protobuf的-2.5.0.tar.gz
下载完成后,使用WinSCP并将其传输到VM的"downloads"文件夹,就像之前为其他下载一样.一旦文件位于VM的"downloads"文件夹中,请发出以下命令在CentOS上安装ProtocolBuffer
cd ~/downloads
tar xzf protobuf-2.5.0.tar.gz -C /usr/local
cd /usr/local/protobuf-2.5.0
./configure
'使"
make install
完成此操作后,将安装构建Hadoop所需的所有必备实用程序和依赖项.
这完成了第3阶段
第4阶段 - 构建没有错误的Hadoop
转到Hadoop目录,然后使用以下命令运行Maven跳过测试:
cd /usr/local/hadoop
mvn clean install -DskipTests
现在构建应该没有任何问题,当一切都完成后,你应该看到如下所示的屏幕.

这样就完成了漫游
我希望你们中的一些人觉得有帮助.