大数据从入门到实战 - HBase 开发:使用Java操作HBase_hbase 开发:使用java操作hbase

大数据从入门到实战 - HBase 开发:使用Java操作HBase
  • 一、关于此次实践
    • 1、实战简介
    • 2、全部任务
  • 二、实践详解
    • 1、第1关:创建表
    • 2、第2关:添加数据
    • 3、第3关:获取数据
    • 4、第4关:删除表

叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!

一、关于此次实践

1、实战简介

HBase和Hadoop一样,都是用Java进行开发的,本次实训我们就来学习如何使用Java编写代码来操作HBase数据库。

实验环境: hadoop-2.7 JDK8.0 HBase2.1.1

2、全部任务

二、实践详解

1、第1关:创建表

package step1; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.util.Bytes; /** * HBase 1.0 version of ExampleClient that uses {@code Connection}, * {@code Admin} and {@code Table}. */ public class Task{ public void createTable()throws Exception{ /********* Begin *********/ Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); try { // Create table Admin admin = connection.getAdmin(); try { TableName tableName = TableName.valueOf("dept"); // 新 API 构建表 // TableDescriptor 对象通过 TableDescriptorBuilder 构建; TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName); ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();// 构建列族对象 tableDescriptor.setColumnFamily(family); // 设置列族 admin.createTable(tableDescriptor.build()); // 创建表 TableName emp = TableName.valueOf("emp"); // 新 API 构建表 // TableDescriptor 对象通过 TableDescriptorBuilder 构建; TableDescriptorBuilder empDescriptor = TableDescriptorBuilder.newBuilder(emp); ColumnFamilyDescriptor empfamily = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("emp")).build();// 构建列族对象 empDescriptor.setColumnFamily(empfamily); // 设置列族 admin.createTable(empDescriptor.build()); // 创建表 } finally { admin.close(); } } finally { connection.close(); } /********* End *********/ } }
命令行: start-dfs.sh ( Hadoop 启动) 回车 start-hbase.sh ( hbase 启动)

测评

2、第2关:添加数据

package step2; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.util.Bytes; public class Task { public void insertInfo()throws Exception{ /********* Begin *********/ Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); Admin admin = connection.getAdmin(); TableName tableName = TableName.valueOf("tb_step2"); TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName); ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data")).build();// 构建列族对象 tableDescriptor.setColumnFamily(family); // 设置列族 admin.createTable(tableDescriptor.build()); // 创建表 // 添加数据 byte[] row1 = Bytes.toBytes("row1"); Put put1 = new Put(row1); byte[] columnFamily1 = Bytes.toBytes("data"); // 列 byte[] qualifier1 = Bytes.toBytes(String.valueOf(1)); // 列族修饰词 byte[] value1 = Bytes.toBytes("张三丰"); // 值 put1.addColumn(columnFamily1, qualifier1, value1); byte[] row2 = Bytes.toBytes("row2"); Put put2 = new Put(row2); byte[] columnFamily2 = Bytes.toBytes("data"); // 列 byte[] qualifier2 = Bytes.toBytes(String.valueOf(2)); // 列族修饰词 byte[] value2 = Bytes.toBytes("张无忌"); // 值 put2.addColumn(columnFamily2, qualifier2, value2); Table table = connection.getTable(tableName); table.put(put1); table.put(put2); /********* End *********/ } }

测评

3、第3关:获取数据

package step3; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.util.Bytes; public class Task { public void queryTableInfo()throws Exception{ /********* Begin *********/ Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); Admin admin = connection.getAdmin(); TableName tableName = TableName.valueOf("t_step3"); Table table = connection.getTable(tableName); // 获取数据 Get get = new Get(Bytes.toBytes("row1")); // 定义 get 对象 Result result = table.get(get); // 通过 table 对象获取数据 //System.out.println("Result: " + result); // 很多时候我们只需要获取“值” 这里表示获取 data:1 列族的值 byte[] valueBytes = result.getValue(Bytes.toBytes("data"), Bytes.toBytes("1")); // 获取到的是字节数组 // 将字节转成字符串 String valueStr = new String(valueBytes,"utf-8"); System.out.println("value:" + valueStr); TableName tableStep3Name = TableName.valueOf("table_step3"); Table step3Table = connection.getTable(tableStep3Name); // 批量查询 Scan scan = new Scan(); ResultScanner scanner = step3Table.getScanner(scan); try { int i = 0; for (Result scannerResult: scanner) { //byte[] value = scannerResult.getValue(Bytes.toBytes("data"), Bytes.toBytes(1)); // System.out.println("Scan: " + scannerResult); byte[] row = scannerResult.getRow(); System.out.println("rowName:" + new String(row,"utf-8")); } } finally { scanner.close(); } /********* End *********/ } }

测评

4、第4关:删除表

package step4; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor; import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.client.TableDescriptor; import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.util.Bytes; public class Task { public void deleteTable()throws Exception{ /********* Begin *********/ Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); Admin admin = connection.getAdmin(); TableName tableName = TableName.valueOf("t_step4"); admin.disableTable(tableName); admin.deleteTable(tableName); /********* End *********/ } }

测评

Ending!
更多课程知识学习记录随后再来吧!

就酱,嘎啦!

注:
人生在勤,不索何获。

Java开发的就业市场正在经历结构性调整,竞争日益激烈

传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业技术需求升级,市场对Java人才的要求已从通用技能转向了更深入的领域经验(如云原生、微服务)或前沿的AI集成能力。这也导致岗位竞争加剧,在一、二线城市,求职者不仅面临技术内卷,还需应对学历与项目经验的高门槛。

大模型为核心的AI领域正展现出前所未有的就业热度与人才红利

2025年,AI相关新发岗位数量同比激增543%,单月增幅最高超过11倍,大模型算法工程师位居热门岗位前列。行业顶尖人才的供需严重失衡,议价能力极强,跳槽薪资涨幅可达30%-50%。值得注意的是,市场并非单纯青睐算法研究员,而是急需能将大模型能力落地于复杂业务系统的工程人才。这使得具备企业级架构思维和复杂系统整合经验的Java工程师,在向“Java+大模型”复合人才转型时拥有独特优势,成为企业竞相争夺的对象,其薪资天花板也远高于传统Java岗位。

说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。

结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”

先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。

即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!

如何学习AGI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

四、大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1140220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qwen3-VL声音输入扩展:语音转文字+多模态理解,会议记录神器

Qwen3-VL声音输入扩展:语音转文字多模态理解,会议记录神器 引言 作为一名行政人员,你是否经常被繁琐的会议记录工作困扰?传统的人工记录方式不仅耗时耗力,还容易遗漏关键信息。现在,借助Qwen3-VL的声音输…

HY-MT1.5实战案例:跨境电商多语种客服系统搭建详细步骤

HY-MT1.5实战案例:跨境电商多语种客服系统搭建详细步骤 随着全球化进程加速,跨境电商平台对多语言客服系统的实时性、准确性与部署灵活性提出了更高要求。传统云翻译服务虽具备一定能力,但在数据隐私、响应延迟和定制化支持方面存在明显短板…

混元翻译1.5:专业领域翻译优化秘籍

混元翻译1.5:专业领域翻译优化秘籍 1. 技术背景与问题提出 随着全球化进程加速,跨语言沟通已成为企业出海、科研协作和内容传播的核心需求。然而,通用翻译模型在面对专业术语密集、上下文依赖强、混合语言表达等复杂场景时,往往出…

Qwen3-VL-WEBUI隐私保护版:数据自动清除,安全无忧

Qwen3-VL-WEBUI隐私保护版:数据自动清除,安全无忧 1. 为什么医院需要隐私保护版AI? 医院信息科在日常工作中经常需要处理大量检验报告、影像资料等敏感医疗数据。这些数据不仅包含患者隐私,还受《个人信息保护法》《医疗数据安全…

开发者必看:HY-MT1.5-1.8B/7B双模型镜像部署实战测评

开发者必看:HY-MT1.5-1.8B/7B双模型镜像部署实战测评 随着多语言交流需求的不断增长,高质量、低延迟的翻译模型成为开发者构建全球化应用的核心组件。腾讯近期开源的混元翻译大模型 HY-MT1.5 系列,凭借其在翻译质量、部署灵活性和功能创新上…

混元翻译1.5模型服务化:Kubernetes部署指南

混元翻译1.5模型服务化:Kubernetes部署指南 1. 引言 随着全球化进程的加速,高质量、低延迟的机器翻译需求日益增长。腾讯开源的混元翻译大模型 HY-MT1.5 系列,凭借其卓越的语言理解能力与多场景适配性,正在成为企业级翻译服务的重…

鸿蒙高性能编程:使用 Napi (Node-API) 让 ArkTS 调用 C++ 算法库,计算速度提升 50 倍

🐢 前言:ArkTS 的性能边界在哪里? ArkTS 虽然有 AOT 加持,但本质上还是基于对象的动态语言模型。 当涉及到: 海量循环(如:图像像素级遍历)。指针操作(如:内存…

Hunyuan-HY-MT1.5实战教程:3步完成GPU算力适配,翻译效率提升50%

Hunyuan-HY-MT1.5实战教程:3步完成GPU算力适配,翻译效率提升50% 腾讯混元团队近期开源了新一代翻译大模型 Hunyuan-HY-MT1.5,包含两个版本:HY-MT1.5-1.8B(18亿参数)和 HY-MT1.5-7B(70亿参数&am…

Qwen3-VL多图分析技巧:云端并行计算,速度提升5倍

Qwen3-VL多图分析技巧:云端并行计算,速度提升5倍 引言:当数据分析遇上多图处理难题 作为一名数据分析师,你是否经常遇到这样的场景:需要同时分析上千张产品图片,提取关键信息?比如电商平台要统…

汽水音乐 5.6.0 | 无广告流畅体验,畅听正版歌曲

抖音出品官方音乐app,随时随地,懂你想听。 个性推荐,发现小众好歌。发现好音乐不再是难题。根据你和品味相似的人的听歌偏好,为你推荐感兴趣的歌曲,拒绝千篇一律,懂你想听。 场景音乐&分类电台&#xf…

HY-MT1.5部署稳定性测试:压力测试与容错机制实战

HY-MT1.5部署稳定性测试:压力测试与容错机制实战 随着多语言交流需求的不断增长,高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯开源的混元翻译大模型 HY-MT1.5 系列,凭借其在多语言支持、边缘部署能力和翻译质量上的综合优势&#…

Hunyuan-HY-MT1.5如何保障数据安全?本地部署翻译系统实战指南

Hunyuan-HY-MT1.5如何保障数据安全?本地部署翻译系统实战指南 在当前全球化与数字化并行的时代,机器翻译已成为跨语言沟通的核心工具。然而,随着企业对数据隐私和合规性要求的日益提升,依赖云端API的传统翻译服务面临敏感信息泄露…

AI智能实体侦测服务容器化部署:Docker镜像运行最佳实践

AI智能实体侦测服务容器化部署:Docker镜像运行最佳实践 1. 引言:AI 智能实体侦测服务的工程价值 在信息爆炸的时代,非结构化文本数据(如新闻、社交媒体、文档)占据了企业数据总量的80%以上。如何从中高效提取关键信息…

音频流转实战:如何让手机正在播放的音乐,自动流转到鸿蒙智能音箱上?

🔊 前言:为什么不直接用蓝牙?维度蓝牙 (Bluetooth A2DP)鸿蒙流转 (Distributed Audio)传输介质蓝牙 (带宽低,易受干扰)Wi-Fi / 软总线 (高带宽,无损音质)手机状态必须做解码和传输,耗电仅做控制&#xff0c…

HY-MT1.5-1.8B性能优化:如何在低配GPU上高效运行

HY-MT1.5-1.8B性能优化:如何在低配GPU上高效运行 1. 引言 随着多语言交流需求的不断增长,高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯开源的混元翻译大模型 HY-MT1.5 系列,凭借其卓越的语言覆盖能力和翻译质量,迅速在…

鸿蒙 IoT 开发:基于 Hi3861 开发板,30 行代码实现“碰一碰”自动配网

📡 前言:从“繁琐”到“无感” 做过 ESP32 或 STM32 联网开发的都知道,写一个稳定的 SoftAP 配网网页需要几百行代码。 但在鸿蒙生态中,配网被封装成了系统级服务。 我们利用 NAN (Neighbor Awareness Networking) 通道&#xff0…

HY-MT1.5部署太复杂?镜像免配置方案让效率翻倍

HY-MT1.5部署太复杂?镜像免配置方案让效率翻倍 1. 背景与挑战:大模型翻译落地的“最后一公里”难题 随着多语言交流需求的爆发式增长,高质量、低延迟的机器翻译成为智能应用的核心能力之一。腾讯近期开源了其新一代混元翻译大模型 HY-MT1.5…

为什么HY-MT1.5-7B更适合复杂场景?混合语言实战评测

为什么HY-MT1.5-7B更适合复杂场景?混合语言实战评测 在大模型驱动的自然语言处理浪潮中,翻译模型正从“通用型”向“专业化、场景化”演进。腾讯近期开源的混元翻译大模型 HY-MT1.5 系列,凭借其对多语言、混合语种及复杂上下文场景的深度优化…

HY-MT1.5-7B大规模部署:GPU资源规划指南

HY-MT1.5-7B大规模部署:GPU资源规划指南 随着多语言交流需求的不断增长,高质量、低延迟的翻译模型成为全球化应用的核心基础设施。腾讯开源的混元翻译大模型HY-MT1.5系列,凭借其在多语言支持、翻译质量与部署灵活性上的突出表现,…

NestJS中使用TypeORM

文章目录前言1. 最核心的几个装饰器(必须记住)2. NestJS 提供的 TypeORM 集成工具(nestjs/typeorm 包)3. 常用 Repository 操作速查表4. 目前主流推荐的几种写法风格(2025~2026)5. 小Tips(非常实…