通过PowerShell 脚本在中国区Azure部署定制化HDInsight 集群

发布时间:2023-11-17 12:00

通常用户可以直接通过管理门户(https://Manage.windowsazure.cn) 来创建HDInsight 集群,但个人建议还是通过PowerShell 来创建:
1. 通过PowerShell 脚本来创建,脚本可以复用。
2. 通过PowerShell 脚本可以修改HDInsight 的默认参数,以适应不同业务的需求

通过PowerShell 创建定制化的HDInsight 集群的步骤如下:

1.准备好缺省的存储账号和缺省的Container,以及需要链接的多个存储账号。

需要说明的是,HDInsight 可以支持多个存储账号,目前在中国区Azure上一个HDInsight 集群最多可以绑定8个存储账号。HDInsight 和Azure 存储账号的Topo 图如下所示:
\"通过PowerShell

$storageAccountName_Default = \"jerryhdtest\"
$containerName_Default = \"hdtest\"
$storageAccountName_Add1 = \"jerryhdtest2\"

2.准备好Hive 元数据库。新建好一个Azure Database 用于存储Hive 元数据。

关于如何创建Azure Database 的步骤请参考:
http://www.windowsazure.cn/documentation/articles/sql-database-get-started/

$hiveSQLDatabaseServerName = \"HiveMetaServerName\"
$hiveSQLDatabaseName = \"HDHiveMetaSql\"

3. 获取存储账号密钥:

Select-AzureSubscription $subscriptionName
$storageAccountKey_Default = Get-AzureStorageKey $storageAccountName_Default | %{ $_.Primary }
$storageAccountKey_Add1 = Get-AzureStorageKey $storageAccountName_Add1 | %{ $_.Primary }

4.获取部署HDinsight 的虚拟网络或子网的信息

$vnetID = \'5ad379f6-27ab-476d-****-***********\'
$subNetName = \'HDSubnet\'

5.设置MapReduce/ YARN 的相关参数:

$MapRedConfigValues=new-object \'Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.DataObjects.AzureHDInsightMapReduceConfiguration\'
$MapRedConfigValues.Configuration = @{\"mapreduce.map.memory.mb\"=\"1024\";\"mapreduce.reduce.memory.mb\"=\"1024\";\"mapreduce.map.java.opts“=”-Xmx800m -Xms800m -Djava.net.preferIPv4Stack=true -XX:NewRatio=8 -XX:+UseNUMA -XX:+UseParallelGC“;\"mapreduce.reduce.java.opts\"=\"-Xmx800m -Xms800m -Djava.net.preferIPv4Stack=true -XX:NewRatio=8 -XX:+UseNUMA -XX:+UseParallelGC\"}

$YarnConfigValues= @{\"yarn.app.mapreduce.am.resource.mb\"=\"1024\";\"yarn.app.mapreduce.am.command-opts\"=\"-Xmx800m -Xms800m -Djava.net.preferIPv4Stack=true -XX:NewRatio=8 -XX:+UseNUMA -XX:+UseParallelGC\"}

6.创建存储容器

$dest1Context = New-AzureStorageContext –StorageAccountName $storageAccountName_Default  -StorageAccountKey $storageAccountKey_Default -Environment \'AzureChinaCloud\' 
New-AzureStorageContainer -Name $containerName_Default -Context $dest1Context

7.设置HDInsight 集群的参数:

$config = New-AzureHDInsightClusterConfig -ClusterSizeInNodes $clusterNodes  -VirtualNetworkId $vnetID -SubnetName $subNetName
|Set-AzureHDInsightDefaultStorage -StorageAccountName \"$storageAccountName_Default.blob.core.chinacloudapi.cn\"-StorageAccountKey $storageAccountKey_Default -StorageContainerName $containerName_Default 
|Add-AzureHDInsightStorage -StorageAccountName \"$storageAccountName_Add1.blob.core.chinacloudapi.cn\" -StorageAccountKey $storageAccountKey_Add1|
 Add-AzureHDInsightConfigValues -MapReduce $MapRedConfigValues -Yarn $YarnConfigValues 
|Add-AzureHDInsightMetastore -SqlAzureServerName \"$hiveSQLDatabaseServerName.database.chinacloudapi.cn\" -DatabaseName $hiveSQLDatabaseName -Credential $credential -MetastoreType HiveMetastore 

8.基于以上参数创建HDInsight集群:

New-AzureHDInsightCluster -Name $clusterName  -Credential $credential -Config $config -Location $location

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号