0.安裝環境和版本 Ubuntu16,hadoop版本是2.7.2 ,選擇Hive版本為 hive-2.1.17 1. Hive安裝包下載 地址: https://mirrors.tuna.tsinghua.edu.cn/apache/hive/ 2.上傳到伺服器後解壓 3.配置 添加以下內容: 保 ...
0.安裝環境和版本
Ubuntu16,hadoop版本是2.7.2 ,選擇Hive版本為 hive-2.1.17
1. Hive安裝包下載
地址: https://mirrors.tuna.tsinghua.edu.cn/apache/hive/
2.上傳到伺服器後解壓
sudo mv apache-hive-2.1.1-bin.tar.gz /usr/local sudo tar zxvf apache-hive-2.1.1-bin.tar.gz sudo mv apache-hive-2.1.1-bin hive sudo chown –R hadoop:hadoop hive
3.配置
sudo vi /etc/profile.d/hadoop.sh
添加以下內容:
#For Hive export HIVE_HOME=/usr/local/hive export HIVE_CONF_DIR=$HIVE_HOME/conf export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib export PATH=$PATH:$HIVE_HOME/bin
保存後使用命令:source /etc/profile使環境變數立即生效
4.下載並設置好jdbc connector
從此處下載:https://dev.mysql.com/downloads/connector/j/
記住,將解壓出來的jar放入hive 的lib中
sudo cp mysql-connector-java-5.1.42-bin.jar $HIVE_HOME/lib/
或
ln -s /usr/share/java/mysql-connector-java-5.1.42-bin.jar $HIVE_HOME/lib/mysql-connector-java-5.1.42-bin.jar
5. 配置MySQL作為Hive的元數據存儲庫
如果沒有安裝好MySQL,先在伺服器裝好MySQL。
1) 創建hive資料庫和用戶
GRANT all privileges on *.* TO 'hive' identified by 'Hive@12345'; create database hive; flush privileges;
6. 配置hive-site.xml文件
1) 配置hive-site.xml文件
cd $HIVE_HOME/conf cp hive-default.xml.template hive-site.xml
修改:
<name>hive.metastore.schema.verification</name> <value>true</value>
改為
<name>hive.metastore.schema.verification</name> <value>false</value>
設置HIVE元資料庫連接信息:
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master: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>hive</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive</value> <description>password to use against metastore database</description> </property>
6.初始化資料庫
在使用hive或者hive --service cli來運行之前需要初始化資料庫,如果在初始化之前已經運行了上述命令並且失敗,則需要刪除產生的metastore_db文件
使用命令schematool -initSchema -dbType mysql初始化mysql資料庫
出現以下幾行說明初始化成功:
7.啟動Hive服務
啟動hive常用的兩個服務
# 使用這個服務,可以讓metastore作為一個單獨的(遠程)進程運行
nohup hive --service metastore 2>&1 >> /var/log.log &
# 讓Hive以提供Trift服務的伺服器形式運行,允許用不同語言編寫的客戶端進行訪問
nohup hive -–service hiveserver2 2>&1 >> /var/log.log &
8. 複製hive到其他從節點
將hive文件夾scp到其他從節點中,這樣在其他伺服器上也能訪問hive
9.報錯解決
1) 異常信息:
異常信息:
Exception in thread "main" Java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
at org.apache.Hadoop.hive.ql.session.SessionState.start(SessionState.java:444)
解決:
查看hive-site.xml配置,會看到配置值含有"system:java.io.tmpdir"的配置項
2.新建文件夾在hive目錄下新建一個tmp目錄
3. ${system:java.io.tmpdir}/${system:user.name} 這兩個一起替換為 /usr/local/hive/tmp 路徑,有兩個地方要替換