基于 HDP2.4安装(五):集群及组件安装 创建的hadoop集群,修改默认配置,将hbase 存储配置为 Azure Blob Storage
目录:
- 简述
- 配置
- 验证
- FAQ
简述:
- hadoop-azure 提供hadoop 与 azure blob storage 集成支持,需要部署 hadoop-azure.jar 程序包,在HDP2.4 安装包中已默认提供,如下图:
- 配置成功后,读写的数据都存储在 Azure Blob Storage account
- 支持配置多个 Azure Blob Storage account, 实现了标准的 Hadoop FileSystem interface
- Reference file system paths using URLs using the wasb scheme.
- Tested on both Linux and Windows. Tested at scale.
- Azure Blob Storage 包含三部分内容:
- Storage Account: All access is done through a storage account
- Container: A container is a grouping of multiple blobs. A storage account may have multiple containers. In Hadoop, an entire file system hierarchy is stored in a single container. It is also possible to configure multiple containers, effectively presenting multiple file systems that can be referenced using distinct URLs.
- Blob: A file of any type and size. In Hadoop, files are stored in blobs. The internal implementation also uses blobs to persist the file system hierarchy and other metadata
配置 :
- 在 china Azure 门户(https://manage.windowsazure.cn) 创建一个 blob storage Account, 如下图命名:localhbase
- 配置访问 Azure blob storage 访问证书及key以及切换文件系统配置,本地 hadoop core-site.xml 文件,内容如下
<property> <name>fs.defaultFS</name> <value>wasb://localhbase@localhbase.blob.core.chinacloudapi.cn</value> </property> <property> <name>fs.azure.account.key.localhbase.blob.core.chinacloudapi.cn</name> <value>YOUR ACCESS KEY</value> </property>
-
在大多数场景下Hadoop clusters, the core-site.xml file is world-readable,为了安全起见,可通过配置将Key加密,然后通过配置的程序对key进行解密,此场景下的配置如下(基于安全考虑的可选配置):
<property> <name>fs.azure.account.keyprovider.localhbase.blob.core.chinacloudapi.cn</name> <value>org.apache.hadoop.fs.azure.ShellDecryptionKeyProvider</value> </property> <property> <name>fs.azure.account.key.localhbase.blob.core.chinacloudapi.cn</name> <value>YOUR ENCRYPTED ACCESS KEY</value> </property> <property> <name>fs.azure.shellkeyprovider.script</name> <value>PATH TO DECRYPTION PROGRAM</value> </property>
-
Azure Blob Storage interface for Hadoop supports two kinds of blobs, block blobs and page blobs;Block blobs are the default kind of blob and are good for most big-data use cases, like input data for Hive, Pig, analytical map-reduce jobs etc
-
Page blob handling in hadoop-azure was introduced to support HBase log files. Page blobs can be written any number of times, whereas block blobs can only be appended to 50,000 times before you run out of blocks and your writes will fail,That won’t work for HBase logs, so page blob support was introduced to overcome this limitation
-
Page blobs can be up to 1TB in size, larger than the maximum 200GB size for block blobs
-
In order to have the files you create be page blobs, you must set the configuration variable fs.azure.page.blob.dir to a comma-separated list of folder names
<property> <name>fs.azure.page.blob.dir</name> <value>/hbase/WALs,/hbase/oldWALs,/mapreducestaging,/hbase/MasterProcWALs,/atshistory,/tezstaging,/ams/hbase</value> </property>
验证:
- 上面的参数配置均在 ambari 中完成,重启参数依赖的服务
-
命令: hdfs dfs -ls /hbase/data/default 如下图, 没有数据
- 参见 HBase(三): Azure HDInsigt HBase表数据导入本地HBase 将测试表数据导入,完成后如下图:
- 命令:./hbase hbck -repair -ignorePreCheckPermission
- 命令: hbase shell
- 查看数据,如下图,则OK
- 用我们自己开发的查询工具验证数据,如下图,关于工具的开发见下一章
- 参考资料: https://hadoop.apache.org/docs/current/hadoop-azure/index.html
FAQ
- ambari collector不要与regionserver一台机器
- 配置ha一定要在更改数据目录到wasb之前
- hadoop core-site.xml增加以下配置,否则mapreduce2组件会起不来,(注意impl为小写)
<property> <name>fs.AbstractFileSystem.wasb.impl</name> <value>org.apache.hadoop.fs.azure.Wasb</value> </property>
-
本地自建集群,配置HA,修改集群的FS为 wasb, 然后将原hbase集群物理文件目录copy至新建的blob storage, 此时,在使用phoenix插入带有索引的表数据时出错,修改hbase-site.xml配置如下:
<property> <name>hbase.regionserver.wal.codec</name> <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> </property>
-
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 全程使用 AI 从 0 到 1 写了个小工具
· 快收藏!一个技巧从此不再搞混缓存穿透和缓存击穿
· AI 插件第二弹,更强更好用
· Blazor Hybrid适配到HarmonyOS系统