Spark写入数据到Hbase(上)

Spark与HBase交互实战
本文分享了使用Scala与Spark进行HBase数据读写的实践过程,包括环境搭建、代码实现及常见问题解决,如配置zookeeper.znode.parent及解决Put.add接口变更等。

这是个踩坑的过程,上篇的虽然跑通了,但是其实版本配置有问题,记得看下篇😀
环境配置:
Scala:2.12.1
Spark:2.4.4
Hbase:2.2.3


前言:
前面有篇文章我使用了pyspark,弄得我很累,感觉python开发确实没那么好,看了些网上的文章和问了下朋友决定还是学学使用scala。(可以看看这个,我觉得挺有道理的.)
环境:
因为我也是第一次搞scala,如果你们也是的话,可以参考一下:
windows上 IntelliJ IDEA安装scala环境 详细 初学.
IDEA 开发 scala.

代码:

这里我参考了这个:http://dblab.xmu.edu.cn/blog/1316-2/.

只要代码测试成功了我再往下写,可是因为环境版本不一样,我改了一些地方的。

我们先建表和插入一些数据进去:(复制黏贴到hbase shell里面就一次过全部执行了,我是不是很贴心)

create 'student','info'
put 'student','1','info:name','Xueqian'
put 'student','1','info:gender','F'
put 'student','1','info:age','23'
put 'student','2','info:name','Weiliang'
put 'student','2','info:gender','M'
put 'student','2','info:age','24'

Pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.shct</groupId>
    <artifactId>sparkhbasetest</artifactId>
    <version>1.0-SNAPSHOT</version>


    <properties>
        <jdk.version>1.8</jdk.version>
        <scala.version>2.12.1</scala.version>
        <spark.version>2.4.4</spark.version>
        <hadoop.version>3.1.2</hadoop.version>
        <hbase.version>2.2.3</hbase.version>
    </properties>
    <dependencies>
        <!--scala-->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
        </dependency>

        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-reflect</artifactId>
            <version>${scala.version}</version>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-compiler</artifactId>
            <version>${scala.version}</version>
        </dependency>

        <!--spark-core-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <!--hadoop-->
        <dependency>
            <groupId>org.apache.hadoop</groupId
已经为您指定了 IP 地址块 192.168.111.0 /24,您必须为三个现有的网络分配地址。 子网的具体情况为: 第 1 个子网为现有的学生 LAN,最多支持 100 台主机;(R2-Central 上的 Fa0/0) 第 2 个子网为现有的 ISP LAN,最多支持 5 台主机;(已配置) 第 3 个子网为现有的 WAN,采用点到点链路;(已配置) 接口 IP 地址: 服务器 R1-ISP 和 R2-Central 的串行接口已经配置。 对于 R2-Central 的 Fa0/0 接口,使用现有学生 LAN 子网中可用的最大地址。 对于主机 1A 和 1B,使用现有学生 LAN 子网中前两个 IP 地址(可用的两个最小地址)。 对于主机 1A 和 1B,DNS 服务器为 192.168.111.133 /29。 下一跳路由器(默认路由指向的路由器)R1-ISP 的 IP 地址为 192.168.111.138 /30。 任务 2:修复以太网交换 LAN 的问题。 PC 1B 中安装了无线网卡,但无法连接到交换机;添加快速以太网卡 PT-HOST-NM-1CFE 到 PC 1B。 将这张新安装的快速以太网卡连接到交换机的 Fa0/2 接口。 将 PC 1A 连接到交换机的 Fa0/1 接口。 将交换机的 Fa0/24 接口连接到 R2-Central Fa0/0 接口。 很明显,R2-Central Fa0/0 接口、S1-Central 交换机接口(Fa0/1、Fa0/2 和 Fa0/24)及 PC 1A 接口的以太网速度和双工设置不正确。请将所有以太网接口设置为自动协商速度和双工(如果链路的两端都支持,这将实现全双工 100 Mbps 运行)。对于所有设备,请确保设备和接口的电源都已经打开(确保以太网接口没有关闭)。将 IP 地址添加到路由器 Fa0/0 接口以及两台 PC 中。将可用的最大子网地址分配给网关,可用的两个最小地址分配给 PC。R2-Central 上的静态路由应为通过 R1-ISP 串行接口 IP 地址指向的默认静态路由。这些步骤在第 5 章和第 6 章的“综合技巧练习”中都有详细说明。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值