文章目录
1. 安装hive
1.1 安装 java
在Hive安装之前,Java必须在系统上已经安装。使用下面的命令来验证是否已经安装Java, 如果Java已经安装在系统上,就可以看到如下回应
 
 在 java 官网 下载,傻瓜式安装即可
 
1.2 hadoop 安装
下载 hadoop
 解压放到指定目录下,并进行如下配置环境变量(mac系统)
- 执行vim ~/.bash_profile修改环境变量(linux 下应该是 ~/.bashrc)
export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export
PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
- source ~/.bash_profile将当前修改应用到正在运行的系统
使用如下命令进行验证
 
 hadoop 配置
 进入hadoop配置文件目录 $HADOOP_HOME/etc/hadoop
-  为了使用java开发Hadoop的项目,必须用java在系统的位置替换JAVA_HOME值重置hadoop-env.sh文件中的java环境变量 先用 /usr/libexec/java_home -V查看java安装路径
  
 修改hadoop-env.sh文件
  
-  修改 core-site.xml 文件,core-site.xml文件中包含如下信息,如使用Hadoop实例分配给文件系统的存储器,用于存储数据的内存限制的端口号,以及读/写缓冲器的大小 打开core-site.xml文件并在,标签之间添加以下属性 <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
-  修改 hdfs-site.xml 文件,hdfs-site.xml 文件中包含如下信息,如复制数据的值,名称节点的路径,本地文件系统的数据节点的路径 
更多配置参考:hive 安装
验证hadoop的安装
-  验证hadoop dfs start-dfs.sh 
 踩坑记录:connection refused 错误
 参考 1. Mac OS X 上搭建 Hadoop 开发环境指南
 2. Permission denied (publickey,password,keyboard-interactive).
-  验证yarn脚本 start-yarn.sh
-  访问Hadoop的默认端口号为50070(hadoop 3 默认端口为9870)使用以下网址,以获取浏览器Hadoop服务 http://localhost:9870/
1.3 hive安装
下载hive
 下载 hive 2.3.9,如下图所示
 
 配置hive环境变量
 通过 vim ~/.bash_profile,追加如下语句
export HIVE_HOME=/Applications/apache-hive-2.3.9-bin
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/Applications/hadoop-3.3.1/lib/*:.
export CLASSPATH=$CLASSPATH:/Applications/apache-hive-2.3.9-bin/lib/*:.
执行 source ~/.bash_profile 使其生效
配置hive
cd $HIVE_HOME/conf
cp hive-env.sh.template hive-env.sh
编辑hive-env.sh文件添加以下行
export HADOOP_HOME=/Applications/hadoop-3.3.1
1.4 下载并安装Apache Derby
如上Hive安装成功完成。现在,需要一个外部数据库服务器配置Metastore。我们使用Apache Derby数据库。
2. hive 使用
-  创建数据库 CREATE DATABASE [IF NOT EXISTS] <database name>;
-  查询数据库 SHOW DATABASES;
-  删除数据库 DROP DATABASE [IF EXISTS] <database name>;
-  创建表 CREATE TABLE [IF NOT EXISTS] [db_name.] table_name [(col_name data_type, col_name2 data_type2, ...)] [COMMENT table_comment] [ROW FORMAT row_format] [STORED AS file_format]如创建一张员工的表 
 CREATE TABLE IF NOT EXISTS employee ( id int, name String, salary String, destination String);
-  插入数据 
 在SQL创建表后,可以使用INSERT语句插入数据,在Hive中,可以使用LOAD DATA语句插入数据LOAD DATA [LOCAL] INPATH <filepath> [OVERWRITE] INTO TABLE <tablename>LOCAL是标识符指定本地路径;OVERWRITE 覆盖表中的数据; 
-  更改表的名字 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>
-  删除表 DROP TABLE [IF EXISTS] table_name;
-  查询语句 select SELECT [ALL | DISTINCT] <select_expr>, <select_expr>, ... FROM <table_name> [WHERE <condition>] [GROUP BY col_list] [HAVING having_condition] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list]] [LIMIT number];
-  查询并排序 SELECT [ALL | DISTINCT] <select_expr1>, <select_expr2>, ... FROM <table_name> [WHERE where_condition] [GROUP BY col_list] [HAVING having_condition] ORDER BY <column_list> [LIMIT number];
从上面的语法可以看出hive的语法和mysql的语法是极其相似的
参考
1. 易百教程-hive










