任務描述
任務內容為安裝并配置在Hadoop集群中使用Hive。
任務指導
Hive是一個基于Hadoop的數據倉庫框架,在實際使用時需要將元數據存儲在數據庫中
具體安裝步驟如下:
1. 安裝MySQL數據庫(已安裝)
2. 解壓縮Hive的壓縮包
3. 配置Hive的環境變量
4. 拷貝MySQL的驅動包到Hive的lib目錄下
5. 修改Hive的配置文件,Hive的配置文件存放在Hive安裝目錄下的conf中
6. 初始化Hive的元數據
7. Hive只需要安裝在需要執行Hive操作的節點上(master1)。
任務實現
1. 安裝MySQL數據庫
已在master1安裝可以直接使用
用戶名:root
密碼:Qst@123456
2. 安裝Hive。在master1服務器解壓并配置。
下載“apache-hive-2.3.4-bin.tar.gz”,已經放到/opt/software目錄下;
輸入【cd? /opt/software】命令轉到/opt/software目錄下;
輸入【tar? -xzvf? apache-hive-2.3.4-bin.tar.gz -C /opt/app/】命令解壓。
3. 配置Hive環境變量,修改系統配置文件/etc/profile。
輸入【vi? /etc/profile】命令,編輯/etc/profile文件。
/etc/profile文件修改為如下內容:
export HIVE_HOME=/opt/app/apache-hive-2.3.4-bin
export PATH=$PATH:$HIVE_HOME/bin
刷新環境變量讓配置生效
[root@master1 ~]# source /etc/profile
4. 將MySQL驅動包導入Hive的lib目錄中
將/opt/software目錄中的MySQL驅動包拷貝到$HIVE_HOME/lib目錄中中
[root@master1 ~]# cp /opt/software/mysql-connector-java-5.1.47-bin.jar $HIVE_HOME/lib
5. 配置hive-site.xml文件
進入Hive配置目錄【$HIVE/conf】編輯【hive-site.xml】文件
[root@master1 ~]# cd $HIVE_HOME/conf
[root@master1 conf]# vim hive-site.xml
hive-site.xml文件配置內容如下:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master1:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false</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>Qst@123456</value>
</property>
<property>
<name>datanucleus.readOnlyDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateColumns</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
</configuration>
配置hive-env.sh文件,通過hive-env.sh.template模版文件創建hive-env.sh文件并進行配置
[root@master1 conf]# cp hive-env.sh.template hive-env.sh
[root@master1 conf]# vi hive-env.sh
在文件末尾添加如下配置
HADOOP_HOME=/opt/app/hadoop-2.10.1
export HIVE_CONF_DIR=/opt/app/apache-hive-2.3.4-bin/conf
export HIVE_AUX_JARS_PATH=/opt/app/apache-hive-2.3.4-bin/conf/lib
6. 初始化Hive的元數據
執行如下命令初始化Hive的元數據,初始化前應確保MySQL數據已經啟動,MySQL的啟動命令【systemctl start mysqld.service】
[root@master1 ~]# schematool -dbType mysql -initSchema
7. ?進入Hive命令行
[root@master1 ~]# hive
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/app/apache-hive-2.3.4-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/app/hadoop-2.8.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]Logging initialized using configuration in jar:file:/opt/app/apache-hive-2.3.4-bin/lib/hive-common-2.3.4.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive>