1. 程式人生 > >CentOS7.0基於hadoop叢集安裝配置Hive

CentOS7.0基於hadoop叢集安裝配置Hive

前言

安裝Apache Hive前提是要先安裝hadoop叢集,並且hive只需要在hadoop的namenode節點叢集裡安裝即可(需要再有的namenode上安裝),可以不在datanode節點的機器上安裝。還需要說明的是,雖然修改配置檔案並不需要把hadoop執行起來,但是本文中用到了hadoop的hdfs命令,在執行這些命令時你必須確保hadoop是正在執行著的,而且啟動hive的前提也需要hadoop在正常執行著,所以建議先把hadoop叢集啟動起來。

1.下載Apache Hadoop

點選下圖中的連結:這裡寫圖片描述

點選下圖中的某個下載地址,優先選擇國內源:這裡寫圖片描述

我下載的上2.1.1版本,如下圖所示:這裡寫圖片描述

2.安裝Apache Hive

2.1.上載和解壓縮

#解壓
[dtadmin@apollo ~]$ sudo tar -zxvf apache-hive-2.1.1-bin.tar.gz 
#把解壓好的移到/user/local/下
[dtadmin@apollo ~]$ sudo mv apache-hive-2.1.1-bin /usr/local/hive

2.2.配置環境變數

#編輯/etc/profile,新增hive相關的環境變數配置
[[email protected] dtadmin]# vim /etc/profile
#在檔案結尾新增內容如下:
export
HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin #修改完檔案後,執行如下命令,讓配置生效: [[email protected] dtadmin]# source /etc/profile

2.3.Hive配置Hadoop HDFS

2.3.1 hive-site.xml配置

進入目錄$HIVE_HOME/conf,將hive-default.xml.template檔案複製一份並改名為hive-site.xml

#進入hive配置檔案目錄$HIVE_HOME/conf
[root@apollo hive]# cd $HIVE_HOME/conf 
#拷貝並重命名 [root@apollo conf]# cp hive-default.xml.template hive-site.xml

使用hadoop新建hdfs目錄,因為在hive-site.xml中有如下配置:

  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>
  <property>

執行hadoop命令新建/user/hive/warehouse目錄:

#新建目錄/user/hive/warehouse
[root@apollo conf]# $HADOOP_HOME/bin/hadoop dfs -mkdir -p /user/hive/warehouse
#給新建的目錄賦予讀寫許可權
[hadoop@apollo conf]$ sh $HADOOP_HOME/bin/hdfs dfs -chmod 777 /user/hive/warehouse
#檢視修改後的許可權
[hadoop@apollo conf]$  sh $HADOOP_HOME/bin/hdfs dfs -ls /user/hive
Found 1 items
drwxrwxrwx   - impala supergroup          0 2017-06-06 01:46 /user/hive/warehouse


#運用hadoop命令新建/tmp/hive目錄
[hadoop@apollo conf]$ $HADOOP_HOME/bin/hdfs dfs -mkdir -p /tmp/hive
#給目錄/tmp/hive賦予讀寫許可權
[hadoop@apollo conf]$ $HADOOP_HOME/bin/hdfs dfs -chmod 777 /tmp/hive
#檢查建立好的目錄
[hadoop@apollo conf]$ $HADOOP_HOME/bin/hdfs dfs -ls /tmp
Found 1 items
drwxrwxrwx   - hadoop supergroup          0 2017-06-06 05:06 /tmp/hive

2.3.2修改$HIVE_HOME/conf/hive-site.xml中的臨時目錄

將hive-site.xml檔案中的${system:java.io.tmpdir}替換為hive的臨時目錄,例如我替換為$HIVE_HOME/tmp,該目錄如果不存在則要自己手工建立,並且賦予讀寫許可權。

[root@apollo conf]# cd $HIVE_HOME
[root@apollo hive]# mkdir tmp

配置檔案hive-site.xml:

  • 將檔案中的所有 ${system:java.io.tmpdir}替換成/usr/local/hive/tmp
  • 將檔案中所有的${system:user.name}替換為root

2.4安裝配置mysql

2.4.1.安裝mysql

2.4.2. 把mysql的驅動包上傳到Hive的lib目錄下:

#上傳
[dtadmin@apollo ~]$ sudo cp mysql-connector-java-5.1.36.jar $HIVE_HOME/lib
#檢視檔案是否上傳到了$HIVE_HOME/lib目錄下
[dtadmin@apollo ~]$ ls -la $HIVE_HOME/lib/ | grep "mysql*"
-r-xr-xr-x  1 root root   972007 Jun  6 07:26 mysql-connector-java-5.1.36.jar

2.4.3修改hive-site.xml資料庫相關配置

  • 搜尋javax.jdo.option.connectionURL,將該name對應的value修改為MySQL的地址:

    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://192.168.56.181:3306/hive?createDatabaseIfNotExist=true</value>
      <description>
        JDBC connect string for a JDBC metastore.
        To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
        For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
      </description>
    </property>
  • 搜尋javax.jdo.option.ConnectionDriverName,將該name對應的value修改為MySQL驅動類路徑:

    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
    </property>
    <property>
  • 搜尋javax.jdo.option.ConnectionUserName,將對應的value修改為MySQL資料庫登入名:

    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
      <description>Username to use against metastore database</description>
    </property>
  • 搜尋javax.jdo.option.ConnectionPassword,將對應的value修改為MySQL資料庫的登入密碼:

    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>Love88me</value>
      <description>password to use against metastore database</description>
    </property>
  • 搜尋hive.metastore.schema.verification,將對應的value修改為false:

    <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
      <description>
        Enforce metastore schema version consistency.
        True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
              schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
              proper metastore schema migration. (Default)
        False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
      </description>
    </property>

2.4.4 在$HIVE_HOME/conf目錄下新建hive-env.sh

#進入目錄
[root@apollo dtadmin]# cd $HIVE_HOME/conf
#將hive-env.sh.template 複製一份並重命名為hive-env.sh
[root@apollo conf]# cp hive-env.sh.template hive-env.sh
#開啟hive-env.sh並新增如下內容
[root@apollo conf]# vim hive-env.sh
export HADOOP_HOME=/home/hadoop/hadoop2.7.3
export HIVE_CONF_DIR=/usr/local/hive/conf
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib

3.啟動和測試

3.1.MySQL資料庫進行初始化

#進入$HIVE/bin
[root@apollo conf]# cd $HIVE_HOME/bin
#對資料庫進行初始化:
[root@apollo bin]# schematool -initSchema -dbType mysql

如下圖:
這裡寫圖片描述

執行成功後,檢視mysql資料庫:
這裡寫圖片描述

3.2.啟動Hive

[root@apollo bin]# ./hive

如下圖:

這裡寫圖片描述

3.3.測試

3.3.1.檢視函式命令:

hive>show functions;
OK
!
!=
$sum0
%
&
*
+
-
/
<
<=
<=>
<>
=
==
>
>=
^
abs
acos
add_months
aes_decrypt
aes_encrypt
...

3.3.2.檢視sum函式的詳細資訊的命令:

hive> desc function sum;
OK
sum(x) - Returns the sum of a set of numbers
Time taken: 0.008 seconds, Fetched: 1 row(s)

3.3.3.新建資料庫、資料表

#新建資料庫
hive> create database sbux;
#新建資料表
hive> use sbux;
hive> create table student(id int, name string) row format delimited fields terminated by '\t';
hive> desc student;
OK
id                      int                                         
name                    string                                      
Time taken: 0.114 seconds, Fetched: 2 row(s)

3.3.4.將檔案寫入到表中

3.3.4.1.在$HIVE_HOME下新建一個檔案
#進入#HIVE_HOME目錄
[root@apollo hive]# cd $HIVE_HOME
#新建檔案student.dat
[root@apollo hive]# touch student.dat
#在檔案中新增如下內容
[root@apollo hive]# vim student.dat
001     david
002     fab
003     kaishen
004     josen
005     arvin
006     wada
007     weda
008     banana
009     arnold
010     simon
011     scott

說明:ID和name直接是TAB鍵,不是空格,因為在上面建立表的語句中用了terminated by ‘\t’所以這個文本里id和name的分割必須是用TAB鍵(複製貼上如果有問題,手動敲TAB鍵吧),還有就是行與行之間不能有空行,否則下面執行load,會把NULL存入表內,該檔案要使用unix格式,如果是在windows上用txt文字編輯器編輯後在上載到伺服器上,需要用工具將windows格式轉為unix格式,例如可以使用Notepad++來轉換。

3.3.4.2.匯入資料
hive> load data local inpath '/usr/local/hive/student.dat' into table sbux.student;
Loading data to table sbux.student
OK
Time taken: 0.802 seconds
3.3.4.3檢視匯入資料是否成功
hive> select * from student;
OK
1   david
2   fab
3   kaishen
4   josen
5   arvin
6   wada
7   weda
8   banana
9   arnold
10  simon
11  scott
Time taken: 0.881 seconds, Fetched: 11 row(s)

3.4.在介面上檢視剛剛寫入的hdfs資料

在hadoop的namenode上檢視:
這裡寫圖片描述

3.5.在mysql的hive資料裡檢視

這裡寫圖片描述

相關推薦

CentOS7.0基於hadoop叢集安裝配置Hive

前言 安裝Apache Hive前提是要先安裝hadoop叢集,並且hive只需要在hadoop的namenode節點叢集裡安裝即可(需要再有的namenode上安裝),可以不在datanode節點的機器上安裝。還需要說明的是,雖然修改配置檔案並不需要把had

Hadoop叢集安裝配置

Hadoop的安裝分為單機方式、偽分散式方式 和 完全分散式方式。 單機模式 : Hadoop的預設模式。當首次解壓Hadoop的原始碼包時,Hadoop無法瞭解硬體安裝環境,便保守地選擇了最小配置。在這種預設模式下所有3個XML檔案均為空。當配置檔案為空時,Hadoop會完全執行在本地

Hadoop叢集安裝配置教程_Hadoop2.6.0_Ubuntu/CentOS

Hadoop叢集安裝配置教程_Hadoop2.6.0_Ubuntu/CentOS 2014-08-09 (updated: 2016-09-26) 125333 217 本教程適合於原生 Hadoop 2,包括 Hadoop 2.6.0, Hadoop 2.7.1 等

centos7基於hadoop安裝hive(CentOS7+hadoop2.8.0+hive2.1.1)

root drive notepad lds opts 裝配 -- 3.2 window 1下載hive 下載地址:http://hive.apache.org/downloads.html 點擊上圖的Download release now! 如圖:

基於Centos7+Docker 搭建hadoop叢集

總體流程: 獲取centos7映象 為centos7映象安裝ssh 使用pipework為容器配置IP 為centos7映象配置java、hadoop 配置hadoop 1.獲取centos7映象 $ docker pull centos:7 //檢視當前已下載docke

hadoop叢集安裝前環境的配置

1.1增加hadoop使用者 一)建立一個admin使用者 [[email protected] home]# adduser hadoop 沒輸出?沒有輸出在linux下就是操作正確 (二)為admin使用者設定密碼 [[email protected]

CentOS7環境下偽分散式安裝配置hadoop

(一) 設定靜態IP地址 cd /etc/sysconfig/network-scripts vim ifcfg-ens33 修改IPADDR,NETMASK,GATEWAY為對應的值 修改BOOTPROTO為none 儲存並退出 重啟網絡卡 servi

hadoop 三節點叢集安裝配置詳細例項

2012-05-23 作者:周海漢 網址:http://abloz.com 日期:2012.5.23 topo節點: 192.168.10.46 Hadoop46 192.168.10.47 Hadoop47 192.168.

CentOS7+Hadoop2.7.2(HA高可用+Federation聯邦)+Hive1.2.1+Spark2.1.0 完全分散式叢集安裝

本文件主要記錄了Hadoop+Hive+Spark叢集安裝過程,並且對NameNode與ResourceManager進行了HA高可用配置,以及對NameNode的橫向擴充套件(Federation聯邦) 1VM網路配置 將子網IP設定為192.168.1.0: 將閘道器設定

從VMware虛擬機器安裝hadoop叢集環境配置詳細說明

虛擬機器安裝 我安裝的虛擬機器版本是VMware Workstation 8.04,自己電腦上安裝的有的話直接在虛擬機器安裝Linux作業系統,沒有的話這裡有我的一個百度雲網盤虛擬機器安裝共享檔案 虛擬機器的具體安裝不再詳細說明了。   Linux作業系統安裝除錯   

hive(01)、基於hadoop叢集的資料倉庫Hive搭建實踐

在前面hadoop的一系列文中,我們對hadoop有了初步的認識和使用,以及可以搭建完整的叢集和開發簡單的MapReduce專案,下面我們開始學習基於Hadoop的資料倉庫Apache Hive,將結構化的資料檔案對映為一張資料庫表,將sql語句轉換為MapReduce任務

Hadoop分散式叢集安裝配置步驟

之前介紹過Hadoop偽分散式模式的安裝配置步驟,現在記錄一下分散式叢集的安裝配置步驟,本文使用3臺測試伺服器,下面是各伺服器的角色:   - node1:NameNode, DataNode, NodeManager - node2:SecondaryNameNode,

Centos 7.0hadoop叢集模式安裝(以3個節點為例,master,slave1,slave2)超詳細

一、目標: 構建由3臺PC機構成的hadoop環境,安裝完成後使用HDFS、Mapreduce、Hbase等完成一些小例子。 二、硬體需求: 3臺Centos 7.0 系統PC機,每臺PC機4G記憶

hadoop+Zookeeper叢集安裝配置高可用-HadoopHA

1、請看:https://blog.csdn.net/sunxiaoju/article/details/85222290,此處只是配置系統的:硬體配置以及作業系統、節點需要安裝的工具、安裝JDK環境、建立hadoop使用者、建立ssh無密碼登入本機前五部分,第6部分的hadoop安裝在此博文中

Hadoop-2.5.2叢集安裝配置詳解

最近學習了下hadoop的安裝。下面詳細說明下步驟 一、環境 我的是在Linux環境下進行安裝的。對於想在windows系統上學習的同學,可以採用虛擬機器方式或通過cygwin模擬linux環境方式進行學習。 現在有三臺伺服器,分配如下: 10.0.1.100 Name

Hadoop 叢集安裝(從節點安裝配置

1、Java環境配置 view plain copy sudo mv /tmp/java /opt/ jdk安裝完配置環境變數,編輯/etc/profile: view plain copy sudo vim /etc/profile 在檔案末尾,新增如下內容: view plain copy expor

一步步教你Hadoop多節點叢集安裝配置

1、叢集部署介紹 1.1 Hadoop簡介 Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統HDFS(Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的開源實現)為核心的Hadoop為使用者提

kettle 6.0安裝並連線ORACLE,HADOOP CDH5.3.0以及hadoop客戶端配置

到官網下載 下載完畢後解壓,記得本機要有java環境並配置好 執行spoon.bat在linux下執行spoon.sh,親測win7/centos6可以用 新建轉換,選擇輸入拖出表輸入,輸出拖出表輸出 雙擊設定 點選新建,建立一個oracle新連線 配置好

hadoop叢集安裝centos7

hadoop hdfs叢集(負責檔案讀寫) yam叢集(負責為mapreduce分配硬體資源) name node 預設埠9000(客戶端) resource manage (管理幹活的) data node(node manage)(幹活的) 準備

CENTOS7+LNMP+zabbix3.2.6安裝配置

centos7+lnmp+zabbix3.2.6;linux centos7 nginx mysql php5.6.38 zabbix_server 3.2.61、安裝MySQL1.1、安裝MySQLrpm -ivh http://dev.mysql.com/get/mysql-community-relea