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&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;
见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&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;