mac hive mysql 配置_macbook配置hive

配置hive

1 下载hive版本

2 解压hive

$ tar -xzvf hive-x.y.z.tar.gz

$ cd hive-x.y.z

3 设置环境变量

export HIVE_HOME=/Users/$User/software/hive/apache-hive-2.1.1

export HADOOP_HOME=/Users/$User/software/hadoop/hadoop-2.9.1

export PATH=$HIVE_HOME/bin:$PATH

export HIVE_CONF_DIR=/Users/$User/software/hive/apache-hive-2.1.1/conf

4 建立目录

$HADOOP_HOME/bin/hadoop fs -rm -r /tmp

$HADOOP_HOME/bin/hadoop fs -rm -r /user/

$HADOOP_HOME/bin/hadoop fs -mkdir /tmp

$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse

$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp

$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/

5 创建元数据表

mysql -u root -p

输入密码root

drop database hive;

create database hive;

use hive;

drop user hive@'%';

CREATE USER 'hive'@'%' IDENTIFIED BY '123456';

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;

flush privileges;

6 初始化元数据:

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

7 hive启动服务:

cd $HIVE_HOME

$HIVE_HOME/bin/hive --service metastore & 远程服务端启动

$HIVE_HOME/bin/hive --service hiveserver2 & 远程客户端启动

$HIVE_HOME/bin/beeline

!connect jdbc:hive2://localhost:10000 $user_name $password

8 查看执行情况:

9 案例:

创建关于电影的一张表:

0: jdbc:hive2://localhost:10000>

CREATE TABLE u_data (

userid INT,

movieid INT,

rating INT,

unixtime STRING)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t'

STORED AS TEXTFILE;

下载数据源

$ curl --remote-name http://files.grouplens.org/datasets/movielens/ml-100k.zip

文件下载在当前目录下,解压数据包

$ unzip ml-100k.zip

导入数据包到表里面

0: jdbc:hive2://localhost:10000>

LOAD DATA LOCAL INPATH '/Users/xxxxxxxx/Downloads/ml-100k/u.data'

OVERWRITE INTO TABLE u_data;

查询总的记录数,应该是100000条

0: jdbc:hive2://localhost:10000>

SELECT COUNT(*) FROM u_data;

创建一张新的表用于存放每周的记录书

0: jdbc:hive2://localhost:10000>

CREATE TABLE u_data_new (

userid INT,

movieid INT,

rating INT,

weekday INT)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t';

输入

$ vi weekday_mapper.py

import sys

import datetime

for line in sys.stdin:

line = line.strip()

userid, movieid, rating, unixtime = line.split('\t')

weekday = datetime.datetime.fromtimestamp(float(unixtime)).isoweekday()

print '\t'.join([userid, movieid, rating, str(weekday)])

0: jdbc:hive2://localhost:10000>

add FILE /Users/$User/Downloads/weekday_mapper.py;

0: jdbc:hive2://localhost:10000>

INSERT OVERWRITE TABLE u_data_new

SELECT

TRANSFORM (userid, movieid, rating, unixtime)

USING 'python weekday_mapper.py'

AS (userid, movieid, rating, weekday)

FROM u_data;

0: jdbc:hive2://localhost:10000>

SELECT weekday, COUNT(*)

FROM u_data_new

GROUP BY weekday;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值