create database chengzhi;
如果出现如下错误:
hive> create database db_hive;
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
Database db_hive already exiSts
使用命令:(避免要创建的数据库已经存在错误,增加 if not exists 判断。)
hive (default)> create database if not exists db_hive;
use chengzhi;
drop database db_hive2;
create table st(
id String,
name String,
score integer)
row format delimited fields terminated by ',';
修改表表名,列名,列注释,表注释,增加列,调整列顺序,属性名等操作
ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])
load data inpath '/data/user.txt' into table student;
#上传文件从本地上传
load data local inpath '/data/user.txt' into table stu;
出现的错误:
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
说明数据库内容有问题:
我的原因是应为修改了名称,导致数据库出错。
查看并修改vi hive-site.xml内容。
export HADOOP_COMMON_HOME=/usr/app/hadoop2.7.3
export HADOOP_MAPRED_HOME=/usr/app/hadoop2.7.3
export HADOOP_HIVE_HOME=/usr/app/hive2.3.7
export SQOOP_HOME=/usr/app/sqoop1.4.7
export PATH=$PATH:$SQOOP_HOME/bin
sqoop list-databases \
--connect jdbc:mysql://192.168.87.202/ \
--username root \
--password 123456
sqoop import \
--connect jdbc:mysql://192.168.1.2/cqcvc \
--username root \
--password 123456 \
--target-dir /mydata \
--table student \
--num-mappers 1
sqoop import \
--connect jdbc:mysql://192.168.1.2/cqcvc \
--username root \
--password 123456 \
--target-dir /mydata \
--table student \
--incremental append \
--check-column id \
--last-value 5
sqoop import \
--connect jdbc:mysql://192.168.1.2/cqcvc \
--username root \
--password 123456 \
--where "sex='女'" \
--target-dir /mydata1 \
--table student \
--num-mappers 1
(4)通过query参数的数据过滤导入
sqoop import --connect jdbc:mysql://192.168.1.2/cqcvc --username root \
--password 123456 \
--target-dir /mydata4 \
--query 'select * from student where id>2 and $CONDITIONS' \
--num-mappers 1
(5)数据导出export
sqoop export\
--connect jdbc:mysql://192.168.87.202/chengzhi?characterEncoding=utf8 \
--username root \
--password 123456 \
--table money \
--export-dir /Hive_WH/chengzhi.db/money1
1、先将要分析的数据表consumption.log上传到Hadoop的/data文件下。
2、在hive上新建一个
create table money(
id int,
name String,
Time String,
product String,
money int,
city1 String,
city2 String,
Telephone String)
row format delimited fields terminated by ' ';
2、从本地上传到hive上
load data local inpath '/data/user.txt' into table money;
3、将需要查找的数据查询到然后保存到hive的数据表中去,并且以逗号作为分隔符
create table money1
row format delimited fields terminated by ','
as select name,sum(money) as sum
from consumption1 group by name order by sum;
6、在MySQL数据库中创建一个和需要导出表的表结构相同的数据表
CREATE TABLE money(name varchar(30),sum int(10));
5、将数据保存好后退出hive然后使用sqoop将数据导出MySQL中
sqoop export \
--connect jdbc:mysql://192.168.87.202/chengzhi?characterEncoding=utf8 \
--username root \
--password 123456 \
--table money \
--export-dir /Hive_WH/chengzhi.db/money1