千家信息网

docker安装hive1.2

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,构建数据仓库 (Slave1)1、解压数据库tar -zxvf apache-hive-1.2.2-bin.tar.gz /usr/local/cd /usr/local/mv apache-hive
千家信息网最后更新 2026年11月03日docker安装hive1.2

构建数据仓库 (Slave1)
1、解压数据库

tar -zxvf apache-hive-1.2.2-bin.tar.gz /usr/local/
cd /usr/local/
mv apache-hive-1.2.2 hive

2、为hive添加环境变量
编辑/etc/profile文件,增加hive相关的环境变量配置

profile文件编辑完成后,执行下面命令,让配置生效,命令是

3、配置hive-site.xml
hive-site.xml相关的配置

cd /usr/local/hive/conf
cp hive-default.xml.template hive-site.xml

然后用hadoop创建目录

hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir -p /tmp/hive/

给刚才新建的目录赋予读写权限,执行命令:

hadoop fs -chmod 777 /user/hive/warehouse
hadoop fs -chmod 777 /tmp/hive

之所以创建目录是因为hive-site-xml里有这样的配置

检查目录是否创建成功

hadoop fs -ls /user/hive/
hadoop fs -ls /tmp/

修改hive-site.xml中的临时目录
将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录,例如我替换为/usr/local/hive/tmp,将${system:user.name}都替换为root, 并且赋予读写权限


注意要把所有的都替换,这里用正则替换

sed -i 's@${system:java.io.tmpdir}@/usr/local/hive/tmp/@g' hive-site.xml
sed -i 's@${system:user.name}@root@g' hive-site.xml

修改hive-site.xml数据库相关的配置
搜索javax.jdo.option.ConnectionURL,将该name对应的value修改为MySQL的地址


搜索javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径

搜索javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名:

搜索javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码:

搜索hive.metastore.schema.verification,将对应的value修改为false:

4、加载mysql驱动
将MySQL驱动包上载到lib目录
cd /usr/local/hive/lib/
wget ftp://172.18.79.77/mysql-connector-java-5.1.5-bin.jar
注意这里的地址是我的私有地址,可以去百度找mysql驱动包,或者在我的博客里下载(因为51cto上重复的资料不能上传,很无语,就随便加了个txt文件和驱动包弄成一个压缩包再上传的)。

5、修改hive-env.sh
新建hive-env.sh文件并进行修改

cd /usr/local/hive/conf

将hive-env.sh.template文件复制一份,并且改名为hive-env.sh

cp hive-env.sh.template hive-env.sh

打开hive-env.sh配置并且添加以下内容:

export HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR=/usr/local/hive/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

6、初始化mysql
对MySQL数据库进行初始化
进入mysql数据库,创建hive用户和hive数据库

CREATE USER 'hive'@'localhost' IDENTIFIED BY "hive";
grant all privileges on . to hive@localhost identified by 'hive';
create database hive;

刷新数据库

flush privileges;

退出

exit;

测试hive用户是否创建成功

mysql -uhive -p
Enter passwd: hive

进入到hive的bin目录 执行命令:

cd /usr/local/hive/bin

对数据库进行初始化,执行命令:

schematool -initSchema -dbType mysql

执行成功后,hive数据库里已经有一堆表创建好了

7、测试hive
启动hive并测试
进入到hive的bin目录执行命令:

cd /usr/local/hive/bin

执行hive脚本进行启动,执行命令:

./hive

执行查看sum函数的详细信息的命令:

desc function sum;

执行新建数据库的hive命令:

create database db_hive;

在刚才创建的数据库中创建数据表,执行hive命令:

use db_hive;
create table student(id int,name string) row format delimited fields terminated by '\t';

将文件数据写入表中
在/usr/local/hive目录内新建一个文件
执行Linux命令(最好是重新打开一个终端来执行):

touch /opt/hive/student.txt

说明:ID和name直接是TAB键,不是空格,因为在上面创建表的语句中用了terminated by '\t'所以这个文本里id和name的分割必须是用TAB键(复制粘贴如果有问题,手动敲TAB键吧),还有就是行与行之间不能有空行,否则下面执行load,会把NULL存入表内,该文件要使用unix格式,如果是在windows上用txt文本编辑器编辑后在上载到服务器上,需要用工具将windows格式转为unix格式,例如可以使用Notepad++来转换。
完成上面的步骤后,在磁盘上/opt/hive/student.txt文件已经创建成功,文件中也已经有了内容,在hive命令行中执行加载数据的hive命令:

load data local inpath '/usr/local/hive/std.txt' into table db_hive.std;

执行命令,查看是否把刚才文件中的数据写入成功

查看页面
http://172.18.74.105:50070/explorer.html#/user/hive/warehouse/db_hive.db/student

点击std.txt

在MySQL数据库中执行select语句,查看hive创建的表

select * from hive.TBLS;

数据 命令 数据库 文件 目录 配置 成功 搜索 驱动 地址 格式 测试 内容 变量 文本 权限 环境 用户 语句 登录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 高科技互联网 互联网最新的科技有限公司 中资互联网科技 互联网金融公司科技 智网互联网科技 中国互联网科技发展 苏州互联网科技贷款公司 米客互联网科技 互联网科技公司介绍 济南华为互联网科技产业总部基地 科技与互联网哪个更好 互联网对科技的发展 速维有品互联网信息科技(苏州)有限公司 深圳市罗太互联网科技有限公司 长沙茂晟互联网科技有限公司 梅州GM互联网络科技有限公司 厦门江牛科技互联网 科技信息时代互联网发展 中国主要互联网科技公司 科技类的互联网平台 盛创互联网科技有限公司 中国科技互联网公司收入 广州慧亚互联网科技怎么样 企晟互联网信息科技有限公司 山东子淼互联网科技有限公司 互联网与数字科技关系 银川新华互联网科技学校原画 杭州融税互联网科技有限公司 广州全民伙伴互联网科技有限公司
0