hive安装和shell交互全步骤
2017-08-27 19:45
281 查看
准备好服务器,Hive只在一个节点上安装即可。
主机环境windows+虚拟机Linux
详细步骤:
1.官网下载hive的压缩包,这里是hive-0.12.tar.gz,上传tar包到linux服务器。
2.安装和配置文件
tar -zxvf hive-0.9.0.tar.gz -C /home/hadoop/app/
可以看到hive-0.12文件夹,用mv hive-0.12 hive
进入hive目录下:
su 以root身份登录后,修改etc/profile,加入hive_home=/home/app/hive
在path后面加上hive_home/bin即可。
cd $HIVE_HOME/conf
mv hive-env.sh.template hive-env.sh
mv hive-default.xml.template hive-site.xml
1.修改hadoop的hadoop-env.sh(否则启动hive汇报找不到类的错误)
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
2.修改$HIVE_HOME/bin的hive-config.sh,增加以下三行
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HIVE_HOME=/home/hadoop/hive
export HADOOP_HOME=/home/hadoop/hadoop
默认现在即可开启一下hive。用./hive 命令进入(注意开启之前,要先开启hdfs,因为hive操作数据最终保存到hdfs上的文件夹)
这时候会使用内置的derby存储元数据,但是可能报错:FAILED: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
可以用debug模式启动:bin/hive -hiveconf hive.root.logger=DEBUG,console
可以看出原因在于下面:Version information not found in metastore.
解决方法,修改hive-site.xml中的hive.metastore.schema.verification,置为false,并重启hive:
测试:
CREATE TABLE t2(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
造一份数据,然后:LOAD DATA LOCAL INPATH '/root/id' INTO TABLE t1;
derby有个缺点:每个不同用户同时登录这个Linux系统,都有自己的目录,都会生成一份元数据,所以大家看到的并不一样。showtables可以测试,所以用mysql
3.安装元数据存储源mysql
------------------------安装mysql支持多用户---------------------------------------------
配置mysql metastore(切换到root用户)
配置HIVE_HOME环境变量
rpm -qa | grep mysql
rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps
rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm
修改mysql的密码
/usr/bin/mysql_secure_installation
(注意:删除匿名用户,允许用户远程连接)
登陆mysql
mysql -u root -p
---------------------如果是Ubuntu安装mysql如下:-----
一. 安装MySQL
1. 安装前先更新软件包列表:
$ sudo apt update
2. 在Ubuntu 16.04上安装MySQL:
$ sudo apt-get install mysql-server mysql-client
3. 在安装过程中需要你输入MySQL 管理员用户(root)密码,如下图:
输入root用户密码
4. 运行MySQL初始化安全脚本:
$ sudo mysql_secure_installation
5. 根据提示信息设置:
根据提示信息设置
mysql_secure_installation脚本设置的东西:更改root密码、移除MySQL的匿名用户、禁止root远程登录、删除test数据库。使用上面的这些选项可以提高MySQL的安全。
二. MySQL数据库基本使用
1.使用root用户登录:
$ mysql -u root -p
2.输入root密码:
输入root密码
注意如果需要指定安装某个版本的mysql, :命令用法如下:
sudo apt-get install package=version
例如我要安装autoconf 2.50:
sudo apt-get install autoconf=2.50
----------------------------------------------
4.配置hive
cp hive-default.xml.template hive-site.xml
修改hive-site.xml(删除所有内容,只留一个<property></property>)
添加如下内容:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.10.127:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>
注意:配置文件中url的ip地址最好改为localhost或者机器名称,不然可能报出:Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient错误
5.安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
mysql -uroot -p
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
6.建表(默认是内部表)
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, accou
4000
nt 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';
create external table ex_user(id int,name string) row format delimited fields terminated by '\t' location '/home/hadoop/user.txt';
7.创建分区表
普通表和分区表区别:有大量数据增加的需要建分区表
create table book (id bigint, name string) partitioned by (pubdate string) row format delimited fields terminated by '\t';
分区表加载数据
load data local inpath './book.txt' overwrite into table book partition (pubdate='2010-08-22');
load data local inpath '/root/data.am' into table beauty partition (nation="USA");
select nation, avg(size) from beauties group by nation order by avg(size);
8.创建关联表
create table user(id int,name string) row format delimited fields terminated by '\t';
LOAD DATA LOCAL INPATH '/home/hadoop/user.txt' INTO TABLE user;
create table order(id int,uid int,name string) row format delimited fields terminated by '\t';
LOAD DATA LOCAL INPATH '/home/hadoop/order.txt' INTO TABLE order
--可以关联查询,查询id为1的小明有哪些订单
select user.name,order.name from user join order on user.id=order.uid where user.name='xiaoming';
主机环境windows+虚拟机Linux
详细步骤:
1.官网下载hive的压缩包,这里是hive-0.12.tar.gz,上传tar包到linux服务器。
2.安装和配置文件
tar -zxvf hive-0.9.0.tar.gz -C /home/hadoop/app/
可以看到hive-0.12文件夹,用mv hive-0.12 hive
进入hive目录下:
su 以root身份登录后,修改etc/profile,加入hive_home=/home/app/hive
在path后面加上hive_home/bin即可。
cd $HIVE_HOME/conf
mv hive-env.sh.template hive-env.sh
mv hive-default.xml.template hive-site.xml
1.修改hadoop的hadoop-env.sh(否则启动hive汇报找不到类的错误)
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
2.修改$HIVE_HOME/bin的hive-config.sh,增加以下三行
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HIVE_HOME=/home/hadoop/hive
export HADOOP_HOME=/home/hadoop/hadoop
默认现在即可开启一下hive。用./hive 命令进入(注意开启之前,要先开启hdfs,因为hive操作数据最终保存到hdfs上的文件夹)
这时候会使用内置的derby存储元数据,但是可能报错:FAILED: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
可以用debug模式启动:bin/hive -hiveconf hive.root.logger=DEBUG,console
可以看出原因在于下面:Version information not found in metastore.
解决方法,修改hive-site.xml中的hive.metastore.schema.verification,置为false,并重启hive:
测试:
CREATE TABLE t2(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
造一份数据,然后:LOAD DATA LOCAL INPATH '/root/id' INTO TABLE t1;
derby有个缺点:每个不同用户同时登录这个Linux系统,都有自己的目录,都会生成一份元数据,所以大家看到的并不一样。showtables可以测试,所以用mysql
3.安装元数据存储源mysql
------------------------安装mysql支持多用户---------------------------------------------
配置mysql metastore(切换到root用户)
配置HIVE_HOME环境变量
rpm -qa | grep mysql
rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps
rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm
修改mysql的密码
/usr/bin/mysql_secure_installation
(注意:删除匿名用户,允许用户远程连接)
登陆mysql
mysql -u root -p
---------------------如果是Ubuntu安装mysql如下:-----
一. 安装MySQL
1. 安装前先更新软件包列表:
$ sudo apt update
2. 在Ubuntu 16.04上安装MySQL:
$ sudo apt-get install mysql-server mysql-client
3. 在安装过程中需要你输入MySQL 管理员用户(root)密码,如下图:
输入root用户密码
4. 运行MySQL初始化安全脚本:
$ sudo mysql_secure_installation
5. 根据提示信息设置:
根据提示信息设置
mysql_secure_installation脚本设置的东西:更改root密码、移除MySQL的匿名用户、禁止root远程登录、删除test数据库。使用上面的这些选项可以提高MySQL的安全。
二. MySQL数据库基本使用
1.使用root用户登录:
$ mysql -u root -p
2.输入root密码:
输入root密码
注意如果需要指定安装某个版本的mysql, :命令用法如下:
sudo apt-get install package=version
例如我要安装autoconf 2.50:
sudo apt-get install autoconf=2.50
----------------------------------------------
4.配置hive
cp hive-default.xml.template hive-site.xml
修改hive-site.xml(删除所有内容,只留一个<property></property>)
添加如下内容:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.10.127:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>
注意:配置文件中url的ip地址最好改为localhost或者机器名称,不然可能报出:Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient错误
5.安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
mysql -uroot -p
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
GRANT ALL PRIVILEGES ON *.* TO 'hadoop'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
6.建表(默认是内部表)
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, accou
4000
nt 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';
create external table ex_user(id int,name string) row format delimited fields terminated by '\t' location '/home/hadoop/user.txt';
7.创建分区表
普通表和分区表区别:有大量数据增加的需要建分区表
create table book (id bigint, name string) partitioned by (pubdate string) row format delimited fields terminated by '\t';
分区表加载数据
load data local inpath './book.txt' overwrite into table book partition (pubdate='2010-08-22');
load data local inpath '/root/data.am' into table beauty partition (nation="USA");
select nation, avg(size) from beauties group by nation order by avg(size);
8.创建关联表
create table user(id int,name string) row format delimited fields terminated by '\t';
LOAD DATA LOCAL INPATH '/home/hadoop/user.txt' INTO TABLE user;
create table order(id int,uid int,name string) row format delimited fields terminated by '\t';
LOAD DATA LOCAL INPATH '/home/hadoop/order.txt' INTO TABLE order
--可以关联查询,查询id为1的小明有哪些订单
select user.name,order.name from user join order on user.id=order.uid where user.name='xiaoming';
相关文章推荐
- 在CentOS6中安装Hive的简单步骤与排错方法
- 安装hive-1.2.1详细步骤
- hive web界面安装详细安装步骤
- CentOS6.x下通过shell脚本交互安装Web服务 推荐
- shell命令执行hive脚本(hive交互,hive的shell编程)
- hive1.2.1安装步骤(在hadoop2.6.4集群上)
- hive变量调用 hive和shell hdfs命令交互调用 hiverc预定义初始化
- hive的安装配置步骤简单记录
- 详解Hive的架构、工作原理及安装步骤
- 给Ambari集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)
- hadoop 2.5.2 + hive1.1.0 单机环境安装步骤
- 给Clouderamanager集群里安装基于Hive的大数据实时分析查询引擎工具Impala步骤(图文详解)
- CM安装好集群之后在shell命令下执行hive 或者hbase操作遇到权限问题的解决方法
- linux中安装hive的步骤以及关于jline报错的问题
- 安装Pythonshell交互编辑器 IPython
- Hive的安装步骤
- Hive1.2.2安装步骤(Ubuntu17.04环境下搭建)
- Hive2.0.0安装步骤(配置mysql+简单入门)
- HIVE安装步骤
- Hive的安装步骤