码迷,mamicode.com
首页 > 其他好文 > 详细

docker安装hive1.2

时间:2019-01-09 17:27:30      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:cto   connect   行修改   下载   正则   驱动   目录   env   lib   

构建数据仓库 (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驱动包,或者在我的博客里下载。
技术分享图片
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;

技术分享图片

docker安装hive1.2

标签:cto   connect   行修改   下载   正则   驱动   目录   env   lib   

原文地址:http://blog.51cto.com/13670314/2340748

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!