beeline/hdfs 常用命令

本文提供了HDFS中数据磁盘使用率的查看方法,包括使用hdfs dfs-du-s-h命令检查目录大小;介绍了如何通过hadoop fs-put命令上传数据文件到HDFS,以及如何使用hadoop fs-getmerge命令下载HDFS上的数据文件。此外,还展示了如何通过SQL语句将表数据写入HDFS。

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

hdfs查看所有数据磁盘使用率

hdfs dfs -du -s -h /inceptor1/user/hive/warehouse/*

hdfs上传数据文件

hadoop fs -put /数据文件服务器地址 /hdfs目标地址(外表数据指向地址) 

hdfs 下载数据文件

hadoop fs -getmerge /hdfs目标地址(外表数据指向地址) /数据文件服务器地址

表数据写入HDFS

insert overwtite directory '/picrm/datafile/lee/table_name' select * from table_name;

at last:
想建一个数据库技术的交流群,用于磨炼提升技术能力.群号: 130730832 ,欢迎大佬前来教学。

### 如何在 Docker 中安装配置 HDFSHive #### 构建 CentOS 镜像并设置基础环境 为了确保后续操作顺利,在开始前需创建一个适合运行 Hadoop 及其生态系统的 CentOS 基础镜像。这一步骤涉及下载官方 CentOS 镜像,并对其进行必要的定制化调整,比如更新软件源、安装常用工具等。 ```bash docker pull centos:latest ``` 接着基于此镜像创建一个新的容器用于进一步的操作: ```bash docker run -dit --name hadoop-base centos /bin/bash ``` 进入该容器内部继续完成剩余初始化工作: ```bash docker exec -it hadoop-base bash ``` #### 安装 Java 环境 由于 Hadoop 是由 Java 编写的,因此需要预先准备好 JDK 或 JRE 的支持。可以通过 yum 来快速实现这一点: ```bash yum install java-1.8.0-openjdk-devel.x86_64 -y ``` 验证安装成功与否可通过 `java -version` 命令来确认版本号显示正常[^3]。 #### 下载与解压 Apache Hadoop 软件包 访问官方网站获取最新稳定版的 Hadoop 发行版压缩文件,并将其放置于合适的位置进行解压缩处理: ```bash cd /opt/ wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gz tar zxvf hadoop-3.3.1.tar.gz ln -s hadoop-3.3.1/ hadoop export PATH=$PATH:/opt/hadoop/bin source ~/.bashrc ``` 上述命令会将 Hadoop 放置于 `/opt/hadoop` 目录下以便管理和调用。 #### 修改核心配置文件 编辑位于 `${HADOOP_HOME}/etc/hadoop/core-site.xml` 文件中的参数设定如下所示: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 对于 hdfs-site.xml 则应包含 NameNode 数据存储路径等相关定义: ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/data/datanode</value> </property> </configuration> ``` 这些更改有助于指定集群内各节点间通信协议及数据保存位置等重要细节。 #### 初始化 HDFS 并启动服务 首次使用之前要先格式化 NameNode 才能正常使用整个分布式文件系统功能;之后就可以通过特定脚本来激活所有组件了: ```bash hdfs namenode -format start-dfs.sh jps # 检查进程状态以确保一切就绪 ``` 此时应该能看到类似于 SecondaryNameNode, DataNode 以及 NameNode 的活动记录说明 HDFS 已经被正确设置了。 #### 准备 MySQL 作为 Metastore 存储引擎 考虑到性能优化方面的需求,推荐采用关系型数据库管理系统 (RDBMS) 来充当 Hive 表结构信息仓库的角色——这里选用的是开源免费方案之一即 MySQL Server。同样地,也得先把对应的客户端库引入进来才能让两者之间建立起有效的连接桥梁: ```sql CREATE DATABASE metastore; GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 以上 SQL 片段是在 MySQL 终端里执行用来新建专门服务于 Hive Metadata Storage 的独立 schema 同时赋予适当权限给远程用户访问权利[^2]。 #### 设置 Hive 环境变量 为了让 Shell 提示符能够识别 hive 命令,则有必要把它的可执行文件所在目录加入到全局搜索路径列表当中去: ```bash echo "export HIVE_HOME=/usr/local/apache-hive-3.1.2-bin" >> ~/.bashrc echo "export PATH=\$PATH:\${HIVE_HOME}/bin" >> ~/.bashrc source ~/.bashrc ``` 此处假设已提前上传好 tarball 形式的 Hive 发布档至宿主机某处待命解压展开成最终形态供实际应用调用了。 #### 更新 Hive Site Configuration File 最后但并非最不重要的环节就是针对 hive-site.xml 加入指向外部 RDBMS 实例的关键属性项: ```xml <configuration> ... <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://host.docker.internal/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> ... </configuration> ``` 请注意这里的 host.docker.internal 地址仅适用于 Mac OS X/Linux 上面运行着 Docker Desktop Edition 的情况;如果是 Windows 用户则可能需要用 localhost 替代之[^4]。 #### 测试 HiveServer2 是否可以正常运作 当所有的准备工作都完成后便可以直接尝试发起查询请求看看能否得到预期的结果反馈回来证明整体架构搭建无误: ```bash beeline -u jdbc:hive2://localhost:10000/default -n root !connect jdbc:hive2://localhost:10000/default ``` 如果 Beeline CLI 成功连上了目标服务器并且返回了一个新的交互界面等待输入指令的话就意味着大功告成了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D2cOneluo

万一有大佬给个打赏呢,对不对。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值