1 目標(biāo)與過(guò)程
2 在linux上卸載Mysql
3 在linux上安裝Mysql
4 配置mysql作為Hive的元數(shù)據(jù)庫(kù)
5 Spark處理HDFS數(shù)據(jù),并將結(jié)果存儲(chǔ)在Hive中
1 目標(biāo)與過(guò)程
今天遇到個(gè)問(wèn)題,下面的代碼,我想在Spark集群上面跑拦坠,但是總是不行。
def main(args: Array[String]): Unit = {
val localClusterURL = "local[2]"
val clusterMasterURL = "spark://s1:7077"
val conf = new SparkConf().setAppName("ETL").setMaster(clusterMasterURL)
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
val hc = new HiveContext(sc)
import sqlContext.implicits._
hc.sql("use moive_recommend")
// 設(shè)置RDD的partition的數(shù)量一般以集群分配給應(yīng)用的CPU核數(shù)的整數(shù)倍為宜。
val minPartitions = 8
val links = sc.textFile(args(0),minPartitions).filter{ !_.endsWith(",")}.map(_.split(","))
.map(x =>Links(x(0).trim.toInt,x(1).trim().toInt,x(2).trim().toInt)).toDF()
links.write.mode(SaveMode.Overwrite).parquet("/home/spark/temp/moiveRec/links")
hc.sql("drop table if exists links")
hc.sql("create table if not exists links(moiveId int,imdbId int,tmdbId int) stored as parquet" )
hc.sql("load data inpath '/home/spark/temp/moiveRec/links' overwrite into table links")
}
然后结啼,我想著就把mysql從Windows本地移到了Linux系統(tǒng)上。這個(gè)需要完成兩件事:
- 1 卸載現(xiàn)有的mysql屈芜;
- 2 重新安裝mysql郊愧;
2 卸載現(xiàn)有的mysql;
首先井佑,說(shuō)一個(gè)自己總是存在的問(wèn)題:有時(shí)候属铁,還沒(méi)怎么搞清楚狀況就下手做事。
本來(lái)s1是安裝了mysql的躬翁,但我開(kāi)始的時(shí)候沒(méi)有查看下是否有mysql的服務(wù)焦蘑,就開(kāi)始找資料、想辦法安裝盒发,什么原生安裝例嘱、yum安裝等。最后搞了半天發(fā)現(xiàn)機(jī)器上有Dⅰ拼卵!浪費(fèi)時(shí)間,低效的行為蛮艰。
接著腋腮,問(wèn)題就一個(gè)個(gè)的來(lái)了。我的這個(gè)mysql能看不能用印荔,無(wú)法創(chuàng)建數(shù)據(jù)庫(kù)低葫。創(chuàng)建就報(bào)錯(cuò):
mysyl無(wú)法創(chuàng)建數(shù)據(jù)庫(kù),Errcode: 2 - No such file or directory)
我也找了半天原因仍律,最后覺(jué)得就是上面所說(shuō)的原因:它表示數(shù)據(jù)庫(kù)文件損壞了嘿悬。因?yàn)槲抑安恍⌒膭h了幾個(gè)文件。(不能亂刪除文件水泉,Linux系統(tǒng)無(wú)法恢復(fù))
于是就開(kāi)始卸載mysql
這個(gè)個(gè)事情善涨,我搞了一下午窒盐,心煩意亂,最后還是沒(méi)搞出來(lái)钢拧。哎蟹漓,就一個(gè)簡(jiǎn)單的卸載,我嘗試了網(wǎng)上所有的辦法源内,但是就是不行葡粒,不管用什么命令,都無(wú)法卸載掉這個(gè)Mysql膜钓。
痛苦的過(guò)程我就不說(shuō)了嗽交,但是最后解決完全是依靠運(yùn)氣。
下面的鏈接是我用過(guò)的比較靠譜的卸載方法颂斜,但是都不行夫壁。
就是報(bào)錯(cuò),找不到依賴沃疮,找不到包盒让,無(wú)法刪除。
吐血司蔬!
https://blog.csdn.net/tjcyjd/article/details/52189182?tdsourcetag=s_pctim_aiomsg
https://www.cnblogs.com/linjiqin/archive/2013/03/04/2942497.html
然后邑茄,我看到這個(gè)哥們跟我問(wèn)題好像差不多
Ubuntu 16.04兩個(gè)軟件出現(xiàn)依賴問(wèn)題導(dǎo)致無(wú)法安裝或刪除軟件
下面是他的回答。
問(wèn)題已經(jīng)解決葱她!
sudo apt-get -f autoremove
似乎是會(huì)幫我糾正依賴撩扒,會(huì)刪除一些包,同時(shí)會(huì)安裝一些新的包吨些。
就是不知道會(huì)不會(huì)存在隱患搓谆,但至少問(wèn)題解決了,兩個(gè)軟件都能打開(kāi)了豪墅,其他軟件也能安裝了泉手!
關(guān)鍵是這個(gè) -f 參數(shù)
下面這個(gè)回答是關(guān)于卸載mysql贊數(shù)最多的
https://blog.csdn.net/shihongliang1993/article/details/53768301?tdsourcetag=s_pctim_aiomsg
晚上在回來(lái)之后,我就是無(wú)意的偶器,在這些命令之后加了個(gè)-f 斩萌,就刪除成功了,如下
sudo apt -f purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt -f autoremove
sudo apt autoreclean
正所謂:念念不忘屏轰,終有回響颊郎。
后面怕刪除的不干凈,我把下面鏈接中講的霎苗,全部強(qiáng)制刪除了姆吭,怕怕~~~
https://www.cnblogs.com/shihaiming/p/6038307.html?tdsourcetag=s_pctim_aiomsg
3 重新安裝mysql
接著就是安裝了,我用的方法
sudo apt-get install mysql-server
linux - mysql:查看 mysql 是否安裝成功
rpm -q mysql
完成后唁盏,需要設(shè)置賬戶和密碼内狸,下面文章寫(xiě)得好
https://blog.csdn.net/weixx3/article/details/80782479?tdsourcetag=s_pctim_aiomsg
但是要注意检眯,在選擇密碼強(qiáng)度的時(shí)候,選0昆淡,否則你在創(chuàng)建用戶時(shí)锰瘸,密碼就要設(shè)置很復(fù)雜,要求一大片昂灵,切記避凝。
如果你,選了1或2眨补,下面方法可以解決(我就入坑了恕曲,嗚嗚嗚嗚)
https://blog.csdn.net/u014236541/article/details/78244601
而新建mysql用戶的方法如下:
https://www.cnblogs.com/sos-blue/p/6852945.html
終于,安裝也完成了渤涌。
# Ubuntu下mysql服務(wù)的重啟命令
service mysqld status
etc/init.d/mysql restart //重啟
etc/init.d/mysql start //開(kāi)啟
etc/init.d/mysql stop //停止
但是問(wèn)題又來(lái)了:無(wú)法重啟mysql服務(wù)。
錯(cuò)誤提示:Job for mysql.service failed because the control process exited with error code.
網(wǎng)上大家說(shuō)了一大堆把还,解決我問(wèn)題的方法如下:
https://www.cnblogs.com/orangezs/p/8341723.html
OK 实蓬,到此,終于完成了mysql的卸載和安裝吊履。
4 Hive初始化mysql元數(shù)據(jù)
在我做了上面修改后安皱,終于初始化成功了。
但是艇炎,我在命令行中輸入hive酌伊,又報(bào)錯(cuò):
hive安裝完MySQL后報(bào)Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient錯(cuò)誤
網(wǎng)上都說(shuō)是:hive的版本過(guò)高導(dǎo)致的問(wèn)題。但這次我看到了錯(cuò)誤的最后部分
host不認(rèn)得
是這個(gè)配置導(dǎo)致的錯(cuò)誤缀踪,后來(lái)我就沒(méi)加這個(gè)屬性居砖,就好了。
終于驴娃,世界清靜了奏候。
明天繼續(xù),未完待續(xù)唇敞。蔗草。。疆柔。咒精。。