gitweixin
  • 首页
  • 小程序代码
    • 资讯读书
    • 工具类
    • O2O
    • 地图定位
    • 社交
    • 行业软件
    • 电商类
    • 互联网类
    • 企业类
    • UI控件
  • 大数据开发
    • Hadoop
    • Spark
    • Hbase
    • Elasticsearch
    • Kafka
    • Flink
    • 数据仓库
    • 数据挖掘
    • flume
    • Kafka
    • Hive
    • shardingsphere
    • solr
  • 开发博客
    • Android
    • php
    • python
    • 运维
    • 技术架构
    • 数据库
  • 程序员网赚
  • bug清单
  • 量化投资
  • 在线查询工具
    • 去行号
    • 在线时间戳转换工具
    • 免费图片批量修改尺寸在线工具
    • SVG转JPG在线工具

分类归档CDH

精品微信小程序开发门户,代码全部亲测可用

  • 首页   /  大数据开发
  • 分类归档: "CDH"
CDH, Hbase, Hive 4月 25,2024

hive创建hbase外部关联表

在cdh6.3.2已经做好hbase和hive相关配置,这里不阐述。

要创建上述的表结构,你需要先在HBase中创建相应的表,然后在Hive中创建一个EXTERNAL TABLE来映射到这个HBase表。以下是详细的步骤:

步骤1:在HBase中创建表

  1. 确定HBase的安装和配置是否正确。
  2. 确定HBase的shell工具能够正常使用。

打开HBase shell:

hbase shell

在HBase shell中,创建一个表analysis_minute和一个列族bls:

create 'analysis_minute', 'bls'

退出HBase shell:

quit

步骤2:在Hive中创建EXTERNAL TABLE

  1. 确保Hive安装和配置正确。
  2. 确保HBaseStorageHandler已经包含在Hive的配置中。

使用Hive的命令行界面或者你的IDE来执行下面的SQL语句:

CREATE EXTERNAL TABLE analysis_minute_hbase (
  key STRING,
  pid STRING,
  time STRING,
  val STRING
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
  'hbase.columns.mapping' = ':key,bls:pid,bls:time,bls:val',
  'serialization.format' = '1'
)
TBLPROPERTIES (
  'hbase.table.name' = 'analysis_minute',
  'last_modified_by' = 'hdfs',
  'last_modified_time' = '1713990161',
  'numFiles' = '0',
  'numFilesErasureCoded' = '0',
  'numRows' = '0',
  'rawDataSize' = '0',
  'storage_handler' = 'org.apache.hadoop.hive.hbase.HBaseStorageHandler',
  'totalSize' = '0'
);

这段SQL语句做了以下几件事情:

  • 创建了一个EXTERNAL TABLE,意味着数据存储在HBase中,而不是Hive的数据仓库目录中。
  • 使用了HBaseStorageHandler来允许Hive与HBase交互。
  • 定义了四个字段,分别对应于HBase表中的列。
  • 通过WITH SERDEPROPERTIES定义了Hive字段到HBase列族的映射。
  • 通过TBLPROPERTIES定义了HBase表的名称和其他属性。

注意事项:

  • 确保HBase表analysis_minute和列族bls已经存在,Hive才能正确创建EXTERNAL TABLE。
  • 确认Hive配置文件中已经包含了HBaseStorageHandler的jar包。
  • 如果HBase表或列族名称与Hive表结构中的名称不匹配,Hive将无法找到对应的HBase表。
  • 在执行上述Hive SQL语句之前,你可能需要根据你的Hadoop和Hive版本调整配置参数。
作者 east
CDH, Hbase 4月 25,2024

如何在docker上面使用hbase shell

在新公司上班,hbase是cdh6.3.2安装在docker上面,如何直接在shell上面使用hbase shell是访问不到的。使用教程如下:

要在Docker上使用CDH 6.3.2中的HBase shell,你需要按照以下步骤操作:

步骤1:启动HBase服务

  1. 确保你的Docker环境已经启动,并且CDH 6.3.2的HBase服务已经随着CDH的安装被正确配置和启动。这通常通过Cloudera Manager完成,它提供了一个用户界面来管理CDH集群中的所有服务。
  2. 如果HBase服务尚未启动,你可以使用Cloudera Manager启动HBase Master和HBase RegionServer服务。

步骤2:进入HBase Shell

  1. 确定HBase服务运行正常后,使用Docker exec命令进入到运行HBase的容器中:docker exec -it <container_name_or_id> /bin/bash请将<container_name_or_id>替换为实际的容器名称或ID。
  2. 在容器内部,你可以使用HBase shell命令来启动HBase的交互式命令行界面:hbase shell

步骤3:使用HBase Shell命令

在HBase shell中,你可以执行多种操作,例如:

  • 创建表:create 'table_name', 'column_family'
  • 列出表:list
  • 插入数据:put 'table_name', 'row_id', 'column_family:column', 'value'
  • 获取数据:get 'table_name', 'row_id'
  • 扫描表:scan 'table_name'
  • 禁用表:disable 'table_name'
  • 启用表:enable 'table_name'
  • 删除表:drop 'table_name'

示例:在HBase shell中创建表并插入数据

  1. 启动HBase shell。
  2. 创建一个名为my_table的表,使用名为cf的列族:create 'my_table', 'cf'
  3. 向my_table表中插入一行数据,行键为row1,列族为cf,列名为data,值为my_value:put 'my_table', 'row1', 'cf:data', 'my_value'
  4. 扫描my_table表以查看数据:scan 'my_table'
  5. 退出HBase shell:exit

注意事项:

  • 请确保你有权限访问Docker容器以及HBase服务。
  • 根据你的CDH版本和配置,某些命令和文件路径可能略有不同。
  • 确保在操作过程中遵循安全最佳实践,如使用安全的密码和权限。

在上面步骤2如果不知道HBase的
container_name_or_id ,可以用下面的方法:

要查看 Docker 容器的 ID 或名称,您可以使用以下命令:

docker ps 

这将显示当前正在运行的 Docker 容器列表,包括容器的 ID、名称、状态等信息。您可以在列表中找到正在运行的 HBase 容器的 ID 或名称。

如果您有多个容器在运行,并且需要筛选特定的容器,您可以使用 grep 命令来过滤结果,例如:

docker ps | grep hbase 

这将仅显示包含 “hbase” 字符串的容器信息,以帮助您找到 HBase 容器的 ID 或名称。实际上关键字可能是cdh

一旦找到了容器的 ID 或名称,您可以将其替换到 <container_id_or_name> 的位置,并继续执行进入容器的命令。

作者 east
CDH 8月 17,2023

如何在CDH的Yarn配置中增加内存

在CDH集群中,您可以通过以下步骤来增加YARN的内存配置,以满足运行Spark任务所需的内存需求:

  1. 登录到CDH管理界面(Cloudera Manager)。
  2. 导航至 “YARN” 服务配置页面。
  3. 在 “Configuration” 选项卡下,找到 “ResourceManager” 部分。
  4. 在 “ResourceManager Java Configuration Options” 配置项中,找到或添加以下属性(如果已存在,请更新其值):
    • yarn.nodemanager.resource.memory-mb: 这是每个节点管理器(NodeManager)可用于YARN任务的最大内存量。您可以将其增加以提供更多内存。例如,将其设置为较大的值,如 8192 表示每个节点管理器可用的最大内存为8GB。
    • yarn.scheduler.maximum-allocation-mb: 这是单个YARN任务的最大内存分配量。同样,您可以将其增加以允许更大的任务内存。例如,将其设置为 4096 表示单个任务最多可以使用4GB的内存。
  5. 确保在同一配置页面的 “Resource Management” 部分中检查以下属性:
    • yarn.nodemanager.vmem-check-enabled: 确保此属性设置为 false,以禁用虚拟内存检查,以避免不必要的内存限制。
  6. 完成配置更改后,点击 “Save Changes”(保存更改)。
  7. 在 Cloudera Manager 中,重启 YARN 服务,以便使更改生效。

请注意,这些设置的具体值应根据您的集群硬件配置、可用内存和Spark任务的需求进行调整。增加内存分配可能会影响集群中其他服务的可用性,因此请谨慎调整。

在进行任何更改之前,建议您备份现有配置,以便在需要时可以恢复到先前的状态。同时,确保监控集群资源使用情况,以便及时调整配置以满足不同任务的需求。

关注公众号“大模型全栈程序员”回复“大数据面试”获取800页左右大数据面试宝典 ,回复“大数据”获取多本大数据电子书

作者 east
CDH 8月 8,2023

修复HDFS JournalNode和NameNode硬盘损坏

HDFS JournalNode和NameNode是HDFS文件系统的关键组件。JournalNode负责记录NameNode的所有操作,NameNode负责管理HDFS文件系统中的所有数据。如果JournalNode或NameNode的硬盘损坏,可能会导致HDFS文件系统不可用。

如果部署了Cloudera的HDFS HA,那么在更换了新硬盘后,重启JournalNode会出现”JournalNotFormattedException: Journal Storage Directory /opt/dfs/jn/nameservice1 not formatted”这样的错误。原因是在新的硬盘上的jn目录下没有VERSION文件用来恢复。

解决方法是重新创建对应的目录结构,并拷贝其他JournalNode上的VERSION文件。之后重启JournalNode,会自动进行目录的初始化,并自动同步日志。

以下是修复HDFS JournalNode硬盘损坏的步骤:

  • 重新创建对应的目录结构。

mkdir -p /opt/dfs/jn/nameservice1/current/

  • 拷贝其他JournalNode上的VERSION文件。

scp 目标服务器:/opt/dfs/jn/nameservice1/current/VERSION /opt/dfs/jn/nameservice1/current/VERSION

(3)更改JournalNode的权限。

chown -R hdfs:hdfs /opt/dfs/jn

重启JournalNode。

  • service hadoop-journalnode restart

以下是修复HDFS NameNode硬盘损坏的步骤:

如果启动NameNode出现

We expected txid 266899638, but got txid 267088002.

方法一:可以运行以下命令进行修复:

hadoop namenode -recover

方法二:如果上面的命令出错,如果NameNode是HA的,首先从健康节点的NameNode拷贝到出故障的NameNode,然后重启看是否正常。

如果仍然无法修复,可以联系Cloudera支持获取帮助。

以下是一些额外的提示:

定期备份HDFS JournalNode和NameNode的硬盘。

使用高可用性(HA)配置HDFS JournalNode和NameNode。

监控HDFS JournalNode和NameNode的健康状况。

关注公众号“大模型全栈程序员”回复“大数据面试”获取800页左右大数据面试宝典 ,回复“大数据”获取多本大数据电子书

作者 east
CDH 8月 7,2023

CDH启动namenode报错:java.io.IOException: NameNode is not formatted. 请分析原因和给解决方案

CDH的磁盘发生故障,磁盘恢复数据后,重启namenode发生错误:java.io.IOException: NameNode is not formatted.

这个错误说明你的Hadoop NameNode未被正确格式化。当/opt目录故障后重新恢复,可能导致NameNode元数据丢失或损坏,从而导致该错误。

原因:

  • 故障导致Hadoop NameNode的元数据损坏或丢失。
  • 在故障恢复期间可能没有正确备份Hadoop的/opt目录。

解决方案: 为了解决这个问题,你可以采取以下步骤来重新格式化Hadoop NameNode:

  1. 备份数据: 在执行任何恢复操作之前,确保你有/opt目录的备份。如果有最近的备份,可以尝试恢复备份数据。
  2. 格式化NameNode: 格式化NameNode将删除现有的元数据,并创建一个新的空的Hadoop文件系统。请注意,这将清空之前的Hadoop数据,包括HDFS中的所有文件和目录。在启动Hadoop之前,使用以下命令格式化NameNode:bash复制代码hdfs namenode -format
  3. 启动Hadoop: 在成功格式化NameNode后,启动Hadoop集群。bash复制代码start-dfs.sh start-yarn.sh
  4. 验证: 确保Hadoop集群正常运行,并且你的应用程序能够正确访问和使用HDFS中的数据。

在重新格式化NameNode之前,请确保备份你认为重要的数据,因为这将清除所有现有的数据。这个操作是不可逆的。同时,还要检查/opt目录故障的根本原因,以避免类似问题的再次发生。

关注公众号“大模型全栈程序员”回复“大数据面试”获取800页左右大数据面试宝典 ,回复“大数据”获取多本大数据电子书

作者 east
CDH 8月 7,2023

启动CDH的zookeeper报错: org.apache.zookeeper.server.persistence.FileTxnSnapLog$DatadirException: Missing data directory /opt/zookeeper/version-2, automatic data directory creation is disabled

CDH的磁盘发生故障,磁盘恢复数据后,重启Zookeeper发生错误:Missing data directory /opt/zookeeper/version-2, automatic data directory creation is disabled

这个错误是由于ZooKeeper没有找到指定的数据目录 /opt/zookeeper/version-2 导致的,而且自动数据目录创建已被禁用。

为了解决这个问题,你可以采取以下步骤:

  1. 检查目录路径: 首先,确保 /opt/zookeeper/version-2 目录路径是正确的,并且在该路径下确实存在 ZooKeeper 数据文件。
  2. 手动创建数据目录: 如果该目录不存在,你可以手动创建它,然后将之前的 ZooKeeper 数据文件移到这个目录下。
  3. 启用自动数据目录创建: 如果你希望 ZooKeeper 能够自动创建数据目录,可以修改 ZooKeeper 配置文件,将 autopurge.snapRetainCount 和 autopurge.purgeInterval 设置为适当的值,以启用自动清理和数据目录创建。示例如下:复制代码autopurge.snapRetainCount=3 autopurge.purgeInterval=1

确保在修改配置文件后重新启动 ZooKeeper 服务。

如果你仍然遇到问题,可能需要检查 ZooKeeper 配置和文件权限,确保其设置正确,并且服务具有足够的权限来访问指定的数据目录。

作者 east

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。回复”chatgpt”获取免注册可用chatgpt。回复“大数据”获取多本大数据电子书

标签

AIGC AI创作 bert chatgpt github GPT-3 gpt3 GTP-3 hive mysql O2O tensorflow UI控件 不含后台 交流 共享经济 出行 图像 地图定位 外卖 多媒体 娱乐 小程序 布局 带后台完整项目 开源项目 搜索 支付 效率 教育 日历 机器学习 深度学习 物流 用户系统 电商 画图 画布(canvas) 社交 签到 联网 读书 资讯 阅读 预订

官方QQ群

小程序开发群:74052405

大数据开发群: 952493060

近期文章

  • 详解Python当中的pip常用命令
  • AUTOSAR如何在多个供应商交付的配置中避免ARXML不兼容?
  • C++thread pool(线程池)设计应关注哪些扩展性问题?
  • 各类MCAL(Microcontroller Abstraction Layer)如何与AUTOSAR工具链解耦?
  • 如何设计AUTOSAR中的“域控制器”以支持未来扩展?
  • C++ 中避免悬挂引用的企业策略有哪些?
  • 嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?
  • C++如何在插件式架构中使用反射实现模块隔离?
  • C++如何追踪内存泄漏(valgrind/ASan等)并定位到业务代码?
  • C++大型系统中如何组织头文件和依赖树?

文章归档

  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年1月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年7月
  • 2018年6月

分类目录

  • Android (73)
  • bug清单 (79)
  • C++ (34)
  • Fuchsia (15)
  • php (4)
  • python (43)
  • sklearn (1)
  • 云计算 (20)
  • 人工智能 (61)
    • chatgpt (21)
      • 提示词 (6)
    • Keras (1)
    • Tensorflow (3)
    • 大模型 (1)
    • 智能体 (4)
    • 深度学习 (14)
  • 储能 (44)
  • 前端 (4)
  • 大数据开发 (488)
    • CDH (6)
    • datax (4)
    • doris (30)
    • Elasticsearch (15)
    • Flink (78)
    • flume (7)
    • Hadoop (19)
    • Hbase (23)
    • Hive (40)
    • Impala (2)
    • Java (71)
    • Kafka (10)
    • neo4j (5)
    • shardingsphere (6)
    • solr (5)
    • Spark (99)
    • spring (11)
    • 数据仓库 (9)
    • 数据挖掘 (7)
    • 海豚调度器 (10)
    • 运维 (34)
      • Docker (3)
  • 小游戏代码 (1)
  • 小程序代码 (139)
    • O2O (16)
    • UI控件 (5)
    • 互联网类 (23)
    • 企业类 (6)
    • 地图定位 (9)
    • 多媒体 (6)
    • 工具类 (25)
    • 电商类 (22)
    • 社交 (7)
    • 行业软件 (7)
    • 资讯读书 (11)
  • 嵌入式 (70)
    • autosar (63)
    • RTOS (1)
    • 总线 (1)
  • 开发博客 (16)
    • Harmony (9)
  • 技术架构 (6)
  • 数据库 (32)
    • mongodb (1)
    • mysql (13)
    • pgsql (2)
    • redis (1)
    • tdengine (4)
  • 未分类 (6)
  • 程序员网赚 (20)
    • 广告联盟 (3)
    • 私域流量 (5)
    • 自媒体 (5)
  • 量化投资 (4)
  • 面试 (14)

功能

  • 登录
  • 文章RSS
  • 评论RSS
  • WordPress.org

All Rights Reserved by Gitweixin.本站收集网友上传代码, 如有侵犯版权,请发邮件联系yiyuyos@gmail.com删除.