前言:暑假里老師布置的任務沒有完成,來到學校后馬不停蹄的安裝kylin,結果一路艱難險阻,搞了快兩個星期都沒有弄好....現在止步於hive階段卡死...僅將之前的步驟記錄下來以便重新安裝時更加順利...
【kylin安裝基礎】
安裝kylin前要在虛擬機上將hadoop、hive、hbase都安裝完畢,注意要選擇兼容的版本。
【一】虛擬機安裝
虛擬機:VMware Workstation 12
linux系統可有多種選擇:
(1)CentOS(Community ENTerprise OS):發行公司:Red Hat ,軟件管理是rpm,該系統比較成熟,非常穩定。
(2)Ubuntu:該系統是以桌面為主的linux系統,面向桌面領域,界面友好,適合新手入門,但不支持rpm格式的安裝。
(3)Debian:適合服務器的操作系統,非常穩定,占用內存硬盤小。
我選擇了CentOS系統,虛擬機安裝教程可直接上網百度,安裝過程中一定要注意網絡的設置!
【二】JDK安裝
在虛擬機安裝完畢后,hadoop安裝前一定要進行JDK的設置(第一次因為設置JDK搞了一下午...)
(1)選擇與系統版本匹配的JDK版本,我這里選擇的是jdk 1.8.0
1.在瀏覽器中下載相應的版本:jdk-8u131-linux-x64.tar.gz(可以直接去官網上下載)
2.解壓文件到指定的目錄中:
在/usr/local/文件下新建文件夾:mkdir jdk
解壓tar.gz的文件:tar -zxvf 路徑+文件名 指定的路徑;如果是rpm的文件可以用命令:rpm -ivh
若提示權限不夠,使用命令:sudo su :切換用戶,將普通用戶切換為超級用戶,但該命令只是可以使用root的權限進行操作,shell環境仍然是普通用戶的環境(即文件地址仍是普通用戶下的);sudo su -:該命令是徹底切換為超級用戶。
解壓完成后配置配置環境變量:使用gedit編輯器編輯:gedit /etc/profile
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar(通過該值找到對應的類文件)
export PATH=$PATH:$JAVA_HOME/bin (通過該值找到bin目錄下的exe文件)
配置完成后可通過java -version查看是否配置成功.
【三】hadoop安裝模式
(1)單機模式standalone:即獨立(本地)運行模式:該模式為默認模式,hadoop完全運行在本地,不使用hdfs,也不加載hadoop的任何守護進程,主要用於開發調試MapReduce程序的應用邏輯。一台linux即可。
(2)偽分布模式:該模式模擬一個小規模的集群,一台linux即可,具有hadoop的所有功能,是完全分布式的一個特例。
(3)完全分布式模式:hadoop守護進程運行在一個集群上,是真正的分布式環境,主要用於生產。
對比hadoop的三種模式后,選擇偽分布模式進行安裝學習。
【四】SSH免密登錄
由於Hadoop節點之間通過SSH通信,為了避免連接過程中人工輸入密碼,所以要配置SSH的免key登陸,由於本文講得是偽分布式,因此只需要對本機localhost免key登陸。
使用命令:rpm -qa | grep ssh:該命令可以列出所有已經被安裝的名字中包含ssh字符串的rpm包。
可使用命令 yum install openssh-clients 和yum install open ssh-server 安裝ssh客戶端和server。
安裝成功后可使用命令 ssh localhost登錄到本機,第一次登錄時需要輸入密碼,然后輸入 exit退出,依次執行以下命令
cd ~/.ssh/
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys #加入授權
chmod 600 ./authorized_keys # 修改文件權限
此時再輸入ssh localhost 就不需要密碼了。
【五】hadoop安裝
說了這么多,終於要安裝正主了~
(1)下載合適版本的hadoop:我選擇的是hadoop-2.7.6.tar.gz版本(附下載地址 http://mirrors.cnnic.cn/apache/hadoop/common/ )
仍然使用 tar -zxvf命令解壓至/usr/local/路徑下,解壓后可使用命令mv ./hadoop-2.7.6/ ./hadoop 修改文件名稱;
之后使用命令chown -R hadoop:hadoop ./hadoop 修改文件權限
(2)設置環境變量
使用命令: gedit ~/.bashrc 添加下列命令行
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
之前設置java變量的時候是在/etc/profile中設置的,這里是在~/.bashrc中,兩者的區別在於:
/etc/profile:設定的變量可以用於任何用戶,是系統全局環境變量設置;
~/.bashrc:設定的變量是局部私有的,是對某用戶目錄下的變量設定;
所以這里也可以直接在/etc/profile中設定。后續啟動時不知道為什么總是報java_home未設置,此時在~/.bashrc中將java_home的值改了之后就可以了。
(3)修改配置文件:
[1]:core-site.xml:
<name>fs.defaultFS</name>指定hdfs的主端口namenode要放在哪台機器上
<value>hdfs://local:9000</value>
[2]:hdfs-site.xml:
<name>dfs.replication</name>副本數,偽分布式設置為1即可
<value>1</value>
<name>dfs.namenode.name.dir</name>命名空間和事務在本地文件系統永久存儲的路徑
<value>file:/usr/local/hadoop/tmp/dfs/name </value>
<name>dfs.datanode.data.dir</name>datanode 在本地系統中存放的路徑
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
(4)格式化namenode
配置完成后,要先格式化文件系統:./bin/hdfs namenode -format ,這個過程中可能會出錯,如果status為1則有錯,可根據錯誤信息百度解決方案
(5)開啟進程
./sbin/start-dfs.sh
(6)驗證是否啟動成功:
可直接輸入:jps查看開啟的進程;可在瀏覽器中輸入 http://localhost:50070 查看信息
(7)啟動YARN
可啟動yarn進行資源管理與任務調度,但偽分布式不開啟也行,具體的開啟過程可參考該博客https://blog.csdn.net/a5601564/article/details/52997015
至此,hadoop安裝完畢,但這只是艱難旅程中的第一步~
【六】hive安裝
(1)知識補充:
hive是一種以SQL風格進行任何大小數據分析的工具,它采取類似關系數據庫的SQL命令處理hadoop的大數據,是建立在hadoop之上的數據倉庫架構。數據庫比較偏向於事務性的一些操作,比如增刪改查,而數據倉庫更側重於查詢。
工作原理:hive通過給用戶提供的一系列交互接口,接收到用戶的指令(sql),使用自己的driver,結合元數據(metastore)將這些指令翻譯成MapReduce,提交到hadoop中執行,將執行結果輸出到用戶交互接口。
hive與hdfs的對應關系是存放在hive中的一個組件metastore中的,也就是說hive與hadoop結合在一起需要有一個映射的關系,這個映射的關系就是metastore,sql語句的執行在這里面轉換為對表的操作,對文件夾的操作,對文件的操作,以及對數據的列的操作都是通過查詢metastore實現的。metastore表現為關系數據庫,可以是derby,也可以是mysql,所以在安裝hive之前需要安裝mysql。
(2)安裝mysql
[1]:先檢查centos自帶的mysql版本:mariadb;刪除自帶版本:yum remove mysql mysql-server
[2]:centos7下的yum(shell前端軟件包管理器)源中無mysql-server文件,所以要去官網上進行下載或者直接使用yum命令進行安裝:
yum update #更新yum源
rpm -Uvh http://dev.mysql.com/get/版本號 #將mysql添加到yum源中(這里我使用的是mysql-5.7.23版本)
yum install mysql-server #安裝mysql服務器端
yum repolist enabled | grep "mysql.*-community.*" #檢查mysql源是否安裝成功
[3]:mysql安裝成功后,設置開機自啟動:chkconfig mysqld on(chkconfig 是管理系統服務,隨系統啟動而啟動,關閉而關閉)
[4]:啟動mysql :systemctl start mysqld (systemctl是系統管理服務器指令,將service和chkconfig組合在一起)
[5]:mysql會有初始密碼,可查看初始密碼:cat /var/log/mysqld.log | grep password
[6]:使用初始密碼登錄mysql:mysql -u root -p 輸入初始密碼
[7]:重設密碼:set password=password('root') ;flush privileges;(該語句可刷新mysql的系統權限相關表,不重啟mysql服務的情況下直接生效)
[8]:創建數據庫hive:create database hive;
[9]:創建用戶hive並授予權限:create user 'hive' @ '%' identified by '密碼'; grant all on hive *.*to 'hive' @ '%' identified by '密碼' ; flush privileges;
[10]:關閉防火牆並設置遠程訪問:firewall-cmd --state #查看防火牆是否啟用 systemctl stop firewalld #關閉防火牆
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;
(3)hive安裝
[1]:下載hive:http://mirrors.cnnic.cn/apache/hive/ 這里我下載的是2.3.3版本的,下載完成后進入到文件夾/home/hadoop/ 下解壓至文件夾 tar -zxvf 路徑/文件
這里可以使用mv指令修改文件夾的名稱,並使用chown -R
[2]:把mysql驅動放到hive的lib目錄下 http://dev.mysql.com/downloads/connector/j/ ,默認情況下是Windows安裝包,這里需要選擇Platform Independent版本下載zip格式的文件,解壓后不是jar格式,而是文件夾,需要將文件夾里的驅動文件復制放到hive的lib目錄下。
[3]:配置環境變量:使用gedit編輯:gedit /etc/profile
export HIVE_HOME=/home/hadoop/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:$HIVE_HOME/bin
[4]:設置hive-env.sh文件:cp hive-env.sh.template hive-env.sh #hive的conf文件下沒有該文件,直接將hive-env.sh .template 文件復制成hive-env.sh文件
設置hadoop_home和hive_conf_dir兩個值:export HADOOP_HOME=/usr/local/hadoop export HIVE_CONF_DIR=/home/hadoop/hive/conf
[5]:設置hive-site.xml文件:cp hive-default.xml.template hive-site.xml 主要在該配置文件中添加mysql的連接信息:
首先要把原文件中關於jdbc配置的內容注釋掉;
然后添加以下信息
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?=createDatabaseIfNotExist=true</value>(mysql地址localhost) </property> <property> <name>javax.jdo.option.ConnectionDriverName</name>(mysql的驅動) <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>123456</value> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
[6]初始化元數據庫:cd /home/hadoop/hive/bin pwd schematool -dbtype mysql -initSchema
這里經常發生錯誤,一定要根據錯誤信息進行百度
[7]啟動hive:./hive 啟動時也經常報錯,這里的一篇博客包含了經常發生的錯誤及解決方案,可進行參考https://blog.csdn.net/eason_oracle/article/details/52273954
hive啟動成功后可進行測試,測試步驟可參考該博客https://www.cnblogs.com/dxxblog/p/8193967.html
至此hive也安裝成功~
累覺不愛,好不容易安裝好了這兩個,結果虛擬機中的linux系統死活連不上網了,各種方法都試過了,可能人品這幾天太差了,沒有辦法先把之前安裝的步驟記錄下來,可能哪天就又要重裝了!