安裝包:
? ? ? ? ? ?apache-hive-2.1.1-bin.tar.gz
?
安裝步驟:
? ? ? ? ?1.上傳???apache-hive-2.1.1-bin.tar.gz 到linux;
? ? ? ? ?2.解壓文件:
? ? ? ? ? ? ? ? ??tar zxvf apache-hive-2.1.1-bin.tar.gz?
? ? ? ? ?3.安裝mysql (僅支持mysql 5.7以下版本,不支持5.7或更高版本,原因:若采用高版本mysql,部分文檔內容需要改寫)
? ? ? ? ? ? ? ? ???sudo yum install mysql-server?
? ? ? ? ?4.?安裝 mysql connector
? ? ? ? ? ? ? ? ??sudo yum install mysql-connector-java?
? ? ? ? ? ??該命令會在/usr/share/java/下產生mysql-connector-java.jar
? ? ? ? ?5.?建立鏈接
? ? ? ? ? ? ? ??ln -s /usr/share/java/mysql-connector-java.jar /usr/local/hadoop-soft/etc/hive-2.1.1/lib/mysql-connector-java.jar?
? ? ? ? ? ? 該命令在hive安裝目錄的lib目錄下建立軟鏈接,指向/usr/share/java/mysql-connector-java.jar?
? ? ? ? 6.??啟動mysql
? ? ? ? ? ? ? ??sudo service mysqld start?
? ? ? ? ? ? ?可通過以下命令驗證mysql啟動成功(顯示mysql進程):
?
? ? ? ? ? ? ? ???ps aux | grep mysql?
? ? ? ?7.??修改mysql密碼 ,?修改mysql密碼(改為newpass,請根據需要自行替換newpass)
? ? ? ? ? ? ? ??mysql> use mysql;?
? ? ? ? ? ? ? ??mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
? ? ? ? ? ? ? ? mysql> FLUSH PRIVILEGES;??
? ? ? ? ? ? ?允許用戶root通過任意機器訪問mysql:
? ? ? ? ? ? ? ???mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpass' WITH GRANT OPTION;?
? ? ? ? ? ? ? ? ?mysql> FLUSH PRIVILEGES;?
? ? 8. 進入到根目錄,配置環境變量:
? ? ? ? ? ? ? ???vim ~/.bash_profile?? ? ? ? ??
export HIVE_HOME=/usr/local/hadoop-soft/etc/hive-2.1.1
export PATH=$HIVE_HOME/bin:$PATH
? ? ?運行生效:
? ? ? ? ? ? ? ? ? source ~/.bash_profile?
? ? 9.??配置hive
? ? ? ? ? ? ? ?a.進入目錄:
? ? ? ? ? ? ? ? ?? cd /usr/local/hadoop-soft/etc/hive-2.1.1/conf?
? ? ? ? ? ? ? ?b. 新建 并 編輯? hive-site.xml
? ? ? ? ? ? ?
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration><property><name>hive.metastore.uris</name><value>thrift://master:9083</value></property><property><name>hive.server2.thrift.port</name><value>10000</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://master/metastore?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>root</value></property><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>hive.metastore.warehouse.dir</name><value>/usr/local/hadoop-soft/etc/hive-2.1.1/warehouse</value></property><property><name>fs.defaultFS</name><value>hdfs://master:9000</value></property><property><name>datanucleus.autoCreateSchema</name><value>true</value></property><property><name>datanucleus.autoStartMechanism</name> <value>SchemaTable</value></property><property><name>datanucleus.schema.autoCreateTables</name><value>true</value></property><property><name>beeline.hs2.connection.user</name><value>master</value></property><property><name>beeline.hs2.connection.password</name><value>master</value></property> </configuration>? ? ?
? ? ? 注意 :
? ? ? ? ? ? ? ? 1. hive.metastore.uris中的“bigdata“含義為metastore server所在的機器(啟動metastore的方法見下一節)
? ? ? ? ? ? ? ? ?2. javax.jdo.option.ConnectionURL中的“bigdata”為mysql安裝機器的hostname
? ? ? ? ? ? ? ? ?3. javax.jdo.option.ConnectionUserName和javax.jdo.option.ConnectionPassword分別為mysql的訪問用戶和密碼,可通過以下命令驗證是否有效(期中bigdata為javax.jdo.option.ConnectionURL中配置的地址,xxx為mysql用戶名):
? ? ? ? ? ? ? ? ? ?mysql –h bigdata-u xxx –p
? ? ? ? ? ? ? ? ?4. fs.defaultFS為HDFS的namenode啟動的機器地址
? ? ? ? ? ? ? ? ?5. beeline.hs2.connection.user和beeline.hs2.connection.password是beeline方式訪問的用戶名和密碼,可任意指定,但在beeline訪問時要寫入你指定的這個(具體參考最后一部分)
10.如果是第一次啟動hive,需要執行初始化命令
? ? ? ? ???schematool -dbType mysql -initSchema?
? ? ? ??注意:僅在第一次啟動hive時,運行該命令,以后則只需直接啟動metastore和hiveserver
11.?啟動metastore
?
? ? ? ? ??nohup hive --service metastore >> /usr/local/hadoop-soft/etc/hive-2.1.1/metastore.log 2>&1 &?
12.?啟動hive server
?
? ? ? ? ??nohup hive --service hiveserver2 >> /usr/local/hadoop-soft/etc/hive-2.1.1/hiveserver.log 2>&1 &?
13.?查看hive metastore和hiveserver2是否啟動成功
? ?ps aux | grep hive?
??能輸出兩個進程,分別對應metastore和hiveserver2.
? ? ?
?
14.??Hive常見兩種訪問方式?
? ? ? ?a.不建議使用 hive?,已經被淘汰
? ? ? ?b.?建議使用 ?beeline?
?15.? 修改hadoop 安裝目錄下 ,core-site.xml 文件
? ? ? ? ? 比如要用root 用戶啟動??hive server2和hive metastore,則增加配置:
<property><name>hadoop.proxyuser.root.groups</name><value>*</value></property><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property>
?
? ? ? ? ? ? ?
? ? 16. 之后輸入以下命令發起一個連接:
? ? ? ? ? ??? !connect jdbc:hive2://master:10000/default master master?
? ? ? ? ? ??
? ? ? ?其中master?和master?分別是在hive-site.xml配置文件中由beeline.hs2.connection.user和beeline.hs2.connection.password設置的。
? ? ? ?注:如果要使用beeline或JDBC連接hive時,遇到報錯:“User: xxx?is not allowed to impersonate yyy”,需在hadoop的配置文件core-site.xml中加入以下配置(其中紅色標志的“xxx”是你啟動hive server2和hive metastore所采用的用戶,
? ? ? ? ? ? ?用戶名中不要包含“.”,比如“cheng.dong”是不支持的),并重啟hiveserver2, hive metastore,HDFS和YARN:
??
?
?
?
?
?
?
?
?