Hive 分佈式搭建,Spark集成Hive記錄

本帖詳細介紹搭建步驟,僅僅記錄本身搭建過程以及採坑經歷。mysql

前提環境:linux

Hadoop集羣 版本2.7.2sql

Spark集羣 版本2.1.0shell

Linux版本 Centos7數據庫

準備搭建 MySql版本5.5.61 ,Hive-2.1.0centos

去官網下載MySQl的tar包。我下的是mysql-5.5.61-linux-glibc2.12-x86_64.tar.gzoop

解壓tar包   ui

tar -zxvf mysql-5.5.61-linux-glibc2.12-x86_64.tar.gz

添加系統mysql組和mysql用戶:spa

執行命令:groupadd mysql和useradd -r -g mysql mysql.net

groupadd mysql

useradd -r -g mysql mysql

修改當前目錄擁有者爲mysql用戶:執行命令

chown -R mysql:mysql ./

安裝數據庫:執行命令

./scripts/mysql_install_db --user=mysql

修改當前目錄擁有者爲root用戶:執行命令

chown -R root:root ./

修改當前data目錄擁有者爲mysql用戶:執行命令

chown -R mysql:mysql data

到此數據庫安裝完畢

---------------------

啓動mysql服務和添加開機啓動mysql服務:

添加開機啓動:執行命令

cp support-files/mysql.server /etc/init.d/mysql

把啓動腳本放到開機初始化目錄

啓動mysql服務:執行命令

service mysql start

這裏咱們遇到個異常:

咱們這樣解決,執行下面三條命令

mkdir /var/log/mariadb

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb/

再次啓動成功!

執行命令:

ps -ef|grep mysql

看到mysql服務說明啓動成功

修改mysql的root用戶密碼,root初始密碼爲空的:

執行命令:

./bin/mysqladmin -u root password '密碼'

這裏咱們又遇到了一個錯誤

執行

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 

 以後解決

把mysql客戶端放到默認路徑:

ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

注意:建議使用軟鏈過去,不要直接包文件複製,便於系統安裝多個版本的mysql

mysql已經安裝完畢而且啓動,此時又出現問題,沒法遠程鏈接

解決方法:

執行use mysql;
執行select 'host' from user where user='root';
執行update user set host = '%' where user = 'root';這一句執行完可能會報錯,不用管它。
執行FLUSH PRIVILEGES;

以後便可遠程訪問。

中間有一個服務在安裝mysql的時候出現了問題The server quit without updating PID file

有一篇貼給出了比較全的出現場景在此貼出

--------------------------------------------------------------------------------------------------------------------------------

問題可能的緣由有多種,具體什麼緣由最好的辦法是先查看下錯誤日誌:

一、多是/usr/local/mysql/data/mysql.pid文件沒有寫的權限

解決方法 :給予權限,執行 「chown -R mysql:mysql /var/data」 「chmod -R 755 /usr/local/mysql/data」  而後從新啓動mysqld!

二、可能進程裏已經存在mysql進程

解決方法:用命令「ps -ef|grep mysqld」查看是否有mysqld進程,若是有使用「kill -9  進程號」殺死,而後從新啓動mysqld!

三、多是第二次在機器上安裝mysql,有殘餘數據影響了服務的啓動。

解決方法:去mysql的數據目錄/data看看,若是存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。本人就是使用第三條方法解決的 !

四、mysql在啓動時沒有指定配置文件時會使用/etc/my.cnf配置文件,請打開這個文件查看在[mysqld]節下有沒有指定數據目錄(datadir)。

解決方法:請在[mysqld]下設置這一行:datadir = /usr/local/mysql/data

五、skip-federated字段問題

解決方法:檢查一下/etc/my.cnf文件中有沒有沒被註釋掉的skip-federated字段,若是有就當即註釋掉吧。

六、錯誤日誌目錄不存在

解決方法:使用「chown」 「chmod」命令賦予mysql全部者及權限

七、selinux惹的禍,若是是centos系統,默認會開啓selinux

解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled後存盤退出重啓機器試試。

---------------------------------------------------------------------------------------------------------------------------------

Hive集羣的配置我參考了這邊帖子

https://blog.csdn.net/envinfo2012/article/details/75669559

啓動方式參考了這篇帖子,由於上面的啓動在我這裏很差使

https://blog.csdn.net/lblblblblzdx/article/details/79760959

 

按照上面的帖子配置而後啓動hive集羣,最後將hive metastore的配置hive-site.xml放在spark的conf目錄。啓動spark-shell時報錯。

比較簡單的解決方案是修改hive-site.xml裏的配置去掉驗證。

<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
</property>

再次啓動spark-shell不在報此錯誤,可是又多了另外一個錯誤:

緣由是個人Spark主節點上有一個hive的主節點,hive的主節點上的hive-site.xml並無配置相似連接主節點的配置,Spark中的hive-site.xml添加上以下配置就行了

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://192.168.194.131:9083</value>
    <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>

再次啓動,再也不報錯

終於能夠成功的使用Spark操縱hive了

相關文章
相關標籤/搜索