全部产品

CDH 6 与文件引擎集成

CDH ( Cloudera's Distribution, including Apache Hadoop ) 提供Hadoop组件的安装、运维、监控等功能,您可以使用 CDH6 (CDH6 代表 CDH 6.X 版本) 管理您的Hadoop集群。 本文介绍如何将 CDH6 与 Lindorm 文件引擎集成,来替换底层HDFS存储。您可以基于 CDH6 + Lindorm文件引擎构建云原生存储计算分离的开源大数据系统。

前提条件

  • 请保证您的Lindorm实例和CDH6集群所在同一VPC内。

  • 请保证您的Ambari节点在Lindorm白名单中,如何添加白名单请参见设置白名单

    说明

    本文中所涉及范例使用的CDH版本为V6.3.2。Lindorm文件引擎支持CDH 5.13.0以上版本,其他版本请咨询 专家服务

一、配置文件引擎为默认的存储引擎

  1. 开通Lindorm文件引擎,具体步骤请参见 开通指南

  2. 配置Lindorm文件引擎链接。

    1. 登入 CDH6 系统主页,选择配置 > 高级配置代码段,进入高级配置代码段页面。

      截图1
    2. 原HDFS采用HA模式(HDFS NameNode主备模式)部署,如果原HDFS非HA模式部署,请将其初始化为HA模式。

    3. 在最上面的搜索框中搜索 hdfs-site.xml

    4. hdfs-site.xml 的 HDFS 客户端高级配置代码段(安全阀)区域中,添加如下Lindorm文件引擎配置项,如下:

      名称

      说明

      是否必配

      dfs.client.failover.proxy.provider.{实例ID}

      org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

      主备切换策略配置

      dfs.ha.namenodes.${实例ID}

      nn1,nn2

      HA 模式下主备 NameNode 的服务ID名称

      dfs.namenode.rpc-address.${实例ID}.nn1

      ${实例ID}-master1-001.lindorm.rds.aliyuncs.com:8020

      NameNode 第一个节点RPC通信地址

      dfs.namenode.rpc-address.${实例ID}.nn2

      ${实例ID}-master2-001.lindorm.rds.aliyuncs.com:8020

      NameNode 第二个节点RPC通信地址

      dfs.nameservices

      ${实例ID},nameservice1

      nameservice1 为原来的 hdfs 的服务名称

      点击下图的按钮可以添加配置。截图1111

      说明

      其中${实例ID},需要根据实际情况进行修改。

    5. hdfs-site.xml 的 HDFS 服务高级配置代码段(安全阀)区域中,添加如下Lindorm文件引擎配置项,如下:

      名称

      说明

      是否必配

      dfs.client.failover.proxy.provider.{实例ID}

      org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

      dfs.ha.namenodes.${实例ID}

      nn1,nn2

      HA 模式下主备 NameNode 的服务ID名称

      dfs.namenode.rpc-address.${实例ID}.nn1

      ${实例ID}-master1-001.lindorm.rds.aliyuncs.com:8020

      dfs.namenode.rpc-address.${实例ID}.nn2

      ${实例ID}-master2-001.lindorm.rds.aliyuncs.com:8020

      dfs.nameservices

      ${实例ID},nameservice1

      nameservice1 为原来的 hdfs 的服务名称

      点击下图的按钮可以添加配置。35

      说明

      其中${实例ID},需要根据实际情况进行修改。

    6. 在搜索框中搜索 core-site.xml

    7. core-site.xml 的群集范围高级配置代码段(安全阀)区域中,添加 fs.defaultFS , 其值:hdfs://${实例ID} , 含义是将 文件引擎设置为默认的存储引擎。

    8. 单击 保存更改

    9. 返回CDH6 系统主页,找到 HDFS,点击图标进入HDFS 控制台, 然后再 点击操作 >部署客户端配置

      截图8截图7

  3. 验证 CDH6 集群是否默认访问文件引擎。

    1. 在CDH6集群中的任一一个节点上执行如下指令。

      $ hadoop fs -ls /
    2. 执行结果如下,表示链接配置成功。

      截图9

二 、安装Yarn服务

  1. 修改 Yarn 的安装脚本。

    1. 登入您准备作为 ResourceManager (Yarn 服务中资源的管控节点) 。

    2. 执行如下的指令修改 安装脚本。

      # sudo su -
      root@cdhlindorm001 /opt/cloudera/cm-agent/service $ vim /opt/cloudera/cm-agent/service/yarn/yarn.sh
        # 找到 DEFAULT_FS , 并在其下面添加如下配置信息。
        DEFAULT_FS="$3"
        DEFAULT_FS="hdfs://{实例ID}
        # 其中${实例ID},需要根据实际情况进行修改。
      说明

      该脚本是Yarn 在安装的时候,用于配置环境的脚本。

  2. 登录CDH6管理系统,点击集群名称右边的截图10, 然后点击 添加服务 ,进入安装向导界面。

    截图11
  3. 选择 YRAN 服务,点击 继续, 根据 安装指南配置 YARN 服务,配置都可以按照默认配置。

    截图12
  4. 等服务安装完成之后,需要修改 mapred-site.xml 配置。

    1. 登入 CDH6 系统主页,选择配置 > 高级配置代码段,进入高级配置代码段页面。

    2. 在最上面的搜索框中搜索mapred-site.xml。

    3. 在YARN 服务 MapReduce 高级配置代码段(安全阀)中,添加如下配置项。

      配置项mapreduce.application.framework.path,其值:/user/yarn/mapreduce/mr-framework/{version}-mr- framework.tar.gz#mr-framework

      截图13
    4. 单击 保存更改

  5. 配置 Yarn 可以分配的内存容量 (因为在我们完成Spark安装之后需要通过Yarn启动程序)。

    1. 返回 CDH6 系统主页,找到 YARN,点击进入Yarn控制台。

    2. 找到 配置 ,点击进入。

      46
    3. 在最上面的搜索框中输入 yarn.scheduler.maximum-allocation-mb,将其值设置为 20G(该值根据您实际的情况配置)。

      46
    4. 在最上面的搜索框中输入yarn.nodemanager.resource.memory-mb,将其值设置为 20G(该值根据您实际的情况配置)。

      47
    5. 单击 保存更改

  6. 部署新配置并重启服务。

    1. 返回 CDH6 管理系统界面,找到 YARN,单击重新部署图标,进行重新部署。

    2. 过期配置页面,单击重启过时服务

      50
    3. 重启过时服务 页面,选择需要重启的服务 ,单击立即重启

    4. 等待服务全部重启完成,并重新部署客户端配置后,单击完成

  7. 验证 hive 服务是否启动成功。

    使用 CDH6 Hadoop 中自带的测试包hadoop-mapreduce-examples-3.0.0-cdh6.3.2.jar 进行测试。在CDH6中,该测试包在/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/jars 下。

    1. 登入CDH6 任一一台机器,执行以下命令,在/tmp/randomtextwriter目录下生成128M大小的文件。

      yarn jar /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/jars/hadoop-mapreduce-examples-3.0.0-cdh6.3.2.jar randomtextwriter  -D mapreduce.randomtextwriter.totalbytes=134217728  -D mapreduce.job.maps=4 -D mapreduce.job.reduces=4   /tmp/randomtextwriter

      其中hadoop-mapreduce-examples-3.1.1.3.1.4.0-315.jar 为 CDH 6 中的测试包,请根据实际情况修改。

    2. 检查任务是否已经提交到Yarn 上执行。

      1. 在 CDH6 任一一台机器,执行以下命令。

        $ yarn application -list

        如果执行结果如下,表示 YARN 正常运行。

        截图16
      2. 检查文件是否正常生成。

        1. 在 CDH6 任一一台机器,执行以下命令。

          $  hadoop fs -ls  /tmp/randomtextwriter

          如果执行结果如下,正常运行。

          截图20

三、安装HIVE服务

  1. 安装 Mysql 数据库,并创建用来存储 hive 元数据信息的DataBase。

    1. 登入 CDH6 任意的一台机器,执行如下指令,进行安装。

      # 切换到 root 
      sudo su -
      # 下载 mysql 的rpm 源
      root@cdhlindorm001 ~/tool $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm、
      #安装 mysql server和mysql 客户端
      root@cdhlindorm001 ~/tool $ yum install mysql-server mysql -y

    2. 启动 mysql 服务,并且创建用户,设置用户的权限。

      1. 执行如下指令进行操作。

        # 启动 mysql 服务
        root@cdhlindorm001 ~/tool $ systemctl start mysqld.service
        # 登入mysql 终端,创建用户,并且设置权限
        root@cdhlindorm001 ~/tool $ mysql
        Welcome to the MySQL monitor.  Commands end with ; or \g.
        Your MySQL connection id is 2
        Server version: 5.6.50 MySQL Community Server (GPL)
        
        Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
        
        Oracle is a registered trademark of Oracle Corporation and/or its
        affiliates. Other names may be trademarks of their respective
        owners.
        
        Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
        
        mysql> CREATE USER 'hive'@'%' IDENTIFIED BY '123456';
        Query OK, 0 rows affected (0.00 sec)
        mysql> create DATABASE hive;
        Query OK, 1 row affected (0.00 sec)
        mysql> use mysql;
        Query OK, 0 rows affected (0.00 sec)
        mysql> delete from user;
        Query OK, 9 rows affected (0.00 sec)
        mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
        # 刷新权限
        mysql> flush privileges;
        Query OK, 0 rows affected (0.01 sec)
      2. 验证 mysql 是否配置成功。

        # 登入成功,配置完成
        root@cdhlindorm001 ~/tool $ mysql -uroot -p
        Warning: Using a password on the command line interface can be insecure.
        Welcome to the MySQL monitor.  Commands end with ; or \g.
        Your MySQL connection id is 10
        Server version: 5.6.50 MySQL Community Server (GPL)
        
        Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
        
        Oracle is a registered trademark of Oracle Corporation and/or its
        affiliates. Other names may be trademarks of their respective
        owners.
        
        Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  2. 登录CDH6管理系统,点击集群名称右边的截图10, 然后点击 添加服务 ,进入安装向导界面。

  3. 选择 HIVE 服务,点击 继续, 根据 安装指南配置 HIVE 服务,根据向导配置对应的参数。

    截图21
    1. 配置 数据库信息。

      截图22
    2. 开始安装,并且等待安装完成。

      截图23
  4. 验证是否启动成功。

    1. 登入CDH6 任一一台机器,执行以下命令。

      # 登入 hive 客户端
      [root@cdhlindorm001 ~]# hive
      WARNING: Use "yarn jar" to launch YARN applications.
      SLF4J: Class path contains multiple SLF4J bindings.
      SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/jars/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/jars/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
      SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
      
      Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/jars/hive-common-2.1.1-cdh6.3.2.jar!/hive-log4j2.properties Async: false
      
      WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
      hive> create table foo (id int, name string);
      OK
      Time taken: 1.409 seconds
      hive> insert into table foo select * from (select 12,"xyz")a;
      Query ID = root_20201126162112_59e6a5fc-99c2-45a4-bf84-73c16c39de8a
      Total jobs = 3
      Launching Job 1 out of 3
      Number of reduce tasks is set to 0 since there's no reduce operator
      20/11/26 16:21:12 INFO client.RMProxy: Connecting to ResourceManager at cdhlindorm001/192.168.0.218:8032
      20/11/26 16:21:13 INFO client.RMProxy: Connecting to ResourceManager at cdhlindorm001/192.168.0.218:8032
      Starting Job = job_1606364936355_0003, Tracking URL = http://cdhlindorm001:8088/proxy/application_1606364936355_0003/
      Kill Command = /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hadoop/bin/hadoop job  -kill job_1606364936355_0003
      Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
      2020-11-26 16:21:20,758 Stage-1 map = 0%,  reduce = 0%
      2020-11-26 16:21:25,864 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.17 sec
      MapReduce Total cumulative CPU time: 1 seconds 170 msec
      Ended Job = job_1606364936355_0003
      Stage-4 is selected by condition resolver.
      Stage-3 is filtered out by condition resolver.
      Stage-5 is filtered out by condition resolver.
      Moving data to directory hdfs://ld-xxxxxxxxxxx/user/hive/warehouse/foo/.hive-staging_hive_2020-11-26_16-21-12_133_7009525880995260840-1/-ext-10000
      Loading data to table default.foo
      MapReduce Jobs Launched:
      Stage-Stage-1: Map: 1   Cumulative CPU: 1.17 sec   HDFS Read: 5011 HDFS Write: 74 HDFS EC Read: 0 SUCCESS
      Total MapReduce CPU Time Spent: 1 seconds 170 msec
      OK
      Time taken: 15.429 seconds
    2. 通过hive 的终端,查询写入的数据,如果正确查询出数据,表示hive安装完成。

      hive> select * from foo;
      OK
      12 xyz
      Time taken: 0.091 seconds, Fetched: 1 row(s)
      hive>
    3. 查看文件是否正常生成 。

      1. 通过下面的执行,查询文件信息。

        [root@cdhlindorm001 ~]# hadoop fs -ls /user/hive/warehouse/foo
      2. 如果结果如下图,表示 hive 对接文件引擎正常。

        截图25

四 、 安装HBASE服务

  1. 登录CDH6管理系统,点击集群名称右边的截图10, 然后点击 添加服务 ,进入安装向导界面。

    27
  2. 选择 Hbase 服务,点击 继续, 根据 安装指南配置 Hbase 服务,配置都可以按照默认配置。

    1. 开始安装。

      截图30
    2. 出现下面的截图,表示安装成功, 点击完成。

      31

  3. 修改 hbase-site.xml 配置。

    1. 在CDH6 系统主页,选择配置 > 高级配置代码段,进入高级配置代码段页面。

    2. 在最上面的搜索框中搜索 hbase-site.xml。

    3. hbase-site.xml 的 HBase 服务高级配置代码段(安全阀)hbase-site.xml 的 HBase 客户端高级配置代码段(安全阀)中,都要添加如下配置项。

      1. 配置项hbase.rootdir,其值:/hbase 。

      2. 配置项hbase.unsafe.stream.capability.enforce,其值:false 。

        32
      3. 点击 保存更改

  4. 部署新配置并启动服务。

    1. 返回 CDH6 管理系统界面,找到 YARN,单击重新部署图标,进行重新部署。

      36
    2. 过期配置页面,单击重启过时服务

    3. 重启过时服务 页面,选择需要重启的服务 ,单击立即重启

    4. 等待服务全部重启完成,并重新部署客户端配置后,单击完成

  5. 验证 Hbase 是否运行正常,登入CDH6 任一一台机器执行下面的命令。

    1. 执行以下命令进入hbase shell命令界面。

      [root@cdhlindorm001 ~]# hbase shell
      HBase Shell
      Use "help" to get list of supported commands.
      Use "exit" to quit this interactive shell.
      For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
      Version 2.1.0-cdh6.3.2, rUnknown, Fri Nov  8 05:44:07 PST 2019
      Took 0.0009 seconds
      hbase(main):001:0>
    2. 在HBase中创建测试表,并且写入一些数据。

      [root@cdhlindorm001 ~]# hbase shell
      HBase Shell
      Use "help" to get list of supported commands.
      Use "exit" to quit this interactive shell.
      For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
      Version 2.1.0-cdh6.3.2, rUnknown, Fri Nov  8 05:44:07 PST 2019
      Took 0.0009 seconds
      hbase(main):001:0> create 'hbase_test','info'
      Created table hbase_test
      Took 1.0815 seconds
      => Hbase::Table - hbase_test
      hbase(main):002:0> put 'hbase_test','1', 'info:name' ,'Sariel'
      Took 0.1233 seconds
      hbase(main):003:0>  put 'hbase_test','1', 'info:age' ,'22'
      Took 0.0089 seconds
      hbase(main):004:0> put 'hbase_test','1', 'info:industry' ,'IT'
      Took 0.0115 seconds

    3. 执行如下指令查询刚刚写入的数据,验证Hbase 是否正常。

      hbase(main):005:0> scan 'hbase_test'

      如果执行结果如下,表示Hbase 服务正常。

      36
    4. 执行以下命令查看文件引擎的/hbase/data/default 路径,如果/hbase/data/default 路径下有hbase_test目录,则证明配置成功。

      # hadoop fs -ls /hbase/data/default
      41

五 、安装Spark服务

  1. 登录CDH6管理系统,点击集群名称右边的截图10, 然后点击 添加服务 ,进入安装向导界面。

  2. 选择 Spark 服务,点击 继续, 根据 安装指南配置 Spark 服务,配置都可以按照默认配置。

    1. 选择依赖, 根据您实际的情况进行选择。

      43
    2. 开始安装。

      45
    3. 安装完成。

      46

  3. 启动服务(这是因为安装完成之后,spark并没有启动)。

    1. 返回 CDH6 管理系统界面,找到 Spark

    2. 点击边上的,单击启动

      53
  4. 验证 Saprk 启动是否成功。

    1. 登入CDH 6 任一一台机器,使用spark测试包从文件引擎上读取测试文件。

      [root@cdhlindorm001 ~]# spark-submit   --master yarn --executor-memory 900M --executor-cores 2  --class org.apache.spark.examples.DFSReadWriteTest  /opt/cloudera/parcels/CDH/jars/spark-examples_2.11-2.4.0-cdh6.3.2.jar   /etc/profile /output
    2. 如果回显信息类似如下图所示,执行成功。

      56
    3. 执行下面的指令,查看生成的结果数据。

      [root@cdhlindorm001 ~]# hadoop fs -ls /output/dfs_read_write_test

      如果执行结果如下,表示spark 启动没有问题。

      66