1. 程式人生 > >Hadoop學習(三)Hive安裝

Hadoop學習(三)Hive安裝

下載hive包上傳到linux主機上並解壓 這裡使用 apache-hive-2.1.1-bin.tar.gz

安裝配置 MySQL

CentOS7安裝mysql提示 :No package mysql-server available.

輸入下面兩部

第二步安裝mysql源: rpm -ivh mysql-community-release-el7-5.noarch.rpm

經過以上兩個步驟後再次執行:

yum install mysql-server
yum install mysql
yum install mysql-devel

命令就可以成功安裝了。

啟動mysql

systemctl start mysqld

檢視mysql 的狀態

systemctl status mysqld

配置 Hive
進入 hive 安裝目錄下的配置目錄,然後修改配置檔案

cd /home/chs/apache-hive-2.1.1-bin/conf

然後再該目錄下建立一個新檔案 hive-site.xml
將下面的內容新增到 hive-site.xml 檔案中.

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration
>
<property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> #IP 地址是指安裝 MySQL 的節點的 IP <value>jdbc:mysql://192.168.190.147:3306/hive?characterEncoding=UTF-8</value> </property
>
<property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hadoop</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hadoop</value> </property> </configuration>
mv mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar
~/apache-hive-2.1.1-bin/lib/

配置環境變數
vim /etc/profile

export HIVE_HOME=/home/chs/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin

配置完之後使配置檔案生效 source /etc/profile

修改hive-env.sh

cp hive-env.sh.template  hive-env.sh
HADOOP_HOME=/home/chs/hadoop-2.7.3

然後就可以啟動hive了

啟動錯誤:org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
原因:hive 2.0以上版本,安裝配置完成之後需要先初始化元資料庫
解決方法:
執行 schematool -dbType mysql -initSchema
之後就可以正常啟動hive

上面使用的是本地的mysql,生產環境中一般使用遠端的mysql儲存,配置如下

    <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>hadoop</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hadoop</value>
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/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>hadoop</value>
        </property>
     <property>
        <name>beeline.hs2.connection.password</name>
        <value>hadoop</value>
     </property>
</configuration>
  • hive.metastore.uris中的“master“含義為metastore server所在的機器
  • javax.jdo.option.ConnectionURL中的“master”為mysql安裝機器的hostname
  • javax.jdo.option.ConnectionUserName和javax.jdo.option.ConnectionPassword分別為mysql的訪問使用者和密碼
  • fs.defaultFS為HDFS的namenode啟動的機器地址
  • beeline.hs2.connection.user和beeline.hs2.connection.password是beeline方式訪問的使用者名稱和密碼,可任意指定,但在beeline訪問時要寫入你指定的這個

啟動metastore

nohup hive --service metastore >> /home/chs/apache-hive-2.1.1-bin/metastore.log 2>&1  &

啟動hive server

nohup hive --service hiveserver2 >> /home/chs/apache-hive-2.1.1-bin/hiveserver.log 2>&1 &

檢視是否啟動成功

ps aux | grep hive

可以看到檢視到下面結果,有兩個程序HiveMetaStore和HiveServer2

 [[email protected] ~]$ ps aux | grep hive
chs        2479 99.7 18.0 2327632 367752 pts/0  Sl   16:15   0:19 /home/chs/java/jdk1.8.0_172/bin/java -Xmx256m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/chs/hadoop-2.7.3/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/chs/hadoop-2.7.3 -Dhadoop.id.str=chs -Dhadoop.root.logger=INFO,console -Djava.library.path=/home/chs/hadoop-2.7.3/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xmx512m -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/home/chs/apache-hive-2.1.1-bin/conf/parquet-logging.properties -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/chs/apache-hive-2.1.1-bin/lib/hive-metastore-2.1.1.jar org.apache.hadoop.hive.metastore.HiveMetaStore
chs        2662  136 14.5 2302352 295540 pts/0  Sl   16:15   0:10 /home/chs/java/jdk1.8.0_172/bin/java -Xmx256m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/home/chs/hadoop-2.7.3/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/chs/hadoop-2.7.3 -Dhadoop.id.str=chs -Dhadoop.root.logger=INFO,console -Djava.library.path=/home/chs/hadoop-2.7.3/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xmx512m -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/home/chs/apache-hive-2.1.1-bin/conf/parquet-logging.properties -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/chs/apache-hive-2.1.1-bin/lib/hive-service-2.1.1.jar org.apache.hive.service.server.HiveServer2
chs        2854  0.0  0.0 112660   972 pts/0    S+   16:15   0:00 grep --color=auto hive

啟動客戶端可以使用hive命令也可以使用beeline命令。推薦使用beeline
OK 使用beeline啟動客戶端,之後輸入下面的命令發起一個連線

!connect jdbc:hive2://master:10000/default  hadoop hadoop

其中hadoop和hadoop分別是在hive-site.xml配置檔案中由beeline.hs2.connection.user和beeline.hs2.connection.password設定的。
如果出現下面的錯誤

Could not open connection to the HS2 server. Please check the server URI and if the URI is correct, then ask the administrator to check the server status.
Error: Could not open client transport with JDBC Uri: jdbc:hive2://master:10000/default: java.net.ConnectException: Connection refused (Connection refused) (state=08S01,code=0)

需在hadoop的配置檔案core-site.xml中加入以下配置並重啟hiveserver2, hive metastore,HDFS和YARN:

<property>
 <name>hadoop.proxyuser.chs.groups</name>
 <value>*</value>
</property>

<property>
 <name>hadoop.proxyuser.chs.hosts</name>
 <value>*</value>
</property>

其中的chs是你登陸linux虛擬機器的使用者名稱
在連線就成功了顯示如下

beeline> !connect jdbc:hive2://master:10000/default  hadoop hadoop
Connecting to jdbc:hive2://master:10000/default
Connected to: Apache Hive (version 2.1.1)
Driver: Hive JDBC (version 2.1.1)
18/07/02 16:37:03 [main]: WARN jdbc.HiveConnection: Request to set autoCommit to false; Hive does not support autoCommit=false.
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://master:10000/default> 

OK遠端連線成功

相關推薦

Hadoop學習Hive安裝

下載hive包上傳到linux主機上並解壓 這裡使用 apache-hive-2.1.1-bin.tar.gz 安裝配置 MySQL CentOS7安裝mysql提示 :No package mysql-server available. 輸入下面兩部

Hive學習 Hive的連線種連線方式

目錄一、CLI連線二、HiveServer2/beeline    1、修改 hadoop 叢集的 hdfs-site.xml 配置檔案    2、修改 hadoop 叢集的 core-site.xml 配置檔案三、Web UI正文:一、CLI連線進入到 bin 目錄下,直接

hadoop 學習 配置啟動 yarn

一、修改配置檔案 1.修改yarn-env.sh   將java_home修改為絕對路徑 &nbs

docker學習 Windows 10 安裝Docker

body 圖標 hyper com app try href windows 必須 Docker CE: 社區版,免費。 Docker EE: 企業版,收費。 安裝: Windows 10 Pro 64, 必須開啟Hyper-v

Hive學習之路 Hive安裝

different 0.10 director lar blog cut cti mysql extend Hive的下載 下載地址http://mirrors.hust.edu.cn/apache/ 選擇合適的Hive版本進行下載,進到stable-2文件夾可以看到穩

Hive學習之路 Hive元數據信息對應MySQL數據庫表

需要 pri from metastore node rom lazy 測試 安裝 概述 Hive 的元數據信息通常存儲在關系型數據庫中,常用MySQL數據庫作為元數據庫管理。上一篇hive的安裝也是將元數據信息存放在MySQL數據庫中。 Hive的元數據信息在MySQ

Hadoop建設工具Ambari的安裝部署及完整使用——部署安裝

三.部署安裝 1.安裝Ambari-server 線上安裝 1) 在hortonworks公共資源庫,選擇ambari倉庫地址並下載 wget http://s3.amazonaws.com/public-repo-1.hortonworks.com/ambari/centos

Elasticsearch學習在windows上安裝和啟動Elasticseach

步驟 1、安裝JDK,至少1.8.0_73以上版本,java -version 2、下載和解壓縮Elasticsearch安裝包,目錄結構 3、啟動Elasticsearch:bin\elasticsearch.bat,es本身特點之一就是開箱即用,如果是中小型應用,資料量少,操作不

ElasticSearch學習 - windows下安裝ElasticSearch6.X head外掛

1、安裝node.js ElasticSearch學習 - (二)中有詳解 檢視node.js版本  node -v 檢視npm版本 npm -v 2、安裝grunt 使用npm安裝grunt   npm install -g grunt

TensorFlow學習筆記—— linux安裝TensorFlow

參照官方文件https://www.tensorflow.org/get_started/os_setup.html 我們可以使用pip來安裝tensorflow 因為依賴python,且有python2與python3之分,所以先安裝virtualenv 可方便得在pyth

大資料基礎知識學習-----Hive學習筆記Hive安裝環境準備

Hive安裝環境準備 Hive安裝地址 Hive安裝部署 Hive安裝及配置 把apache-hive-1.2.1-bin.tar.gz上傳到linux的/opt/software目錄下 解壓apache-hive-1.2.

Hadoop權威指南學習——MapReduce應用開發

開發MapReduce程式,有一個特定流程:1.寫map和reduce函式,並經過單元測試;2. 編寫本地測試程式執行作業;3. 在叢集上執行,使用IsolationRunner在失敗的相同輸入資料上執行任務;4. 優化調整,任務剖析,Hadoop提供鉤子(hook)輔助分

Elasticsearch2.4學習------Elasticsearch2.4外掛安裝詳解

配置好Elasticsearch集群后,為了能夠進行更便捷的叢集狀態監控、更方便的查詢操作,還需要安裝一些外掛。 首先要說明的是,Elasticsearch的外掛非常之多,具體可以參考下面這篇文章(

ROS學習:ROS安裝不能本地化問題

ROS 安裝命令: sudo apt-get install ros-indigo-desktop-full 經常出現問題: E: Unable to locate package ros-ind

自己的HADOOP平臺:Mysql+hive遠端模式+Spark on Yarn

Spark和hive配置較為簡單,為了方便Spark對資料的使用與測試,因此在搭建Spark on Yarn模式的同時,也把Mysql + Hive一起搭建完成,並且配置Hive對Spark的支援,讓Spark也能像Hive一樣操作資料。 前期準備

hadoop 學習 安裝hadoop環境

  hadoop 安裝使用需要依賴jdk的環境  首先安裝jdk1.8 並配置環境變數 解壓jdk後修改&

MySQL學習ODBC 安裝

oca local new cmd 密碼 服務 關閉 mysql 系統 寫前說明 初次接觸MySQL,都說MySQL各種好。我也來學習學習。之前只有SQLServer2008的經驗,其實也只是皮毛。因為SQLServer還是比較容易上手的。也不麻煩。但是自己

爬蟲庫之BeautifulSoup學習

子節點 rom lac repr 文檔 strong 爬蟲 time contents 遍歷文檔樹:   1、查找子節點   .contents     tag的.content屬性可以將tag的子節點以列表的方式輸出。   print soup.body.cont

Java學習JSP學習1

rtm 斷開 三大指令 保持 web應用 對比 c語言 let 新建 一、 理解JSP技術   JSP全名為Java Server Pages,中文名叫java服務器頁面,其根本是一個簡化的Servlet設計,它 是由Sun Microsystems公司倡導、許多公司參

java學習

con void pub oid 修改密碼 tro int str 用戶 類 public class Dog{ String breed; int age; String color; void barking(){ } void hungr