Hive安装

解压编译出来的hive安装包

cd /usr/local/
tar -xf /tmp/apache-hive-1.1.0-cdh5.7.1-bin.tar.gz
ln -s apache-hive-1.1.0-cdh5.7.1-bin hive
chown hadoop: apache-hive-1.1.0-cdh5.7.1-bin -R
chown hadoop: hive -R
echo 'export HIVE_HOME=/usr/local/hive'>>/etc/profile
echo 'export PATH=$HIVE_HOME/bin:$PATH'>>/etc/profile

配置mysql连接文件

su - hadoop
cd /usr/local/hive
cd conf
cp -av hive-env.sh{.template,}
echo 'HADOOP_HOME=/usr/local/hadoop'>>hive-env.sh
vi hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> 
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop001:3306/_hive?createDatabaseIfNotExist=true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
    </property>
</configuration>
# 配置文件中使用主机名hadoop001
# 因此要保证/etc/hosts文件中有正确的解析
# 配置文件hive-site.xml使用了java的mysql驱动包
# 而编译的hive安装包中没有该驱动包
# 需要手动上传
cd /tmp
unzip mysql-connector-java-5.1.45.zip
cd mysql-connector-java-5.1.45
cp mysql-connector-java-5.1.45-bin.jar /usr/local/hive/lib/

配置日志

cd /usr/local/hive/conf/
cp -av hive-log4j.properties{.template,}
sed -i 's#^hive.log.dir=.*#hive.log.dir=/usr/local/hive/log#g' hive-log4j.properties

4. 命令测试

这里有坑,我用的是别人的文档,而且参考两份,在my.cnf中需要配置文件。并且,这里会有权限问题,需要加可读权限。也就是将mysql中的date文件添加组和权限给hadoop用户。)
hive
show databases;
exit;
# 能够正常进入命令行不报错
# 能够查看到defalut库
# 代表配置成功
echo show databases|mysql -uroot -proot# 发现库自动创建,表示配置无误

5. 建表测试

hive
create table helloworld(id int,name string) row format delimited fields terminated by '\t';
show databases;
use default;
show tables;
desc helloworld;
select * from helloworld;
exit;
# 使用建表语句创建了一个表
# 可以查看default库的表,找到该表
# 同时可以在mysql库中查询到该表的信息
mysql -uroot -pvincent -Dvincent_hive
select * from TBLS \G
exit;
# 表名大小写是敏感的
hdfs dfs -ls /user/hive/warehouse
# 查看hdfs的目录信息,发现已经创建了该表的目录
# 编辑一个文件,上传到该目录下,再次在hive中使用SQL就能查询出来信息了
echo -e "1\tzhangsan\n2\tlisi\n3\twangwu">>/tmp/helloworld.txt
hive
load data local inpath '/tmp/helloworld.txt' into table helloworld;
select * from helloworld;
select id from helloworld;
select count(1) from helloworld;
exit;
# 在hive中使用load命令,将本地的一个文本文件上传到hdfs的helloworld表对应的目录下
# 使用 select count(1) 聚集函数,会生成MR任务# 可以在 http://192.168.1.10:8088/cluster/apps 查看到








来自@若泽大数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值