hadoop+hive

1.安装hadoop
见hadoop单机安装

2.安装mysql8.0.11
groupadd -r mysql
useradd -g mysql mysql
mkdir /data/mydata
chown -R mysql.mysql /data/mydata
tar -zxvf  mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv /use/local/mysql-8.0.11 /use/local/mysql
chown -R mysql.mysql /use/local/mysql
vim /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin 
source /etc/profile.d/mysql.sh 
vim /etc/ld.conf.d/mysql.conf 
/usr/local/mysql/lib 
ldconfig -v 
cp /use/local/mysql/support-files /etc/init.d/mysqld 
chkconfig --add mysqld 
chkconfig mysqld on
vim /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /data/mydata
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB


mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mydata
mysqld_safe --defaults-file=/etc/my.cnf 
mysql_secure_installation


service mysqld stop
service mysqld start
mysql -uroot -p


mysql>create database hive default charset utf8


上传驱动报到/usr/local/hive/lib 
mysql-connector-java****.jar 


3.安装hive
下载hive    http://archive.apache.org/dist/hive/
tar -zxvf apache-hive-2.3.3-bin.tar.gz -C /usr/local/
mv /usr/local/hive-2.3.3 /usr/local/hive
vim /etc/profile.d/hive.sh 
export HIVE_HOME=/usr/local/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf 
export PATH=$HIVE_HOME/bin:$PATH
source /etc/profile.d/hive.sh
mkdir -p /data/hive/warehouse
su - hadoop
[hadoop@master ~]$ hadoop fs -mkdir -p /data/hive/warehouse
[hadoop@master ~]$ hadoop fs -chmod -R 777 /data/hive/
[hadoop@master ~]$ hadoop fs -ls -R /data 


su - root 
cd /usr/local/hive/conf 
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
<property>  
    <name>hive.metastore.warehouse.dir</name>  
    <value>/data/hive/warehouse</value>  
</property>
  
<property>
    <name>hive.exec.scratchdir</name>
    <value>/data/hive</value>
</property>


<property>  
    <name>hive.metastore.uris</name>  
    <value></value>  
</property>


<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://local:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>


<property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
</property>
  
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
</property>


<property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>12345678</value>
</property>
<property>
   <name>hive.metastore.schema.verification</name>
   <value>false</value>
   <description></description>
</property>


:1,$s/${system:java.io.tmpdir}/\/data\/hive\/tmp/g
:1,$s/${system:user.name}/root/g


cp hive-env.sh.template hive-env.sh
vim 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 




4.初始化数据库
schematool  -initSchema -dbType mysql


进入hive:
[root@master ~]# hive
hive>show databases;
hive>create database test default charset utf8;
hive>create  table  test.stu(id int,name string)  row  format  delimited  fields   terminated  by  '\t';
hive>use test;
hive>show tables;
hive>desc stu;




因为hive 不支持写,所以添加数据使用load加载文本获取。 
vim /data/hive/stu.txt
1001    lily
1002    tom
1003    lucy




hive>load data local inpath '/data/hive/stu.txt'  into table stu;
hive>select * from stu;










###########################hive常用命令#####################################
1.建表
#建表(默认是内部表)  
create table trade_detail(id bigint, account string, income double, expenses double, time string)   
row format delimited fields terminated by '\t';  
  
#建分区表  
#普通表和分区表区别:有大量数据增加的需要建分区表  
create table td_part(id bigint, account string, income double, expenses double, time string)   
partitioned by (logdate string)   
row format delimited fields terminated by '\t';  
  
#建外部表  
create external table td_ext(id bigint, account string, income double, expenses double, time string)   
row format delimited fields terminated by '\t' location '/td_ext'; 






2.加载数据到表
#把本地数据装载到数据表,也就是在metastore上创建信息  
load data local inpath '/root/a.txt' into table trade_detail;   
  
#把HDFS上的数据装载到数据表  
load data inpath '/target.txt' into table trade_detail;  
  
#加载数据到分区表必须指明所属分区  
load data local inpath './book.txt' overwrite into table book   
partition (pubdate='2010-08-22'); 




3.Hive 的shell下可以执行HDFS和Linux命令:
在Hive shell下执行hadoop命令行:  
#比如:hadoop fs -ls /,在hive下可以这样执行:  
hive> dfs -ls /;  
  
在Hive shell下执行linux系统命令:  
!cmd;  
例如:!pwd;打印当前工作目录  
  
在Hive shell下执行sql文件:  
hive> source my.sql;  
  
hive -S 以静默模式启动hive(不打印日志信息,纸打印结果);  
  
hive -e "HiveQL",不进入hive的交互模式,直接执行命令;  
  
当然也可以结合静默模式一起使用:hive -S -e "HiveQL"  




4.其他命令
#描述表结构  
desc tablename;  
  
#查看创建表信息  
show create table tablename;  
  
#查看表的分区  
show partitions tablename; 









































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值