【数据库笔记】运用Xshell建立hive使用的数据库

这篇博客介绍了如何在Hadoop环境中通过Xshell创建一个名为datas的目录,并使用hadoop命令进行权限设置,然后通过xftp上传数据源文件到HDFS,最后启动Hive并进行建表和数据加载操作。

文章目录


目录定位

  1. 在hadoop的家目录下新建一个目录datas:
su - hadoop
mkdir datas

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 通过xftp将数据源文件传到datas中

在这里插入图片描述

  1. “hadoop fs -mkdir /datas1”

在这里插入图片描述

  1. “hadoop fs -chmod g+w /datas1”

在这里插入图片描述

  1. “hadoop fs -put /home/hadoop/datas1/* /datas”

在这里插入图片描述

  1. 启动hive
start-all.sh
cd /opt/module/apache-hive-3.1.1-bin/
bin/hive

完整代码

  1. 建表,加载数据
1.在hadoop的home目录下新建一个目录datas:
mkdir datas
2.通过xftp将数据源文件传到datas中
3."hadoop fs -mkdir /datas"
4."hadoop fs -chmod g+w /datas"
5."hadoop fs -put /home/hadoop/datas/* /datas"

--1.创建kaikeba库
create database if not exists kaikeba;

--2.使用kaikeba库
use kaikeba;

--3.创建user_info表
create external table if not exists user_info (
user_id  string,
user_name  string, 
sex  string,
age  int,
city  string,
firstactivetime  string,
level  int,
extra1  string,
extra2  map<string,string>)
row format delimited fields terminated by '\t'
collection items terminated by ','
map keys terminated by ':'
lines terminated by '\n'
stored as textfile;

加载数据源
load data inpath '/datas/user_info/user_info.txt' overwrite into table user_info;</
### 如何在 Xshell 中启动 Hive 服务 要在 Xshell 或其他类似的 SSH 客户端中启动 Hive 服务,可以按照以下方法操作: #### 启动 Hadoop 集群 确保 Hadoop 的 NameNode 和 DataNode 已经正常运行。可以通过 `jps` 命令查看当前 Java 进程的状态[^2]。 如果未发现必要的进程(如 NameNode、DataNode),则需手动启动 Hadoop 集群: ```bash start-dfs.sh start-yarn.sh ``` #### 启动 Hive Metastore 和 HiveServer2 Hive 的核心组件包括 Metastore 和 HiveServer2。以下是具体的启动命令: 1. **启动 Hive Metastore** 使用以下命令后台启动 Hive Metastore 服务: ```bash nohup hive --service metastore & ``` 2. **启动 HiveServer2** 可以通过两种方式启动 HiveServer2: - 直接启动: ```bash hive --service hiveserver2 ``` - 背景模式启动(推荐用于生产环境): ```bash nohup hive --service hiveserver2 >/dev/null 2>&1 & ``` 以上命令会将标准输出和错误日志重定向至 `/dev/null`,从而避免占用终端窗口[^1]。 #### 解决常见问题 当尝试启动 Hive 时可能会遇到一些常见的异常情况。例如,在创建临时目录时可能抛出 Safe Mode Exception[^3]。这种情况下需要执行以下步骤来解决问题: 1. **退出安全模式** 如果 NameNode 处于安全模式,则无法写入数据到 HDFS 文件系统。可通过以下命令强制退出安全模式: ```bash hadoop dfsadmin -safemode leave ``` 2. **重新初始化 Hive 仓库** 若仍然存在权限或其他文件路径相关的问题,建议删除并重建 Hive 的临时目录: ```bash hadoop fs -rm -r /tmp/hive/* mkdir -p $HOME/.hive/ chmod 777 $HOME/.hive/ ``` 完成这些调整后再试一次启动 Hive Server。 --- ### 示例脚本:一键启动 Hive 服务 为了简化流程,可以编写一个简单的 Bash 脚本来自动完成上述过程: ```bash #!/bin/bash echo "Starting Hadoop services..." start-dfs.sh && start-yarn.sh sleep 5 echo "Leaving safemode if necessary..." hadoop dfsadmin -safemode leave echo "Cleaning up old Hive temp directories..." hadoop fs -rm -r /tmp/hive/* echo "Starting Hive Metastore and HiveServer2..." nohup hive --service metastore >/dev/null 2>&1 & nohup hive --service hiveserver2 >/dev/null 2>&1 & echo "All services started successfully." ``` 保存此脚本为 `start_hive.sh` 并赋予可执行权限: ```bash chmod +x start_hive.sh ./start_hive.sh ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值