hbase-2.2.2整合hive-3.1.2组件

本文介绍了Apache Hive数据仓库软件的使用方法,包括通过SQL读写分布式存储中的大型数据集。此外,还详细阐述了MySQL和Hive的安装步骤及配置过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

APACHE HIVE TM

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.

HBASE操作组件功能比较:

938f5137a312952587e89167623360d68d6.png

1、mysql安装

yum -y install wget

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

yum -y install mysql57-community-release-el7-10.noarch.rpm

yum -y install mysql-community-server

service mysqld start

netstat -nltp | grep 3306

//systemctl restart mysqld.service(重启命令)

grep “password” /var/log/mysqld.log 查看原始密码

 如需重置密码:

# 停止MySQL
sudo systemctl stop mysqld

# 设置关闭鉴权和网络连接
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking"

# 启动MySQL
sudo systemctl start mysqld

# 以root账号登录MySQL,并重设密码
mysql -uroot

update mysql.user set authentication_string=PASSWORD("NewPassword") where User='root' AND Host = 'localhost';
flush privileges;
quit

# 停止MySQL
sudo systemctl stop mysqld

# 恢复鉴权和网络连接设置
sudo systemctl unset-environment MYSQLD_OPTS

# 启动MySQL
sudo systemctl start mysqld

2、HIVE安装:

下载apache-hive-3.1.2-bin.tar.gz

https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

配置

cp hive-env.sh.template  hive-env.sh
编辑hive-site.xml

<configuration>
<!-- 记录HIve中的元数据信息  记录在mysql中 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>

<!-- jdbc mysql驱动 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>

<!-- mysql的用户名和密码 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>

<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>

<!-- 日志目录 -->
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>

<!-- 设置metastore的节点信息 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>

<!-- 客户端远程连接的端口 -->
<property> 
<name>hive.server2.thrift.port</name> 
<value>10000</value>
</property>
<property> 
<name>hive.server2.thrift.bind.host</name> 
<value>0.0.0.0</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>0.0.0.0</value>
</property>

<!-- hive服务的页面的端口 -->
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>

<property> 
<name>hive.server2.long.polling.timeout</name> 
<value>5000</value>                               
</property>

<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
</property>

<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>

<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>

<property>
<name>hive.execution.engine</name>
<value>mr</value>
</property>

</configuration>

编辑Hadoop安装目录中,配置文件中的core-site.xml文件

<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>

<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

拷贝一个mysql的jdbc驱动jar包到hive的lib目录中

配置环境变量

export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.2
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HBASE_HOME=/usr/local/hbase-2.2.2
export  HIVE_HOME=/usr/local/hive-3.1.2/apache-hive-3.1.2-bin
export PHOENIX_HOME=/usr/local/phoenix-5.1.2/phoenix-hbase-2.2-5.1.2-bin
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$HBASE_HOME/bin:$HIVE_HOME/bin:$PHOENIX_HOME/bin:$PATH

 source /etc/profile配置生效

重启hadoop

hive --service metastore启动元数据服务

初始化hive的元数据库

./schematool -initSchema -dbType  mysql

启动 hive

其它情况辅助命令:

注:hbase元数据损坏
hbase hbck -metaonly(检查命令)
hadoop fs -rm -r /hbase(删除重启)

删除zookeeper元数据

1、找到zookeeper的安装目录

2、打开zookeeper客户端,并连接到服务器:zookeeper-client -server localhost:2181

3、ls 可以看到hbase的目录

4、rmr /hbase/meta-region-server

5、quit退出,重启hbase

注:

<!--进入zk客户端-->
ZK_HOME/zkCli.sh
<!--清空hbase-->
rmr /hbase


 

<think>好的,我现在需要帮助用户解决在Linux虚拟机中删除HBase 2.5.11安装HBase 2.2.2的可行性问题。首先,我得回顾用户之前的对话历史,看看之前的问题是什么。用户之前遇到了SLF4J绑定冲突的问题,涉及Hadoop 3.3.0和HBase 2.5.11之间的日志框架冲突。现在用户想降级HBase2.2.2版本,可能想解决兼容性问题或者适应其他依赖。 接下来,我需要确认用户的需求是什么。用户可能希望了解降级HBase是否可行,以及需要注意哪些方面。需要考虑到HBase版本与Hadoop版本的兼容性,因为HBase 2.2.2可能对Hadoop版本有特定要求。根据引用[3],HBase 2.5.6需要Hadoop 3.x,而HBase 2.2.2可能需要Hadoop 2.x或者兼容的3.x版本。用户当前使用的是Hadoop 3.3.0,这可能导致兼容性问题。 另外,用户之前的问题涉及日志绑定冲突,现在降级HBase可能会影响其他依赖,比如hbase-mapreduce模块。根据引用[1],用户之前集成了hbase-mapreduce 2.2.2版本,这可能与HBase 2.2.2版本是否兼容有关。需要检查HBase 2.2.2的文档,确认其所需的hbase-mapreduce版本是否匹配。 还要考虑HBase 2.2.2的功能限制,比如是否支持用户现有的业务需求,比如实时分析或大规模数据存储。引用[3]提到HBase 2.5.6有性能优化和稳定性增强,降级可能会失去这些改进,可能带来性能或功能上的损失。 另外,用户可能关心安装步骤,如何安全地删除旧版本并安装新版本,是否需要调整配置文件,如hbase-site.xml或环境变量。根据引用[2],用户可能需要调整路径或安全设置,比如关闭SELinux,以确保HBase正常运行。 还需要注意依赖冲突的可能性,尤其是Hadoop和HBase之间的依赖。例如,HBase 2.2.2可能依赖旧版本的ZooKeeper或其他库,与现有环境中的版本冲突。需要检查所有相关依赖,确保版本一致。 最后,用户可能需要回滚方案,以防降级后出现问题,如备份数据和配置文件。根据引用[4],Ansible可以用于配置管理,可能帮助自动化安装和配置过程,但用户目前可能手动操作。 综上所述,我需要整理出可行性分析、详细步骤、注意事项以及潜在风险,帮助用户做出决定,并提供解决方案。同时,确保回答结构清晰,符合用户要求的中文回答,并正确引用相关引用内容。</think>### **在 Linux 虚拟机中降级 HBase 的可行性分析** --- #### **一、可行性评估** 1. **版本兼容性** - **HBase 2.2.2 官方要求** - 需要 **Hadoop 2.x** 或 **Hadoop 3.x(需适配)**[^3] - 依赖 **ZooKeeper 3.4.x**(需与现有环境一致) - **当前环境** - Hadoop 3.3.0(需验证与 HBase 2.2.2 的兼容性) -HBase 2.5.11(已存在 SLF4J 冲突问题) **结论**:若 Hadoop 3.3.0 支持 HBase 2.2.2 的 API 和依赖(需实测验证),则降级可行。 2. **功能需求匹配性** - HBase 2.2.2 缺少 2.5.x 版本的新特性(如性能优化、稳定性增强等) - 若业务依赖 HBase 2.5.x 的特定功能(如 Region 负载均衡改进),则需谨慎降级。 --- #### **二、具体操作步骤** 1. **备份与卸载 HBase 2.5.11** ```bash # 1. 停止 HBase 服务 $HBASE_HOME/bin/stop-hbase.sh # 2. 备份配置和数据 cp -r $HBASE_HOME/conf /opt/backup/hbase_conf_2.5.11 cp -r /path/to/hbase/data /opt/backup/hbase_data_2.5.11 # 3. 删除 HBase 2.5.11 rm -rf $HBASE_HOME ``` 2. **安装 HBase 2.2.2** ```bash # 1. 下载并解压 wget https://archive.apache.org/dist/hbase/2.2.2/hbase-2.2.2-bin.tar.gz tar -zxvf hbase-2.2.2-bin.tar.gz -C /opt ln -s /opt/hbase-2.2.2 $HBASE_HOME # 2. 恢复配置文件(需手动适配) cp /opt/backup/hbase_conf_2.5.11/* $HBASE_HOME/conf/ ``` 3. **适配 Hadoop 3.3.0** - **修改 `hbase-site.xml`** ```xml <!-- 指定 Hadoop 3.3.0 的依赖路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://your-namenode:8020/hbase</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>zk-node1,zk-node2,zk-node3</value> </property> ``` - **验证依赖兼容性** - 检查 Hadoop 3.3.0 的 `hadoop-common` 和 `hadoop-hdfs` 版本是否与 HBase 2.2.2 兼容(可能需调整 `hbase-env.sh` 中的 `HADOOP_CLASSPATH`)。 4. **启动与验证** ```bash # 启动 HBase $HBASE_HOME/bin/start-hbase.sh # 验证服务状态 hbase shell <<< "status" ``` --- #### **三、风险与注意事项** 1. **兼容性风险** - Hadoop 3.3.0 的某些 API 可能与 HBase 2.2.2 不兼容(如文件系统接口变更),需通过日志排查错误。 - 若出现 `ClassNotFoundException` 或 `NoSuchMethodError`,需手动添加兼容性依赖包。 2. **功能降级风险** - HBase 2.2.2 不支持 **MOB(Medium Object Storage)** 等高级功能,需确认业务是否依赖这些特性。 3. **安全配置调整** - 根据引用[2],若虚拟机启用了 SELinux,需临时关闭或配置策略: ```bash setenforce 0 # 临时关闭 SELinux ``` --- #### **四、回滚方案** ```bash # 1. 停止 HBase 2.2.2 $HBASE_HOME/bin/stop-hbase.sh # 2. 删除 HBase 2.2.2 rm -rf $HBASE_HOME # 3. 恢复 HBase 2.5.11 tar -zxvf hbase-2.5.11-bin.tar.gz -C /opt ln -s /opt/hbase-2.5.11 $HBASE_HOME cp /opt/backup/hbase_conf_2.5.11/* $HBASE_HOME/conf/ ``` --- ### **相关问题** 1. 如何解决 HBase 2.2.2 与 Hadoop 3.3.0 的 `ClassNotFoundException` 错误? 2. HBase 降级后 RegionServer 启动失败的可能原因有哪些? 3. 如何通过 Ansible 自动化部署多节点 HBase 集群?[^4] [^1]: HBase MapReduce 集成依赖版本需与 HBase 主版本一致。 [^2]: SELinux 配置可能影响 HBase 的 ZooKeeper 通信。 : HBase 2.5.x 版本特性与 2.2.x 差异较大,需谨慎降级。 [^4]: Ansible 可用于批量配置 HBase 节点,简化运维流程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值