CDP集群安装部署

安装前准备

我们需要准备好至少三台安装有Redhat 7.0的虚拟机,且内存最好8个G以上,但8G也勉强可以运行

注意:以下均以主节点(cdp01)为例

修改主机名,配置集群映射

  1. 修改主机名,在所有节点上运行以下命令并添加主机名
[root@hadoop068 ~]# vi /etc/hostname

在这里插入图片描述
主机名修改完成后,修改主机名,使其生效

  1. 配置集群映射,在所有节点上运行以下命令,添加配置集群映射
[root@cdp01 ~]# vim /etc/hosts

在这里插入图片描述
使用scp命令把hosts文件分发给另外两台机器

[root@cdp01 yum.repos.d]# scp /etc/hosts root@192.168.0.187:/etc/
[root@cdp01 yum.repos.d]# scp /etc/hosts root@192.168.0.188:/etc/

在这里插入图片描述

禁用SElinux

在所有节点上执行 setenforce 0 命令。

 [root@cdp01 ~]# setenforce 0


集群所有节点修改/etc/selinux/config文件参数SELINUX:

SELINUX=disabled

在这里插入图片描述

关闭防火墙

在集群所有节点运行以下命令:

[root@cdp01 ~]# systemctl stop firewalld
[root@cdp01 ~]# systemctl disable firewalld
[root@cdp01 ~]# systemctl status firewalld

在这里插入图片描述

配置时钟同步

  1. 在所有节点上安装ntp
[root@cdp01 ~]# yum -y install ntp

在这里插入图片描述

  1. 配置主节点时钟与自己同步
server 127.127.1.0      # local clock
fudge 127.127.1.0 stratum 10

在这里插入图片描述

  1. 配置所有从节点时钟与主节点同步
server 192.168.0.186
 

在这里插入图片描述

  1. 重启所有节点的ntp服务
[root@ cdh01 ~]# systemctl restart ntpd # 重启ntp服务
[root@ cdh01 ~]# systemctl enable ntpd # 设置自启
[root@ cdh01 ~]# systemctl status ntpd # 查看ntp服务的状态

在这里插入图片描述

  1. 验证始终同步,在所有节点执行ntpq -p命令
    在这里插入图片描述

所有节点左边出现“*”时,代表同步成功。
注意:这里需要等待一段时间才会同步完成

设置swap

  1. 在所有节点执行以下命令以临时设置swap为1,并即时生效
[root@cdp01 ~]# sysctl -a | grep vm.swappiness
[root@cdp01 ~]# echo 1 > /proc/sys/vm/swappiness
[root@cdp01 ~]# sysctl -a | grep vm.swappiness

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
登录 CDP 集群需要使用 Kerberos 认证,可以使用 Java 的 Kerberos 相关类来实现。增删 Yarn 资源池队列可以使用 Cloudera Manager API 或者 Yarn REST API 来实现。 以下是一个简单的示例,实现登录 CDP 集群并添加 Yarn 资源池队列: ``` import java.io.File; import java.util.Map; import javax.security.auth.Subject; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; import org.apache.hadoop.security.UserGroupInformation; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.FileEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class CdpYarnQueueExample { public static void main(String[] args) { String cdpPrincipal = "cdp-user@EXAMPLE.COM"; String cdpKeytab = "/path/to/cdp-user.keytab"; String cdpKrb5 = "/etc/krb5.conf"; String cmHost = "cm.host"; String cmUsername = "admin"; String cmPassword = "admin"; String yarnQueueName = "my_queue"; try { // Login to CDP using Kerberos authentication System.setProperty("java.security.krb5.conf", cdpKrb5); LoginContext lc = new LoginContext("CDPLogin", new CDPLoginCallbackHandler(cdpPrincipal, cdpKeytab)); lc.login(); Subject subject = lc.getSubject(); UserGroupInformation.setLoginUser(UserGroupInformation.getUGIFromSubject(subject)); // Create Yarn resource pool queue using Cloudera Manager API String cmApiUrl = "http://" + cmHost + ":7180/api/v19/clusters/my_cluster/services/yarn/yarnService"; String cmApiJson = "{\"yarnQueueConfigs\": [{\"name\": \"" + yarnQueueName + "\", \"capacity\": 10, \"maximumCapacity\": 20}]}"; CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(cmApiUrl); httpPost.setHeader("Content-Type", ContentType.APPLICATION_JSON.getMimeType()); httpPost.setHeader("Authorization", "Basic " + Base64.getEncoder().encodeToString((cmUsername + ":" + cmPassword).getBytes())); httpPost.setEntity(new FileEntity(new File(cmApiJson), ContentType.APPLICATION_JSON)); CloseableHttpResponse response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); if (entity != null) { String result = EntityUtils.toString(entity); System.out.println(result); } EntityUtils.consume(entity); response.close(); httpClient.close(); } catch (LoginException | IOException e) { e.printStackTrace(); } } } ``` 在上面的示例中,`CDPLoginCallbackHandler` 是一个自定义的回调处理器,用于加载 Kerberos keytab 并进行认证。`CDPLogin` 是一个自定义的 LoginModule,用于处理 Kerberos 认证流程。 注意,在使用 Cloudera Manager API 或者 Yarn REST API 时需要提供相应的认证信息。在示例中,使用了 Basic 认证方式,用户名和密码通过 Base64 编码后放在请求头中。具体实现可以根据自己的需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值