mysql 安裝以及 hive搭建單機(jī)

一.安裝mysql并且實(shí)現(xiàn)外部連接

1.下載mysql客戶端

網(wǎng)址 :??https://dev.mysql.com/downloads/mysql/5.6.html#downloads

下載好壓縮包之后,上傳到虛擬機(jī)上?

1.解壓: tar -zxvf? mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz

2.重命名 :? mv?mysql-5.6.44-linux-glibc2.12-x86_64 mysql

3.創(chuàng)建mysql組和用戶:

????????groupadd mysql

????????useradd -r -g mysql mysql

4.添加配置文件my.cnf,并修改相關(guān)配置

cp support-files/my-default.cnf /etc/my.cnf

vi /etc/my.cnf

basedir = /usr/local/mysql? ?-------------------------安裝目錄

datadir = /usr/local/mysql/data ---------------------安裝目錄下的data

port = 3306 ----------------------------------------------端口

log-err = /usr/local/mysql/data/error.log ----------日志

pid-file = /usr/local/mysql/data/mysql.pid --------- pid不要動


5. 修改權(quán)限

chown -R mysql?/usr/local/mysql(mysql的安裝路徑)

chgrp -R mysql?/usr/local/mysql(mysql的安裝路徑)

(mysql安裝路徑)/scripts/mysql_install_db --user=mysql

chown -R root?/usr/local/mysql(mysql的安裝路徑)

chown -R mysql?/usr/local/mysql/data

6.初始化數(shù)據(jù)庫


在scripts下有一個 mysql_install_db文件

執(zhí)行:

mysql_install_db --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp

datadir? --->對應(yīng)/etc/my.cnf 中配置的datadir

basedir --->mysql的安裝目錄

pid-file? ---> (mysql安裝目錄)/data/mysql.pid (不需要有這個文件)

7.執(zhí)行

bin/mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root &

執(zhí)行不完,不要強(qiáng)制停止,重新開啟一個shell

8.設(shè)置開機(jī)自啟動

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldcp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

chmod 700 /etc/init.d/mysql

chkconfig --add mysqld

chkconfig --level 2345 mysqld on

chown mysql:mysql -R /usr/local/mysql/

重新啟動linux: init 6

查看mysql狀態(tài) :?service mysqld status

參考文章: https://www.cnblogs.com/duanrantao/p/8988116.html

9.添加遠(yuǎn)程訪問權(quán)限。

ln -s /usr/local/mysql/bin/mysql /usr/bin (mysql的安裝路徑)

進(jìn)入mysql : mysql -uroot -p

執(zhí)行:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'duan' with grant option;

執(zhí)行:Flush privileges;

重啟linux 。

10.設(shè)置mysql密碼

修改mysql密碼,進(jìn)入mysql shell :mysql -u root -p (沒密碼直接回車)

格式:set password for 用戶名@localhost = password('新密碼');?

樣例: set password for root@localhost = password('123'); //不要忘了引號

11.win連接虛擬機(jī)mysql(前提是虛擬機(jī)和win環(huán)境之間ping的通)

1 . 在安裝mysql的虛擬機(jī)上執(zhí)行 :? service iptables status(查看防火墻狀態(tài))

2 . 查看所有端口 netstat -ntlp

可以看到3306已經(jīng)開放,如果未開放 執(zhí)行 :

vim /etc/sysconfig/iptables?

并再文件中添加一行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

重啟防火墻 : service iptables restart

連接測試(成功):

二 . 安裝hive

1.下載hive安裝包 :?http://mirror.bit.edu.cn/apache/hive/hive-2.3.5/

下載完成后上傳至linux自定義文件夾(以/opt 為例)?apache-hive-2.3.5-bin.tar.gz

2 . 解壓

tar -zxvf?apache-hive-2.3.5-bin.tar.gz

3 . 修改hive相關(guān)配置

????hive-site.xml

有個很坑爹的地方就是這個文件在conf里沒有,我這個包是在路徑:

/opt/apache-hive-2.3.5-bin/hcatalog/etc/hcatalog/proto-hive-site.xml

把這個文件復(fù)制到conf里并改名??hive-site.xml?

添加配置

<property>

? ? <name>javax.jdo.option.ConnectionURL</name>

? ? <value>jdbc:mysql://localhost:3306/hive_metadata?&amp;createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>

</property>

<property>

? ? <name>javax.jdo.option.ConnectionUserName</name>

? ? <value>root</value>

</property>

<property>

? ? <name>javax.jdo.option.ConnectionPassword</name>

? ? <value>root</value>

</property>

<property>

? ? <name>javax.jdo.option.ConnectionDriverName</name>

? ? <value>com.mysql.jdbc.Driver</value>

</property>

<property>

? ? <name>datanucleus.schema.autoCreateAll</name>

? ? <value>true</value>

</property>

<property>

? ? <name>hive.metastore.schema.verification</name>

? ? <value>false</value>

</property>

添加mysql驅(qū)動包在hive里

下載 :?https://dev.mysql.com/downloads/connector/j/

下載后解壓,把下圖jar包上傳至hive安裝目錄下的 lib 文件夾

上傳后結(jié)果:

4.配置hive的環(huán)境變量(省略)

5.初始化hive

執(zhí)行:schematool -dbType mysql -initSchema

6.環(huán)境變量配置成功的情況下,任意位置輸入hive ,執(zhí)行幾個簡單的語句試試吧。

三 . java API操作HIVE

pom.xml

? <dependency>

? ? ? ? ? ? <groupId>org.apache.hive</groupId>

? ? ? ? ? ? <artifactId>hive-jdbc</artifactId>

? ? ? ? ? ? <version>2.3.5</version>

? ? ? ? </dependency>

? ? ? ? <dependency>

? ? ? ? ? ? <groupId>org.apache.hadoop</groupId>

? ? ? ? ? ? <artifactId>hadoop-common</artifactId>

? ? ? ? ? ? <version>2.7.6</version>

? ? ? ? </dependency>

導(dǎo)包:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

代碼:

private static StringdriverName ="org.apache.hive.jdbc.HiveDriver";

public static void main(String[] args)throws SQLException {

try {

Class.forName(driverName);

? ? }catch (ClassNotFoundException e) {

e.printStackTrace();

? ? ? ? System.exit(1);

? ? }

Connection con = DriverManager.getConnection("jdbc:hive2://192.168.242.252:10000/default","root","root");

? ? Statement stmt = con.createStatement();

? ? String tableName ="helloHive";

? ? stmt.execute("drop table if exists " + tableName);

? ? stmt.execute("create table " + tableName +" (key int,value string)");

? ? System.out.println("create table success !!!");

? ? con.close();

}

1.打開hive的10000端口

1. hive?--service?metastore&? ? 如果運(yùn)行不結(jié)束不要強(qiáng)行停止,新開一個shell

2. hive?--service?hiveserver2&? ?如果運(yùn)行不結(jié)束不要強(qiáng)行停止,新開一個shell

3. netstat -ntulp |grep 10000? ?檢查端口是否開啟

2.運(yùn)行代碼

1報錯:

java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://hdp3:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous

需要提供HDFS的RESTful接口,可通過此接口進(jìn)行HDFS文件操作。

在? hdfs-site.xml 中添加

<property>

<name>dfs.webhdfs.enabled</name>?

<value>true</value>?

</property>

在? core-site.xml 中

<property>

<name>hadoop.proxyuser.root.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.root.groups</name>

<value>*</value>

</property>

再次運(yùn)行就沒問題了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容