hadoop集群搭建-Windows (hadoop cluster on Windows)

来源:互联网 发布:图片转pdf软件 编辑:程序博客网 时间:2024/05/22 05:17

Hortonwork公司推出了能在 windows平台上运行的大数据处理平台:HDP for Windows ,可以使得hadoop集群运行在 windows(windows server 2008 R2, windows server 2012)上。 本文使用HDP 1.1 for Windows和Windows server 2008R2来搭建hadoop集群。

所需软硬件环境:

 1)Windows Server 2008 R2 64bit 或者 windows server 2012 64bit。
 2)JDK6u30以上版本。
 3)python2.7或以上版本。
 4)Microsoft.NET framework 4.0或以上版本。
 5)Microsoft Visual C++ 2010 Redistributable Package (64 bit)。
可以用若干台机器来安装,也可以用一台机器借助虚拟化软件建多台虚拟机安装。
HDP 1.1 for Windows 下载地址:  http://hortonworks.com/products/releases/hortonworks-data-platform-1-1-for-windows/#install
windows Server 2008 R2下载地址:  http://www.microsoft.com/en-us/download/details.aspx?id=11093  ,可以试用 180 天。也可以下载iso 文件以虚拟机(Oracle virtualbox 或者 vmware )安装(每个虚拟机 2G或 2G以上内存)。

1. 搭建一个单节点集群 :

    1.1 下载并安装windows server 2008 R2
    1.2 下载并安装 Microsoft Visual C++ 2010 Redistributable Package (64 bit) , 文件名:vcredist_x64.exe, 下载地址 : http://www.microsoft.com/en-us/download/details.aspx?id=14632
    1.3 下载并安装Microsoft.NET framework 4.0 , 文件名:dotNetFx40_Full_setup.exe, 下载地址 :http://www.microsoft.com/en-us/download/confirmation.aspx?id=17851
    1.4 下载并安装jdk6u30以上版本(安装路径不要含有空格) ,设置 JAVA_HOME环境变量,并将%JAVA_HOME%\bin加入PATH系统环境变量. 验证:运行java -version命令
    1.5 下载并安装python2.7或以上版本(安装路径不要含有空格),并把安装路径加入PATH系统环境变量. 验证:运行python命令
    1.6 下载HDP 1.1 for Windows并解压
    1.7 关闭windows server 防火墙或者放开 hadoop所用端口号。控制面板-》 系统与安全-》  Windows防火墙-》 打开或者关闭windows防火墙。
    1.8 关闭ipv6支持。 控制面板-》 网络与Internet-》  网络与共享中心-》  本地连接-》  属性-》  激灭TCP/IPv6选项。
    1.9 使能远程脚本功能:  
      确保 Administrator用户有密码保护
      以Administrator权限运行 Windows PowerShell, 在PowerShell中依次执行下列命令(用用户名为Administrator的本地管理员登陆):

   Set-ExecutionPolicy "AllSigned"   Enable-PSRemoting   Set-item wsman:localhost\client\trustedhosts -value "localhost"   winrm quickconfig   winrm set winrm/config/client '@{TrustedHosts="localhost"}'
   然后切回到当前用户
  1.10 创建一个文件名为clusterproperties.txt  并放在 c:\config\目录下, 内容如下:
    #Log directory    HDP_LOG_DIR=c:\hadoop\logs    #Data directory    HDP_DATA_DIR=c:\hdp\data    #Hosts (Roles for the host machines in your cluster)    NAMENODE_HOST=localhost    SECONDARY_NAMENODE_HOST=localhost    JOBTRACKER_HOST=localhost    HIVE_SERVER_HOST=localhost    OOZIE_SERVER_HOST=localhost    TEMPLETON_HOST=localhost    SLAVE_HOSTS=localhost    #Database host    DB_FLAVOR=derby    DB_HOSTNAME=localhost    #Hive properties    HIVE_DB_NAME=hive    HIVE_DB_USERNAME=hive    HIVE_DB_PASSWORD=hive    #Oozie properties    OOZIE_DB_NAME=oozie    OOZIE_DB_USERNAME=oozie    OOZIE_DB_PASSWORD=oozie

  1.11 在解压后的HDP1.1 for windows目录下,以管理员权限执行(run as administrator)  
msiexec /i "hdp-1.1.0-GA.winpkg.msi" /lv "hdp.log" HDP_LAYOUT="C:\config\clusterproperties.txt" HDP_DIR="C:\hdp\hadoop" DESTROY_DATA="no"
  1.12 安装完成后,到HDP_DIR (c:\hdp\hadoop)以管理员权限执行下列命令来启动hadoop:
  start_local_hdp_services.cmd
  1.13 验证安装成功,到HDP_DIR (c:\hdp\hadoop)执行
    Run-SmokeTests.cmd
    再到http://localhost:50070/dfshealth.jsp-> 点击Browse the filesystem->user/username 可以看到生成的文件 ;到http://localhost:50030/jobtracker.jsp 可以看到hadoop job

   1.14 如果要停止hadoop,到HDP_DIR (c:\hdp\hadoop)以管理员权限执行:

  stop_local_hdp_services.cmd

  如果要 卸载hadoop 集群,到hdp-1.1.0-GA.winpkg.msi所在目录以管理员权限执行: msiexec /x "hdp-1.1.0-GA.winpkg.msi" /lv "hdp.log" DESTROY_DATA="yes"

2. 搭建2个节点的HDP hadoop集群:
如果是在虚拟机(virtualbox/vmware)上建此集群,应该将每个节点的网络设置改为host-only,以保证各个节点互通。
假设两个节点的主机名分别是s1,s2; s1做master(namenode+jobtracker)并兼slave功能(datanode+tasktracker),而s2做slave(+datanode+tasktracker)
对于多节点安装,可以采取central-push方式,也可采用one-by-one方式。对于central-push方式具体可参见hortonwork文档 :http://docs.hortonworks.com/HDPDocuments/HDP1/HDP-Win-1.1.0/bk_installing_hdp_for_windows/content/win-install-chap2-2.html

我们采用one-by-one方式:
2.1 在每个节点依次执行单节点时候的步骤直到使能远程脚本功能那一步:
    确保 Administrator用户有密码保护
    .以Administrator权限运行 Windows PowerShell((用用户名为Administrator的本地管理员登陆), 在PowerShell中依次执行下列命令:

    Set-ExecutionPolicy "Unrestricted" (无需数字签名就可运行脚本,比较危险;如果觉得不安全可以改为  "RemoteSigned",即对远程脚本的执行需要数字签名)    Enable-PSRemoting    Set-item wsman:localhost\client\trustedhosts -value "s1,s2"    winrm quickconfig    winrm set winrm/config/client '@{TrustedHosts="s1,s2"}'
    然后切回到当前用户
如果要验证远程脚本和命令是否有效,可以管理员权限运行powershell, 执行 Invoke-Command -ComputerName 远程机器名 -ScriptBlock { hostname },如果正确显示远程机器名(hostname)则说明远程脚本和命令起效。比如在s1中执行 Invoke-Command -ComputerName s2 -ScriptBlock { hostname },能正确显示s2.
需要在每个节点上验证是否能连到本机和其它远程机器。

2.2 在每个节点创建clusterproperties.txt(c:\config下) , 使其具有以下内容:
#Log directoryHDP_LOG_DIR=c:\hadoop\logs#Data directoryHDP_DATA_DIR=c:\hdp\data#Hosts (Roles for the host machines in your cluster)NAMENODE_HOST=s1SECONDARY_NAMENODE_HOST=s1JOBTRACKER_HOST=s1HIVE_SERVER_HOST=s1OOZIE_SERVER_HOST=s1TEMPLETON_HOST=s1SLAVE_HOSTS=s1,s2#Database hostDB_FLAVOR=derbyDB_HOSTNAME=s1#Hive propertiesHIVE_DB_NAME=hiveHIVE_DB_USERNAME=hiveHIVE_DB_PASSWORD=hive#Oozie propertiesOOZIE_DB_NAME=oozieOOZIE_DB_USERNAME=oozieOOZIE_DB_PASSWORD=oozie
这样的配置将使得s1运行namenode,secondary namenode,jobtracker,historyserver,hiveserver,oozieserver,templeton,dbserver并兼datanode和 tasktracker等服务, 而s2运行datanode 和tasktracker服务。
2.3 在每个节点安装hdp1.1, 以管理员权限执行 (run as Administrator) 
msiexec /i "hdp-1.1.0-GA.winpkg.msi" /lv "hdp.log" HDP_LAYOUT="C:\config\clusterproperties.txt" HDP_DIR="C:\hdp\hadoop" DESTROY_DATA="no"
2.4 安装完后,在集群中任何一个节点以管理员权限执行(run as Administrator)下列命令来启动整个hadoop集群:
cd %HADOOP_NODE_INSTALL_ROOT%start_remote_hdp_services.cmd      
2.5 如果要停止整个hadoop集群在任何节点以管理员权限(run as Administrator)执行:
cd %HADOOP_NODE_INSTALL_ROOT%stop_remote_hdp_services.cmd
说明:
1.hortonworks的文档有bug, 在2.1那一步按请按本文执行。
2.尽量以管理员权限来运行命令,卸载时也一样(否则会出现hortonworks软件无法卸载的情况).

原创粉丝点击