windows通过eip访问集群hdfs,hive,kafka

举报
王伟康 发表于 2021/04/02 15:28:13 2021/04/02
【摘要】 通过eip访问集群主要是对需要的访问的集群组件的IP修改成hostname,和端口开放。像类似spark和flink这种这种分析组件因为是在本地运行,所以不需要做额外的端口和ip的修改。安全集群相对于普通集群多了个kerboers认证,只要修改kerboers的conf文件和开发对应的端口就可以了。

Windows运行HdfsExample配置步骤:

普通模式:

  1. 为集群的每个节点申请弹性公网ip,并将本地Windows的hosts文件添加所有节点的公网IP对应主机域名的组合(注意如何主机名中出现大写字母要改成小写,因为Linux不区分大小写,Windows区分)

       a.在弹性公网ip购买eip(集群有几个节点就买几个)

         

        b.在集群节点管理那为节点绑定a中购买的eip

   

       c.记录公网IP和私网IP的对应关系将hosts文件中的私网IP改为对应的公网ip

    2.配置集群安全组开发Windows的ip的8020和9866端口

   

     

    3.在集群的hdfs上下载hdfs客户端,将客户端中的core-site.xml和hdfs-site.xml复制到样例工程的conf目录下,对hdfs-site.xml添加

       <property>

        <name>dfs.client.use.datanode.hostname</name>

        <value>true</value>

        </property>

     (将datanode的通信改成通过hostname)

       

     4.样例工程,开始会报一个没有hadoop_home的异常,这个不用管不影响。

 

安全模式

  1. 将krb5.conf文件中的IP改成对应的主机名称
  2. 配置集群安全组开发Windows的ip的21730TCP,21731TCP/UDP,21732TCP/UDP端口
  3. 将样例代码中的PRNCIPAL_NAME改为安全认证的用户名

Windows运行hive-jdbc-example配置步骤:

普通模式:

  1. 为集群的每个节点申请弹性公网ip,并将本地Windows的hosts文件添加所有节点的公网IP对应主机域名的组合(注意如何主机名中出现大写字母要改成小写,因为Linux不区分大小写,Windows区分)
  2. 配置集群安全组开发Windows的ip的10000端口
  3. 在集群的hive上下载hive客户端,将客户端中的core-site.xml和properties复制到样例工程的resources目录下
  4. 修改样例代码中的jdbc url将使用zookeeper的连接改为直接使用hiveserver2的地址连接(因为使用zookeeper连接会访问zk的/hiveserver2目录下的ip,但是里面存储的是私有IP,本地Windows无法连通),到hive上找到hiveserver2服务的主机名,将url改为jdbc:hive2:// hiveserver主机名:10000/

 

安全模式:

  1. 将krb5.conf文件中的IP改成对应的主机名称
  2. 配置集群安全组开发Windows的ip的21730TCP,21731TCP/UDP,21732TCP/UDP端口
  3. 将样例代码中的PRNCIPAL_NAME改为安全认证的用户名(主意要使用有hive权限的用户)

 

Windows访问Kafka(包括kafka的生产者消费者,sparkstreamingflink生产和消费kafka)配置步骤:

普通模式:

  1. 为集群的每个节点申请弹性公网ip,并将本地Windows的hosts文件添加所有节点的公网IP对应主机域名的组合(注意如何主机名中出现大写字母要改成小写,因为Linux不区分大小写,Windows区分)
  2. 配置集群安全组开发Windows的ip的9092
  3. 添加kafka集群配置添加config.expandor中键值对advertised.listeners = PLAINTEXT://:9092,SSL://:9093,TRACE://:21013 修改配置后重启kafka集群。

      4. 将kafka的连接串改成hostname1:9092, hostname2:9092, hostname3:9092

安全模式:

  1. 将krb5.conf文件中的IP改成对应的主机名称
  2. 配置集群安全组开发Windows的ip的21007
  3. 添加kafka集群配置添加config.expandor中键值对advertised.listeners =SASL_PLAINTEXT://:21007,SASL_SSL://:21009,TRACE://:21013修改配置后重启kafka集群。
  4. kafka的连接串改成hostname1: 21007, hostname2: 21007, hostname3: 21007

 

普通模式Windows运行spark访问hadoopSparkScalaExample)配置步骤

  1. 为集群的每个节点申请弹性公网ip,并将本地Windows的hosts文件添加所有节点的公网IP对应主机域名的组合(注意如何主机名中出现大写字母要改成小写,因为Linux不区分大小写,Windows区分)
  2. 配置集群安全组开发Windows的ip的8020和9866端口
  3. 在集群的hdfs上下载hdfs客户端,将客户端中的yarn-site.xml、core-site.xml和hdfs-site.xml复制到样例工程的conf目录下,对hdfs-site.xml添加

      <property>

             <name>dfs.client.use.datanode.hostname</name>

            <value>true</value>

        </property>将datanode的通信改成通过hostname

     4. 对xml文件加入

         <dependency>

               <groupId>com.huawei.mrs</groupId>

                <artifactId>hadoop-plugins</artifactId>

                <version>8.0.2-302002</version>

         </dependency>

    否则样例运行时会报org.apache.hadoop.hdfs.server.namenode.ha.AdaptiveFailoverProxyProvider这个类找不到

     5. 对SparkSession加入.master("local").config("spark.driver.host", "localhost")配置spark为本地运行模式

安全模式

  1. 将krb5.conf文件中的IP改成对应的主机名称
  2. 配置集群安全组开发Windows的ip的21730TCP,21731TCP/UDP,21732TCP/UDP端口
  3. 将样例代码中的PRNCIPAL_NAME改为安全认证的用户名

总结:

  1. 通过eip访问集群主要是对需要的访问的集群组件的IP修改成hostname,和端口开放。像类似spark和flink这种这种分析组件因为是在本地运行,所以不需要做额外的端口和ip的修改。
  2. 安全集群相对于普通集群多了个kerboers认证,所以安全集群的组件比普通集群就是多了对kerboers的conf文件中的ip改为hostname和21730(TCP),21731(TCP/UDP),21732(TCP/UDP)的端口的放开。
  3. 总之,eip访问最根本的原因就是本地与集群所使用的内网ip不通,所以所有的连通问题都是要将访问组件的内网ip改为访问hostname,和对应端口的开放。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。