hive简介以及安装配置
Hive簡介
1.1在hadoop生態圈中屬于數據倉庫的角色。他能夠管理hadoop中的數據,同時可以查詢hadoop中的數據。
? 本質上講,hive是一個SQL解析引擎。Hive可以把SQL查詢轉換為MapReduce中的job來運行。
?hive有一套映射工具,可以把SQL轉換為MapReduce中的job,可以把SQL中的表、字段轉換為HDFS中的文件(夾)以及文件中的列。
? 這套映射工具稱之為metastore,一般存放在derby、mysql中。
1.2 hive在hdfs中的默認位置是/user/hive/warehouse,是由配置文件hive-conf.xml中屬性hive.metastore.warehouse.dir決定的。
(修改hive的位置:進入hive-site.xml找到name=hive.metastore.warehouse.dir修改value值即可)
hive的安裝
? (1)解壓縮、重命名、設置環境變量
? (2)在目錄$HIVE_HOME/conf/下,執行命令mvhive-default.xml.template? hive-site.xml重命名
? ???在目錄$HIVE_HOME/conf/下,執行命令mvhive-env.sh.template? hive-env.sh重命名
? (3)修改hadoop的配置文件hadoop-env.sh,修改內容如下:
????export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
? (4)在目錄$HIVE_HOME/bin下面,修改文件hive-config.sh,增加以下內容:
????export JAVA_HOME=/usr/local/jdk
????export HIVE_HOME=/usr/local/hive
????export HADOOP_HOME=/usr/local/hadoop
安裝mysql
? (1)刪除linux上已經安裝的mysql相關庫信息。rpm? -e?xxxxxxx?? --nodeps
???? 執行命令rpm -qa|grep -i mysql 檢查是否刪除干凈
? (2)執行命令 rpm-i?? mysql-server-********? 安裝mysql服務端?????
? (3)啟動mysql 服務端,執行命令? mysqld_safe &
? (4)執行命令 rpm-i?? mysql-client-********? 安裝mysql客戶端
? (5)執行命令mysql_secure_installation設置root用戶密碼
?使用mysql作為hive的metastore
? (1)把mysql的jdbc驅動放置到hive的lib目錄下
? (2)修改hive-site.xml文件,修改內容如下:?
???????? <property>
?????????????????? <name>javax.jdo.option.ConnectionURL</name>
?????????????????? <value>jdbc:mysql://hadoop0:3306/hive?createDatabaseIfNotExist=true</value>
???????? </property>
???????? <property>
?????????????????? <name>javax.jdo.option.ConnectionDriverName</name>
?????????????????? <value>com.mysql.jdbc.Driver</value>
???????? </property>
???????? <property>
?????????????????? <name>javax.jdo.option.ConnectionUserName</name>
?????????????????? <value>root</value>
???????? </property>
???????? <property>
?????????????????? <name>javax.jdo.option.ConnectionPassword</name>
?????????????????? <value>admin</value>
???????? </property>
實例
內部表
??CREATE TABLE t1(id int);?
??LOAD DATA LOCAL INPATH '/root/id' INTO TABLE t1;
?? (注:LOCAL表示從Linux的磁盤文件中加載,去掉LOCAL則表示從hdfs中加載)
??CREATE TABLE t2(id int, name string) ROW FORMAT DELIMITED FIELDSTERMINATED BY '\t';
分區表
??CREATE TABLE t3(id int) PARTITIONED BY (day int);?
??LOAD DATA LOCAL INPATH '/root/id' INTO TABLE t1 PARTITION (day=22);??
桶表
??create table t4(id int) clustered by(id) into 4 buckets;
?? sethive.enforce.bucketing = true;
??insert into table t4 select id from t3;
?外部表
??create external table t5(id int) location '/external';? ?
總結
以上是生活随笔為你收集整理的hive简介以及安装配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8p跟7p有什么区别
- 下一篇: hive配置遇到的问题( Relativ