久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

sparkSQL來(lái)完成對(duì)Hive的操作

接下來(lái)做的操作是:(這個(gè)操作,將程序打成jar包到集群中運(yùn)行)
(1)編寫(xiě)spark程序在線(xiàn)上的hive中創(chuàng)建表并導(dǎo)入數(shù)據(jù)
(2)查詢(xún)hive中的數(shù)據(jù)
(3)將查詢(xún)結(jié)果保存到MySQL中
代碼:

創(chuàng)新互聯(lián)專(zhuān)注于隆回網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供隆回營(yíng)銷(xiāo)型網(wǎng)站建設(shè),隆回網(wǎng)站制作、隆回網(wǎng)頁(yè)設(shè)計(jì)、隆回網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造隆回網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供隆回網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

object SparkSqlTest {
    def main(args: Array[String]): Unit = {
        //屏蔽多余的日志
        Logger.getLogger("org.apache.hadoop").setLevel(Level.WARN)
        Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
        Logger.getLogger("org.project-spark").setLevel(Level.WARN)
        //構(gòu)建編程入口
        val conf: SparkConf = new SparkConf()
        conf.setAppName("SparkSqlTest")
        val spark: SparkSession = SparkSession.builder().config(conf)
            .enableHiveSupport()  //這句話(huà)表示支持hive
            .getOrCreate()

        //創(chuàng)建sqlcontext對(duì)象
        val sqlContext: SQLContext = spark.sqlContext
        //創(chuàng)建sparkContext
        val sc: SparkContext = spark.sparkContext

        //創(chuàng)建數(shù)據(jù)庫(kù)
        var sql=
            """
              |create database if not exists `test`
            """.stripMargin
        spark.sql(sql)

        //使用當(dāng)前創(chuàng)建的數(shù)據(jù)庫(kù)
        sql=
            """
              |use `test`
            """.stripMargin
        spark.sql(sql)

        //創(chuàng)建hive表
        sql=
            """
              |create table if not exists `test`.`teacher_basic`(
              |name string,
              |age int,
              |married boolean,
              |children int
              |) row format delimited
              |fields terminated by ','
            """.stripMargin
        spark.sql(sql)

        //加載數(shù)據(jù)
        sql=
            """
              |load data local inpath 'file:///home/hadoop/teacher_info.txt'
              |into table `test`.`teacher_basic`
            """.stripMargin
        spark.sql(sql)

        //執(zhí)行查詢(xún)操作
        sql=
            """
              |select * from `test`.`teacher_basic`
            """.stripMargin
        val hiveDF=spark.sql(sql)
        val url="jdbc:mysql://localhost:3306/test"
        val table_name="teacher_basic"
        val pro=new Properties()
        pro.put("password","123456")
        pro.put("user","root")
        hiveDF.write.mode(SaveMode.Append).jdbc(url,table_name,pro)
    }
}

打jar包到集群中運(yùn)行:https://blog.51cto.com/14048416/2337760

作業(yè)提交shell:

spark-submit \
--class com.zy.sql.SparkSqlTest \
--master yarn \
--deploy-mode cluster \
--driver-memory 512M \
--executor-memory 512M \
--total-executor-cores 1 \
file:////home/hadoop/SparkSqlTest-1.0-SNAPSHOT.jar \

然后滿(mǎn)懷期待的等待著success,不幸的是,當(dāng)程序運(yùn)行到一半的時(shí)候異常終止了:
我查看了一下打印的日志:
sparkSQL來(lái)完成對(duì)Hive的操作
我上網(wǎng)查了好多資料,都說(shuō)是hive的版本過(guò)高,what? I‘not why!!
然后想了想,我在集群中,使用spark的程序,去在hive表中進(jìn)行操作,那么是不是spark需要和hive整合一下啊,然后我又上網(wǎng)查了spark如何整合hive,總的來(lái)說(shuō)就是將hive的元數(shù)據(jù)庫(kù)共享出去,讓spark可以訪(fǎng)問(wèn)。
具體操作
①在hive的hive-site.xml加入:

<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop01:9083</value>   #在哪里啟動(dòng)這個(gè)進(jìn)程
</property>

②在相應(yīng)的節(jié)點(diǎn)上啟動(dòng)在hive-site.xml中配置的進(jìn)程

nohup hive --service metastore 1>/home/hadoop/logs/hive_thriftserver.log 2>&1 &

ps:這里需要注意一下,nohup是后臺(tái)啟動(dòng)的,而且所有的信息都是定向輸出的,這條命令使用之后,一定要檢查一下這個(gè)命令是否真的執(zhí)行成功了:
使用:jsp查一下是否有相應(yīng)的進(jìn)程啟動(dòng),如果沒(méi)有表示啟動(dòng)失敗,肯定是 /home/hadoop/logs這個(gè)父目錄沒(méi)有創(chuàng)建,然后創(chuàng)建這個(gè)目錄之后,在啟動(dòng),在檢查是否啟動(dòng)成功?。。。。。。?br/>③將hive-site.xml復(fù)制到$SPARK_HOME/conf下(注意是每一個(gè)節(jié)點(diǎn)都要復(fù)制)
④測(cè)試是否成功:spark-sql,如果正確進(jìn)入并且可以訪(fǎng)問(wèn)hive的表,表示spark整合hive成功?。?!


之后我有將原來(lái)的程序,重新跑了一次,結(jié)果 沒(méi)有報(bào)錯(cuò),程序運(yùn)行成功?。。?br/>我不敢相信,我又查看了一下MySQL的表:
sparkSQL來(lái)完成對(duì)Hive的操作
確認(rèn) 程序成功?。。。。。?/p>

網(wǎng)站題目:sparkSQL來(lái)完成對(duì)Hive的操作
網(wǎng)站網(wǎng)址:http://sd-ha.com/article6/jochig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google企業(yè)建站、網(wǎng)站排名、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)