最近因为工作需要把之前在centos上跑的集群,切到windows平台上,后来发现hortonworks在2013年就出了第一个wndows的版本,但是在windows上安装的资料太少光看官方安装文档还是有些吃力。前前后后花了一周的时间才建好,其中安装前的环境准备都花了4天半,真正安装也就半天时间。
下面我把安装过程详细列出,大家要可以参考我的安装,有问题加我QQ:57871367讨论,不再费话开始正文。
配置前先把防火墙关掉,平台我选的是windows2008 R2你也可以选windows2012,其它版本的windows不支持。
一,让powershell能远程执行(关键)
powershell 服务安装步骤
管理员进入cmd
1,winrm service 默认都是未启用的状态,先查看状态;如无返回信息,则是没有启动;
winrm enumerate winrm/config/listener
2,针对winrm service 进行基础配置:
winrm quickconfig
3.查看winrm service listener:
winrm e winrm/config/listener
4.为winrm service 配置auth:
winrm set winrm/config/service/auth @{Basic="true"}
5.为winrm service 配置加密方式为允许非加密:
winrm set winrm/config/service @{AllowUnencrypted="true"}
6.至此,winrm service 已经启用,可以正常使用;
配置完成后执行:
Set-ExecutionPolicy "RemoteSigned"
Enable-PSremoting -force
Set-item WSMan:\localhost\Client\allowunencrypted $true
无密码执行远程脚本的还需要执行(*是信任所有节点)
winrm set winrm/config/client '@{TrustedHosts="*"}'
最后在每台节点执行
Invoke-Command -ComputerName 机器名或ip -ScriptBlock { hostname }能显示远程主机名
或者执行
Copy-Item -Path "c:\test.txt" -Destination \\192.168.1.163\C$\ 能将本地文件拷到远程主机c盘下
client端
1,将远程主机加入信任列表
Set-item wsman:localhost\client\trustedhosts -value *
如果需要连接远程计算机IP,则需要将远程IP加入到发出远程连接的计算机的trustedhosts中,如果是 * 则不需要再更改
Set-item wsman:localhost\client\trustedhosts –value 192.168.129.161,win2012.testj.com
2,在通过IP连接远程计算机时,必须显示提供凭据,即使要使用当前凭据也如此,如下:
Enter-PSSession 192.168.129.163 -Credential Administrator
二,NTP
服务端:
默认情况下,独立服务器WINDOWS SERVER 2008是作为NTP客户端工作的 ,所以必须通过修改注册表,以使系统作为NTP服务器运行。工作之前请先备份注册表文件。
1.修改以下选项的键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer内的[Enabled]设定为1。
打开NTP服务器功能(默认是不开启NTP Server服务,除非电脑升级成为域控制站)。
2.修改以下键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags设定为5.
该设定强制主机将它自身宣布为可靠的时间源,从而使用内置的互补金属氧化物半导体 (CMOS) 时钟。如果要采用外面的时间服务器就用默认的a值即可.
3.修改以下键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type内的[Type]设定为NTP。
4.重启Win32Time服务:先关闭 windows time 服务,再开启该服务。可以在“管理工具”的“服务”界面下完成,也可以以 DOS 方式输入“net stop w32time”、“net start w32time”。
至此,已完成服务器端设定.
客户端:
客户端的设定更改注册表即可
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
SpecialPollInterval 值修改成十进制43200 (单位为秒,43200为12小时)
SpecialPollTimeRemaining 值修改成[时间同步服务器],0 如:192.168.1.1,0
客户端设置完成.
注意:windows2008在未激活时ntp既然配置好也无法使用.
三,powershell安装4个必须有的软件
-------------init---------------
setx WORKSPACE "c:\workspace" /m
restart PowerShell
----------python----------------
$key = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment”
$currentPath = (Get-ItemProperty -Path $key -name Path).Path + ';'
$pythonDir = "c:\Python\"
msiexec /qn /norestart /l* $env:WORKSPACE\python_install.log /i $env:WORKSPACE\python-2_7_8_amd64.msi TARGETDIR=$pythonDir ALLUSERS=1
setx PATH "$currentPath$pythonDir" /m
-------------------net framework-----------------
& "$env:WORKSPACE\dotNetFx40_Full_setup.exe" /q /norestart /log "$env:WORKSPACE\NET-install_log.htm"
-------------------jdk--------------
$key = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment”
$currentPath =(Get-ItemProperty -Path $key -name Path).Path + ';'
$javaDir = "c:\java"
&"$env:WORKSPACE\jdk-7u51-windows-x64.exe" /qn /norestart /log "$env:WORKSPACE\jdk-install.log" INSTALLDIR="c:\java" ALLUSERS=1
setx JAVA_HOME "$javaDir" /m
setx PATH "$currentPath$javaDir\bin" /m
--------------------------------vc2010 runtime----------
& "$env:WORKSPACE\vcredist_x64.exe" /q /norestart /log "$env:WORKSPACE\ C_2010_install.log"
四,安装配置
参考官方手册2.7节最后Sample Cluster Properties File
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0-Win/bk_HDP_Install_Win/content/ref-7a45a9ae-7f31-4756-be23-480dadaad613.1.html
五,正式安装采用命令行
msiexec /qn /lv hdp2.log /i C:\hdp-2.3.0.0\hdp-2.3.0.0.winpkg.msi MSIUSEREALADMINDETECTION=1 HDP_LAYOUT=C:\config\clusterproperties.txt HDP_USER_PASSWORD=Afis100 HDP_DIR=C:\hdp\hadoop DESTROY_DATA=no HDP=YES FLUME=NO HBASE=YES KNOX=NO FALCON=NO STORM=NO RANGER=NO SPARK=YES