由于工作中的具体需求,笔者需在Windows系统上搭建一个Hadoop集群去运行C++程序。之前折腾了好久,包括尝试在Windows系统上手动编译hadoop源码并部署。然而,虽然编译成功,并搭建了一个伪分布模式的集群,但发现搭建全分布模式的集群会遇到很多困难(编译本身就遇到了一些困难,虽然此次编译没有应用到笔者工作中,但笔者会在另一篇博客写出编译的流程以方便其他有需求的开发人员使用)。最后发现了Hortonworks公司的一个Windows系统上的Hadoop发行版(hdp),经过一番尝试后成功部署。现把部署流程写出,供更多的开发人员参考。仅写出了各部署环节及一些注意事项, 更详细的内容请参考Hortonworks的官方文档http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.4.2-Win/bk_HDP_Install_Win/content/index.html。
以下内容若无特殊说明,针对的对象是集群中每台机器。
一、操作系统和hdp版本
Windows 10专业版(64位),hdp-2.4.0.0(
http://hortonworks.com/downloads/#data-platform)
二、准备工作
1、设置首选IPv4
单击网络和共享中心-本地连接-属性,清除Internet协议版本6(TCP/IPv6)复选框,确定。
2、使
能远程PowerShell脚本功能
以下命令需要管理员账户设有密码。
以管理员身份运行Windows PowerShell,输入
Set-ExecutionPolicy "RemoteSigned"
Enable-PSRemoting
Set-item WSMan:\localhost\Client\allowunencrypted $true
Set-item wsman:localhost\client\trustedhosts -value "host1,host2,host3"
winrm s winrm/config/client '@{TrustedHosts="host1,host2,host3"}'
3、关闭防火墙
在控制面板中,单击系统和安全-Windows 防火墙-自定义设置,关闭专用网络和公用网络的防火墙。
三、安装软件依赖
1、安装Python 2.7或更高版本
手动安装在C盘上,安装路径上不能含有空格,例如C:\Python;设置环境变量(Path中加入python路径)。
2、安装jdk 1.7
手动安装在C盘上,安装路径上不能含有空格,例如C:\Java\jdk、C:\Java\jre;设置环境变量(Path中加入java路径;JAVA_HOME,指向jdk文件夹)。
3、安装Microsoft Visual C++ 2010
如果已安装高于2010的版本, 安装一个Microsoft Visual C++ 2010 可再发行组件包(
https://www.microsoft.com/en-US/download/details.aspx?id=14632)即可。
4、安装Microsoft .NET 4.5或4.5.1
四、安装集群
以管理员身份运行cmd,进入安装包中hdp-2.4.0.0.winpkg.msi所在目录,输入以下命令打开安装界面msiexec /i hdp-2.4.0.0.winpkg.msi MSIUSEREALADMINDETECTION=1
进行合适配置或导入配置文件后,点击install进行安装。注意,集群中每台机器的各安装目录(HDP directory, Log directory, Data directory等)须保持一致。
五、启动集群
启动前需注意,如果机器的DNS不支持反向查询,须在hdfs-site.xml(hdp\hadoop-2.7.1.2.4.0.0-169\etc\hadoop目录下)中添加以下配置进行关闭。
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
集群的启动和关闭都要以hadoop用户进行。集群安装结束后,桌面上会生成一个Hadoop Command Line快捷方式。双击以打开cmd,然后以hadoop用户运行cmd
runas /user:hadoop cmd
提示输入密码,输入安装集群时设置的密码。
六、关闭集群
先关闭各slave,再关闭master,关闭脚本都是stop_local_hdp_services.cmd。