【开发案例】Fiber案例:开发环境准备

[复制链接]
发表于 : 2018-5-29 09:52:32 最新回复:2019-08-30 14:29:13
1339 2
lWX387225
lWX387225  新锐

1.1 开发和运行环境

Fiber可以使用JavaScala语言进行应用开发,要准备的开发和运行环境如1-1所示。

表1-1 开发环境

准备项

说明

操作系统

l  开发环境:Windows系统,推荐Windows 7以上版本。

l  运行环境:Linux系统。

安装JDK

开发和运行环境的基本配置。版本要求如下:

FusionInsight HD集群的服务端和客户端仅支持自带的Oracle JDK(版本为1.8),不允许替换。

对于客户应用需引用SDK类的Jar包运行在客户应用进程中的,支持Oracle JDKIBM JDK

l  Oracle JDK:支持1.71.8版本。

l  IBM JDK:推荐1.7.8.101.7.9.401.8.3.0版本。

说明

基于安全考虑,FusionInsight HD服务端只支持TLS 1.1TLS 1.2加密协议,IBM JDK默认TLS只支持1.0,若使用IBM JDK,请配置启动参数“com.ibm.jsse2.overrideDefaultTLS”为“true”,设置后可以同时支持TLS1.0/1.1/1.2

详情请参见:https://www.ibm.com/support/knowledgecenter/zh/SSYKE2_8.0.0/com.ibm.java.security.component.80.doc/security-component/jsse2Docs/matchsslcontext_tls.html#matchsslcontext_tls

Oracle JDK需进行安全加固,具体操作如下:

1.     Oracle官方网站获取与JDK版本对应的JCEJava Cryptography Extension)文件。JCE文件解压后包含“local_policy.jar”和“US_export_policy.jar”。拷贝jar包到如下路径:

LinuxJDK安装目录/jre/lib/security

WindowsJDK安装目录\jre\lib\security

2.     将“客户端安装目录/JDK/jdk/jre/lib/ext/”目录下“SMS4JA.jar”拷贝到如下路径:

LinuxJDK安装目录/jre/lib/ext/

WindowsJDK安装目录\jre\lib\ext\

安装和配置IDEA

用于开发Fiber应用程序的工具。版本要求:13.1.7

安装Scala

Scala开发环境的基本配置。版本要求:2.10.4

安装Scala插件

Scala开发环境的基本配置。版本要求:0.35.683

准备开发用户

参考“应用开发指南安全模式安全认证准备开发用户”章节进行配置。

安装客户端

l  开发环境:参考“应用开发指南安全模式安全认证配置客户端文件”章节安装配置。

l  运行环境:参考“软件安装 > 初始配置 > 配置客户端 > 安装客户端”章节进行安装配置。

说明

确保安装的集群客户端中有FiberHiveSparkHBase4个组件客户端。其中,HBaseJDBC客户端是Phoenix

 

1.2 准备安全认证

1.2.1 安全认证

1.2.1.1 安全认证原理和认证机制

功能

Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”,后来沿用作为安全认证的概念,使用Kerberos的系统在设计上采用“客户端/服务器”结构与AES等加密技术,并且能够进行相互认证(即客户端和服务器端均可对对方进行身份认证)。可以用于防止***、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。

结构

Kerberos的原理架构如1-1所示,各模块的说明如1-2所示。

图1-1 原理架构

20180529094455957001.png

 

表1-2 模块说明

模块

说明

Application Client

应用客户端,通常是需要提交任务(或者作业)的应用程序。

Application Server

应用服务端,通常是应用客户端需要访问的应用程序。

Kerberos

提供安全认证的服务。

KerberosAdmin

提供认证用户管理的进程。

KerberosServer

提供认证票据分发的进程。

 

步骤原理说明:

应用客户端(Application Client)可以是集群内某个服务,也可以是客户二次开发的一个应用程序,应用程序可以向应用服务提交任务或者作业。

1.         应用程序在提交任务或者作业前,需要向Kerberos服务申请TGTTicket-Granting Ticket),用于建立和Kerberos服务器的安全会话。

2.         Kerberos服务在收到TGT请求后,会解析其中的参数来生成对应的TGT,使用客户端指定的用户名的密钥进行加密响应消息。

3.         应用客户端收到TGT响应消息后,解析获取TGT,此时,再由应用客户端(通常是rpc底层)向Kerberos服务获取应用服务端的STServer Ticket)。

4.         Kerberos服务在收到ST请求后,校验其中的TGT合法后,生成对应的应用服务的ST,再使用应用服务密钥将响应消息进行加密处理。

5.         应用客户端收到ST响应消息后,将ST打包到发给应用服务的消息里面传输给对应的应用服务端(Application Server)。

6.         应用服务端收到请求后,使用本端应用服务对应的密钥解析其中的ST,并校验成功后,本次请求合法通过。

基本概念

以下为常见的基本概念,可以帮助用户减少学习Kerberos框架所花费的时间,有助于更好的理解Kerberos业务。以HDFS安全认证为例:

TGT

票据授权票据(Ticket-Granting Ticket),由Kerberos服务生成,提供给应用程序与Kerberos服务器建立认证安全会话,该票据的默认有效期为24小时,24小时后该票据自动过期。

TGT申请方式(HDFS为例)

1.         通过HDFS提供的接口获取。

/**
  * login Kerberos to get TGT, if the cluster is in security mode
  * @throws IOException if login is failed
  */
  private void login() throws IOException {       
  // not security mode, just return
    if (! "kerberos".equalsIgnoreCase(conf.get("hadoop.security.authentication"))) {
        return;
    }
        
    //security mode
    System.setProperty("java.security.krb5.conf", PATH_TO_KRB5_CONF);
        
    UserGroupInformation.setConfiguration(conf);
    UserGroupInformation.loginUserFromKeytab(PRNCIPAL_NAME, PATH_TO_KEYTAB);        
  }

2.         通过客户端shell命令以kinit方式获取,具体使用方式可参考Shell操作维护命令说明书。

ST

服务票据(Server Ticket),由Kerberos服务生成,提供给应用程序与应用服务建立安全会话,该票据一次性有效。

ST的生成在FusionInsight产品中,基于hadoop-rpc通信,由rpc底层自动向Kerberos服务端提交请求,由Kerberos服务端生成。

认证代码实例讲解

package com.huawei.bigdata.hdfs.examples;
 
import java.io.IOException;
 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.security.UserGroupInformation;
 
public class KerberosTest {
    private static String PATH_TO_HDFS_SITE_XML = KerberosTest.class.getClassLoader().getResource("hdfs-site.xml")
            .getPath();
    private static String PATH_TO_CORE_SITE_XML = KerberosTest.class.getClassLoader().getResource("core-site.xml")
            .getPath();
    private static String PATH_TO_KEYTAB = KerberosTest.class.getClassLoader().getResource("user.keytab").getPath();
    private static String PATH_TO_KRB5_CONF = KerberosTest.class.getClassLoader().getResource("krb5.conf").getPath();
    private static String PRNCIPAL_NAME = "develop";
    private FileSystem fs;
    private Configuration conf;
    
    /**
     * initialize Configuration
     */
    private void initConf() {
        conf = new Configuration();
        
        // add configuration files
        conf.addResource(new Path(PATH_TO_HDFS_SITE_XML));
        conf.addResource(new Path(PATH_TO_CORE_SITE_XML));
    }
    
    /**
     * login Kerberos to get TGT, if the cluster is in security mode
     * @throws IOException if login is failed
     */
    private void login() throws IOException {       
        // not security mode, just return
        if (! "kerberos".equalsIgnoreCase(conf.get("hadoop.security.authentication"))) {
            return;
        }
        
        //security mode
        System.setProperty("java.security.krb5.conf", PATH_TO_KRB5_CONF);
        
        UserGroupInformation.setConfiguration(conf);
        UserGroupInformation.loginUserFromKeytab(PRNCIPAL_NAME, PATH_TO_KEYTAB);        
    }
    
    /**
     * initialize FileSystem, and get ST from Kerberos
     * @throws IOException
     */
    private void initFileSystem() throws IOException {
        fs = FileSystem.get(conf);
    }
    
    /**
     * An example to access the HDFS
     * @throws IOException
     */
    private void doSth() throws IOException {
        Path path = new Path("/tmp");
        FileStatus fStatus = fs.getFileStatus(path);
        System.out.println("Status of " + path + " is " + fStatus);
        //other thing
    }
 
 
    public static void main(String[] args) throws Exception {
        KerberosTest test = new KerberosTest();
        test.initConf();
        test.login();
        test.initFileSystem();
        test.doSth();       
    }
}

说明

1.     Kerberos认证时需要配置Kerberos认证所需要的文件参数,主要包含keytab路径,Kerberos认证的用户名称,Kerberos认证所需要的客户端配置krb5.conf文件。

2.     方法login()为调用hadoop的接口执行Kerberos认证,生成TGT票据。

3.     方法doSth()调用hadoop的接口访问文件系统,此时底层RPC会自动携带TGTKerberos认证,生成ST票据。

4.     以上代码可在安全模式下的HDFS二次开发样例工程中创建KerberosTest.java,运行并查看调测结果,具体操作过程请参考HDFS开发指南。

1.2.1.2 准备开发用户

操作场景

开发用户用于运行样例工程。进行不同服务的组件开发时,需要赋予不同的用户权限(权限配置参考各服务开发指南)。

操作步骤

                                步骤 1      登录FusionInsight Manager,在FusionInsight Manager界面选择“系统设置 > 角色管理 > 添加角色”。

1.         填写角色的名称,例如developrole

2.         编辑角色,不同服务进行业务开发时需要添加如下权限。

表1-3 权限列表

服务

所需添加权限

HDFS

在“权限”的表格中选择“HDFS > File System”,勾选hdfs://hacluster/的“Read”、“Write”和“Execute”,单击“确定”保存。

MapReduce/YARN

1.    在“权限”的表格中选择“HDFS >  File System > hdfs://hacluster/”,勾选user的“Read”、“Write”和“Execute”,单击“确定”保存。

2.    编辑角色,在“权限”的表格中选择“Yarn >  Scheduler Queue > root”,勾选default的“Submit”,单击“确定”保存。

HBase

在“权限”的表格中选择“HBase > HBase Scope ”,勾选global的“admin”、“create”、“read”、“write”和“execute”,单击“确定”保存。

Spark/Spark2x

1.    在“权限”表格中选择“HBase >  HBase Scope > global”,勾选default的“create”,单击“确定”保存。

2.    编辑角色,在“权限”的表格中选择“HBase >  HBase Scope > global > hbase”,勾选hbase:meta的“execute”,单击“确定”保存。

3.    编辑角色,在“权限”的表格中选择“HDFS >  File System > hdfs://hacluster/ > user”,勾选hive的“Execute”,单击“确定”保存。

4.    编辑角色,在“权限”的表格中选择“HDFS >  File System > hdfs://hacluster/ >user >hive”,勾选warehouse的“Read”、“Write”和“Execute”,单击“确定”保存。

5.    编辑角色,在“权限”的表格中选择“Hive >  Hive Read Write Privileges”,勾选default的“Create”,单击“确定”保存。

6.    编辑角色,在“权限”的表格中选择“Yarn >  Scheduler Queue > root”,勾选default的“Submit”,单击“确定”保存。

Hive

在“权限”的表格中选择“Yarn > Scheduler Queue > root”,勾选default的“Submit”和“Admin”,单击“确定”保存。

说明

Hive应用开发需要到的额外的操作权限需要从系统管理员处获取,具体权限要求参见《Hive开发指南》的权限管理章节。

 

Flink

1.    在“权限”的表格中选择“HDFS > File System > hdfs://hacluster/ > flink ”,勾选“Read”、“Write”和“Execute”,单击“权限”表格中“服务”返回。

2.    在“权限”的表格中选择“Yarn > Scheduler Queue > root”,勾选default的“Submit”,单击“确定”保存。

Solr

-

Kafka

-

Storm/CQL

-

Redis

在“权限”的表格中选择“Redis > Redis Access  Manage”,勾选“Read”、“Write”和“Management”,单击“确定”保存。

Oozie

1.    在“权限”的表格中选择“Oozie > Common User Privileges”,单击“确定”保存。

2.    编辑角色,在“权限”的表格中选择“HDFS >  File System ,勾选hdfs://hacluster的“Read”、“Write”和“Execute”,单击“确定”保存。

3.    编辑角色,在”权限“表格中选择”Yarn“,勾选”Cluster Admin Operations“,单击”确定“保存。

统一SQLFiber

1.    编辑角色,在“权限”的表格中选择“HDFS >  File System > hdfs://hacluster/ > user > hive”,勾选“Execute”,单击“确定”保存。

2.    编辑角色,在“权限”的表格中选择“HDFS >  File System > hdfs://hacluster/ > user > hive > warehouse”,勾选“Read”、“Write”和“Execute”,勾选“递归”,单击“确定”保存。

3.    编辑角色,在“权限”的表格中选择“Yarn > Scheduler Queue > root”,勾选default的“Submit”,单击“确定”保存。

4.    如果需要使用phoenix引擎,还需要赋予以下权限。

a.     编辑角色,在“权限”表格中选择“HBase > HBase Scope > global”,勾选default的“create”、“read”、“write”和“execute”,单击“确定”保存。

b.    编辑角色,在“权限”的表格中选择“HBase > HBase Scope > global > hbase”,勾选hbase:meta的“execute”,单击“确定”保存。

5.    如果用户需要使用hive引擎或spark引擎,还需要赋予以下权限

a.     如果需要访问HBase数据,还需要先执行“4”。

b.    编辑角色,在“权限”的表格中选择“HDFS > File System > hdfs://hacluster/ > tmp >  hive-scratch”,勾选“Read”、“Write”和“Execute”,单击“确定”保存。

c.     编辑角色,在“权限”的表格中选择“Hive > Hive  Read Write Privileges”,勾选default的“Create”,单击“确定”保存。

 

                                步骤 2      单击“系统设置 > 用户组管理 > 添加用户组”,为样例工程创建一个用户组,例如developgroup

                                步骤 3      单击“系统设置 > 用户管理 > 添加用户”,为样例工程创建一个用户。

                                步骤 4      填写用户名,例如developuser,按照1-4选择相应的用户类型和需加入的用户组,并绑定角色developrole取得权限,单击“确定”。

表1-4 用户类型和用户组列表

服务

用户类型

需加入的用户组

HDFS

机机

加入developgroupsupergroup组,设置其“主组”为supergroup

MR/Yarn

机机

加入developgroup组。

HBase

机机

加入hbase组,设置其“主组”为hbase

Spark

机机

加入developgroup组。若用户需要对接Kafka,则需要添加Kafka用户组。

Hive

机机/人机

加入hive组。

Solr

机机

加入solr组。

Kafka

机机

加入kafkaadmin组。

Storm/CQL

人机

加入storm组。

Redis

机机

加入developgroup

Oozie

人机

加入hadoopsupergrouphive组。若使用Hive多实例,该用户还需要从属于具体的Hive实例组,如hive3

统一SQLFiber

机机

加入developgroup组。

 

                                步骤 5      FusionInsight Manager界面选择“系统设置 > 用户管理”,在用户名中选择developuser,单击操作中20180529094456145003.png下载认证凭据文件,保存后解压得到用户的user.keytab文件与krb5.conf文件。用于在样例工程中进行安全认证,具体使用请参考各服务的开发指南。

说明

如果用户类型是人机,需要先修改初始密码后再下载认证凭据文件,否则在使用时会提示“Password has expired - change password to reset”,导致安全认证失败。修改密码请参考《管理员指南》中的“修改操作用户密码”章节。

 

----结束

1.2.1.3 配置客户端文件

应用开发时,需要将集群客户端下载到本地PC

                                步骤 1      确认FusionInsight HD集群中所需组件已经安装,并正常运行。

                                步骤 2      客户端机器的时间与FusionInsight HD集群的时间要保持一致,时间差要小于5分钟。

FusionInsight集群的时间可通过FusionInsight Manager页面右上角查看。

                                步骤 3      参考“软件安装 > 初始配置 > 配置客户端 > 安装客户端”章节下载客户端到本地,并解压。例如,解压到D盘(路径中不能有空格),D:\FusionInsight_Services_ClientConfig

                                步骤 4      进入该目录,双击运行install.bat文件,自动导入工程依赖包到“lib”目录下,同时自动将配置文件导入到各组件样例工程的配置文件目录中。

运行样例工程需要工程依赖包和配置文件,各组件样例工程配置文件路径如1-5所示:

表1-5 路径参考

工程

样例工程中的路径

CQL

src\main\resource

HBase

conf

HDFS

conf

Hive

conf

Kafka

src\main\resource

MapReduce

conf

Oozie

oozie-example\conf

Redis

src\config

Solr

conf

Storm

src\main\resource

 

                                步骤 5      配置客户端网络连接。

拷贝解压目录下的“hosts”文件中的内容到客户端所在系统的hosts文件中,确保本地机器能与解压目录下“hosts”文件中所列出的各主机在网络上互通。

说明

l  当客户端所在主机不是集群中的节点时,配置客户端网络连接,可避免执行客户端命令时出现错误。

l  Windows本地hosts文件存放路径举例:“C:\WINDOWS\system32\drivers\etc\hosts”。

----结束

1.2.1.4 认证失败处理FAQ

现象描述

样例工程调试运行过程发现认证失败。

处理流程

出现认证失败的原因很多,在不同场景中建议参考以下步骤来排查:

                                步骤 1      确认本应用所运行设备和FusionInsight集群网络上是否通畅,Kerberos认证所需的各类端口(TCP/UDP)是否可正常访问。

                                步骤 2      确认各个配置文件是否被正确读取到,路径是否保存正确。

                                步骤 3      确认用户名和keytab文件是按操作指导得到的。

                                步骤 4      确认各类配置信息是否已经先设置好了,再发起认证。

                                步骤 5      确认没有在同一个进程中发起多次认证,即重复调用login()方法。

                                步骤 6      若还有问题,需联系华为工程师做进一步分析。

----结束

认证失败样例

解决认证出现如下关键字:clock skew too great的问题

                                步骤 1      检查FusionInsight集群时间。

                                步骤 2      检查开发环境所在机器的时间,与集群时间的偏差应小于5分钟。

----结束

解决认证出现如下关键字:(Receive time out) can not connect to kdc server的问题

                                步骤 1      要检查“krb5.conf”文件内容是否正确,即是否与集群中的KerberoServer的业务IP配置相同。

                                步骤 2      检查Kerberos服务是否正常。

                                步骤 3      检查防火墙是否关闭。

----结束

1.2.2 认证机制代码

场景说明

在安全集群环境下,各个组件之间的相互通信不能够简单的互通,而需要在通信之前进行相互认证,以确保通信的安全性。HBase应用开发需要进行ZooKeeperKerberos安全认证。用于ZooKeeper认证的文件为“jaas.conf”以及用于Kerberos安全认证的keytab文件和principal文件您可以联系管理员创建并获取。具体使用方法在样例代码中会有详细说明。

安全认证主要采用代码认证方式。支持Oracle JAVA平台和IBM JAVA平台。

以下代码在“com.huawei.bigdata.hbase.examples”包的“TestMain”类中。

l   代码认证

try {
   init();
   login();
   } 
catch (IOException e) {
   LOG.error("Failed to login because ", e);
   return;
}

l   初始化配置

private static void init() throws IOException{
     // Default load from conf directory
     conf = HBaseConfiguration.create();
     String userdir = System.getProperty("user.dir") + File.separator + "conf" + File.separator;
     conf.addResource(new Path(userdir + "core-site.xml"));
     conf.addResource(new Path(userdir + "hdfs-site.xml"));
     conf.addResource(new Path(userdir + "hbase-site.xml"));
}

l   安全登录

请根据实际情况,修改“userName”为实际用户名,例如“developuser”。

private static void login() throws IOException {
    if (User.isHBaseSecurityEnabled(conf)) {
      String userdir = System.getProperty("user.dir") + File.separator + "conf" + File.separator;
      userName = "developuser";
      userKeytabFile = userdir + "user.keytab";
      krb5File = userdir + "krb5.conf";
 
      /*
       * if need to connect zk, please provide jaas info about zk. of course,
       * you can do it as below:
       * System.setProperty("java.security.auth.login.config", confDirPath +
       * "jaas.conf"); but the demo can help you more : Note: if this process
       * will connect more than one zk cluster, the demo may be not proper. you
       * can contact us for more help
       */
      LoginUtil.setJaasConf(ZOOKEEPER_DEFAULT_LOGIN_CONTEXT_NAME, userName, userKeytabFile);
      LoginUtil.setZookeeperServerPrincipal(ZOOKEEPER_SERVER_PRINCIPAL_KEY,
          ZOOKEEPER_DEFAULT_SERVER_PRINCIPAL);
      LoginUtil.login(userName, userKeytabFile, krb5File, conf);
    }
  }

1.3 利用FusionInsight客户端做开发

操作步骤

                                步骤 1      在客户端解压文件“FusionInsight_Services_ClientConfig”目录下的“sampleCode”文件夹中可获取对应的ScalaJava的样例工程。

                                步骤 2      安装IntelliJ IDEAJDK工具后,需要在IntelliJ IDEA中配置JDK

1.         打开IntelliJ IDEA,选择“Configure”。

图1-2 Quick Start

20180529094458163006.png

 

2.         在“Configure”页面中选择的“Project Defaults”。

图1-3 Configure

20180529094459673007.png

 

3.         在“Project Defaults”页面中,选择“Project Structure”。

图1-4 Project Defaults

20180529094500116008.png

 

4.         在打开的“Project Structure”页面中,选择“SDKs”,单击绿色加号添加JDK

图1-5 添加JDK

20180529094500076009.png

 

5.         在弹出的“Select Home Directoty for JDK”窗口,选择对应的JDK目录,然后单击“OK”。

图1-6 选择JDK目录

20180529094501364010.jpg

 

6.         完成JDK选择后,单击“OK”完成配置。

图1-7 完成JDK配置

20180529094502230011.png

 

                                步骤 3      (可选)如果是Scala开发环境,还需要在IntelliJ IDEA中安装Scala插件。

1.         在“Configure”页面,选择“Plugins”。

图1-8 Plugins

20180529094503049012.png

 

2.         在“Plugins”页面,选择“Install plugin from disk”。

图1-9 Install plugin from disk

20180529094503598013.png

 

3.         在“Choose Plugin File”页面,选择对应版本的Scala插件包,单击“OK”。

20180529094504701014.png

4.         在“Plugins”页面,单击“Apply”安装Scala插件。

5.         在弹出的“Plugins Changed”页面,单击“Restart”,使配置生效。

图1-10 Plugins Changed

20180529094505408015.jpg

 

                                步骤 4      Java样例工程导入到IDEA中。

1.         打开IntelliJ IDEA。在“Quick Start”页面选择“Import Project”。

或者,针对已使用过的IDEA工具,您可以从IDEA主界面直接添加。选择“File > Import project...”导入工程。

图1-11 Import ProjectQuick Start页面)

20180529094506241016.png

 

2.         选择需导入的样例工程存放路径及其文件夹,然后单击“OK”。

图1-12 Select File or Directory to Import

20180529094506704017.jpg

 

3.         出现如下对话框,单击“Next”。

图1-13 Import Project

20180529094507649018.png

 

4.         确认导入路径和名称,单击“Next”。

图1-14 Confirm Project name and location

20180529094508341019.png

 

5.         选择需要导入的工程,然后单击“Next”。

图1-15 Select project to import

20180529094508438020.png

 

6.         出现如下对话框,单击“Next”。

图1-16 Set Libraries

20180529094509052021.png

 

7.         出现如下对话框,单击“Next”。

图1-17 Set Modules

20180529094510718022.png

 

8.         确认工程所用JDK,然后单击“Next”。

图1-18 Select project SDK

20180529094510449023.png

 

9.         单击“Finish”完成导入。

图1-19 Finish

20180529094511414024.png

 

10.     导入完成后,IDEA主页显示导入的样例工程。

图1-20 已导入工程

20180529094511546025.png

 

                                步骤 5      (可选)如果导入Scala语言开发的样例程序,还需要导入依赖的ScalaJar包。

1.         IDEA主页,选择“File > Project Structure...”进入“Project Structure”页面。

2.         选择“Libraries”,然后单击“+”,增加“Scala”的依赖包。

图1-21 Add Jars

20180529094512451026.png

 

3.         在“Select Library Files”页面,选中“Scala安装目录\lib\”目录下的所有Jar包,然后单击“OK”。

图1-22 Select Library Files

20180529094513399027.png

 

4.         在“Choose Modules”页面,选择对应的模块,样例工程选择“FiberJDBCScalaExample”模块即可。然后单击“OK”。

图1-23 Choose Modules

20180529094514474028.png

 

5.         在如下页面中设置依赖包名称,默认名称为选中依赖包列表中第一个Jar包的名称。然后单击Apply应用依赖包。

图1-24 Setting the name of project library

20180529094514482029.png

 

6.         最后,单击“OK”完成依赖包导入。

                                步骤 6      (可选)如果导入Scala语言开发的样例程序,还需要为工程设置语言。

1.         IDEA主页,选择“File > Project Structure...”进入“Project Structure”页面。

2.         选择“Modules”,选中工程名称,然后右键选择“Add > Scala”。

图1-25 选择Scala语言

20180529094515216030.png

 

3.         在设置界面,选择编译的依赖jar包,然后单击“Apply”应用设置。

图1-26 选择编译依赖包

20180529094516852031.png

 

4.         单击“OK”保存设置。

                                步骤 7      设置IDEA的文本文件编码格式,解决乱码显示问题。

1.         IDEA首页,选择“File > Settings...”。

图1-27 选择Settings

20180529094516281032.jpg

 

2.         在“Settings”页面,选择“File Encodings”。然后在右侧的“IDE Encoding”的下拉框中,选择“UTF-8”。然后单击“Apply”应用配置。

20180529094517633033.png

3.         单击“OK”完成编码配置。

----结束

1.4 利用Maven库做开发

操作步骤

                                步骤 1      从华为云代码广场上将“components/fiber”下代码下载到本地。网址:https://codehubcn-
south-1.devcloud.huaweicloud.com/codehub/7076065/home

                                步骤 2      安装IntelliJ IDEAJDK工具后,需要在IntelliJ IDEA中配置JDK

1.         打开IntelliJ IDEA,选择“Configure”。

图1-28 Quick Start

20180529094458163006.png

 

2.         在“Configure”页面中选择的“Project Defaults”。

图1-29 Configure

20180529094459673007.png

 

3.         在“Project Defaults”页面中,选择“Project Structure”。

图1-30 Project Defaults

20180529094500116008.png

 

4.         在打开的“Project Structure”页面中,选择“SDKs”,单击绿色加号添加JDK

图1-31 添加JDK

20180529094500076009.png

 

5.         在弹出的“Select Home Directoty for JDK”窗口,选择对应的JDK目录,然后单击“OK”。

图1-32 选择JDK目录

20180529094501364010.jpg

 

6.         完成JDK选择后,单击“OK”完成配置。

图1-33 完成JDK配置

20180529094502230011.png

 

                                步骤 3      (可选)如果是Scala开发环境,还需要在IntelliJ IDEA中安装Scala插件。

1.         在“Configure”页面,选择“Plugins”。

图1-34 Plugins

20180529094503049012.png

 

2.         在“Plugins”页面,选择“Install plugin from disk”。

图1-35 Install plugin from disk

20180529094503598013.png

 

3.         在“Choose Plugin File”页面,选择对应版本的Scala插件包,单击“OK”。

20180529094504701014.png

4.         在“Plugins”页面,单击“Apply”安装Scala插件。

5.         在弹出的“Plugins Changed”页面,单击“Restart”,使配置生效。

图1-36 Plugins Changed

20180529094505408015.jpg

 

                                步骤 4      Java样例工程导入到IDEA中。

1.         打开IntelliJ IDEA。在“Quick Start”页面选择“Import Project”。

或者,针对已使用过的IDEA工具,您可以从IDEA主界面直接添加。选择“File > Import project...”导入工程。

图1-37 Import ProjectQuick Start页面)

20180529094506241016.png

 

2.         选择需导入的样例工程存放路径及其文件夹,然后单击“OK”。

图1-38 Select File or Directory to Import

20180529094506704017.jpg

 

3.         出现如下对话框,单击“Next”。

图1-39 Import Project

20180529094507649018.png

 

4.         确认导入路径和名称,单击“Next”。

图1-40 Confirm Project name and location

20180529094508341019.png

 

5.         选择需要导入的工程,然后单击“Next”。

图1-41 Select project to import

20180529094508438020.png

 

6.         出现如下对话框,单击“Next”。

图1-42 Set Libraries

20180529094509052021.png

 

7.         出现如下对话框,单击“Next”。

图1-43 Set Modules

20180529094510718022.png

 

8.         确认工程所用JDK,然后单击“Next”。

图1-44 Select project SDK

20180529094510449023.png

 

9.         单击“Finish”完成导入。

图1-45 Finish

20180529094511414024.png

 

10.     导入完成后,IDEA主页显示导入的样例工程。

图1-46 已导入工程

20180529094511546025.png

 

                                步骤 5      (可选)如果导入Scala语言开发的样例程序,还需要导入依赖的ScalaJar包。

1.         IDEA主页,选择“File > Project Structure...”进入“Project Structure”页面。

2.         选择“Libraries”,然后单击“+”,增加“Scala”的依赖包。

图1-47 Add Jars

20180529094512451026.png

 

3.         在“Select Library Files”页面,选中“Scala安装目录\lib\”目录下的所有Jar包,然后单击“OK”。

图1-48 Select Library Files

20180529094513399027.png

 

4.         在“Choose Modules”页面,选择对应的模块,样例工程选择“FiberJDBCScalaExample”模块即可。然后单击“OK”。

图1-49 Choose Modules

20180529094514474028.png

 

5.         在如下页面中设置依赖包名称,默认名称为选中依赖包列表中第一个Jar包的名称。然后单击Apply应用依赖包。

图1-50 Setting the name of project library

20180529094514482029.png

 

6.         最后,单击“OK”完成依赖包导入。

                                步骤 6      (可选)如果导入Scala语言开发的样例程序,还需要为工程设置语言。

1.         IDEA主页,选择“File > Project Structure...”进入“Project Structure”页面。

2.         选择“Modules”,选中工程名称,然后右键选择“Add > Scala”。

图1-51 选择Scala语言

20180529094515216030.png

 

3.         在设置界面,选择编译的依赖jar包,然后单击“Apply”应用设置。

图1-52 选择编译依赖包

20180529094516852031.png

 

4.         单击“OK”保存设置。

                                步骤 7      设置IDEA的文本文件编码格式,解决乱码显示问题。

1.         IDEA首页,选择“File > Settings...”。

图1-53 选择Settings

20180529094516281032.jpg

 

2.         在“Settings”页面,选择“File Encodings”。然后在右侧的“IDE Encoding”的下拉框中,选择“UTF-8”。然后单击“Apply”应用配置。

20180529094517633033.png

3.         单击“OK”完成编码配置。

----结束

 

本帖最后由 lWX387225 于 2018-06-26 15:24 编辑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
  • x
  • 常规:

点评 回复

跳转到指定楼层
lWX387225
lWX387225  新锐 发表于 2018-5-29 10:33:33 已赞(0) 赞(0)

欢迎使用!
  • x
  • 常规:

点评 回复

郭和远
郭和远   发表于 2019-8-30 14:29:13 已赞(0) 赞(0)

使用Fiber-Phoenix进行开发的客户端只能在安装有FusionInsight客户端的机器上进行开发嘛,那么如何进行云部署,这种远程调用的方式
  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录