日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

本人的一些总结

發(fā)布時(shí)間:2024/1/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 本人的一些总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有關(guān)idea

1、maven倉(cāng)庫(kù)的問題

步驟:
1、先看看設(shè)置里面的倉(cāng)庫(kù),是不是自己的倉(cāng)庫(kù)。如果不是的話,先換成自己的倉(cāng)庫(kù)。(必須注意的)
2、檢查一下你本地庫(kù)里面,是不是有未下載完的文件。類似與這樣的文件,刪一下,倉(cāng)庫(kù)可能沒有下載完畢。

2、mvn package看看
百度mvn package的使用方法。

3、idea上就是爆出xxx.jar不存在,明明配置了自己的maven倉(cāng)庫(kù)。

mvn dependency:sources  // 命令jar包被下載下來

首選這種

有關(guān)flink

1、代碼中容易忽略的地址問題。

只要沒有new,就是同一個(gè)地址,也就是對(duì)同一個(gè)地址上的內(nèi)容進(jìn)行修改。

package com.atguigu.app.function;import com.alibaba.fastjson.JSONObject;public class test {public static void main(String[] args) {// {"after":"123456","tablename":"table1","db":"database","before2":"xyz","before1":"xyz"}JSONObject value=new JSONObject();value.put("db", "database") ;value.put("tablename", "table1");value.put("before1", "xyz");value.put("before2", "xyz");value.put("after", "123456");System.out.println(value.toString());// {"value":{"after":"123456","tablename":"table1","db":"database","before2":"xyz","before1":"xyz"}}JSONObject value1=new JSONObject();value1.put("value",value) ;// {"after":"123456","tablename":"table1","db":"database","before2":"xyz","before1":"xyz"}JSONObject data = value1.getJSONObject("value");String filterColumn = "db"+","+"tablename"+","+"after";test2.filterColumn(data, filterColumn);System.out.println(value1.toString());}}

{"after":"123456","tablename":"table1","db":"database","before2":"xyz","before1":"xyz"} {"value":{"after":"123456","tablename":"table1","db":"database"}}

用到的過濾方法

package com.atguigu.app.function;import com.alibaba.fastjson.JSONObject;import java.util.Arrays; import java.util.List;public class test2 {protected static void filterColumn(JSONObject data, String sinkColumns) {String[] fields = sinkColumns.split(",");List<String> columns = Arrays.asList(fields);data.entrySet().removeIf(next -> !columns.contains(next.getKey()));} }

有關(guān)kafka

1、啟動(dòng)不起來Kafka

在日志中找到

在三臺(tái)機(jī)器上面的/opt/module/kafka/datas路徑下,分別:

/opt/module/kafka/datas下面的meta.properties的cluster.id改成iMgAX07PTsyBQnXIQZSfjA

kafka啟動(dòng)不輸出消息到控制臺(tái),輸出到指定的文件名。這里輸出到temp.log中。temp.log的路徑是執(zhí)行命令時(shí)候的當(dāng)前路徑。也就是在Kafka下面。

參考來源

2、有的節(jié)點(diǎn)啟動(dòng)不起來

打開日志(KafkaServer.out文件),然后最后一行是這樣的錯(cuò)誤。

ERROR Shutdown broker because all log dirs in /opt/module/kafka/data
have failed (kafka.log.LogManager)

注意:如果是重要數(shù)據(jù),一定要備份!!!不能只刪除。

之前可能是刪除過topic,爆出了這樣的錯(cuò)誤。
于是,試了一下,這樣做是可以的,網(wǎng)上其他的做法試了不行。

有關(guān)hbase、phoenix

1、一定要退出安全模式,在啟動(dòng)hbase之前,否則會(huì)有一些錯(cuò)誤,比如phoenix無法連接。

hdfs dfsadmin -safemode leave

2、phoenix遲遲連不上,首先檢查安全模式的有沒有關(guān),不行的話,然后試試下面的方法。

3、hbase中的rowkey設(shè)計(jì)

HBase的rowkey設(shè)計(jì)一直都是難點(diǎn)和痛點(diǎn),不合適的rowkey設(shè)計(jì)會(huì)導(dǎo)致讀寫性能、吞吐不佳等諸多問題。

hbase中的rowkey設(shè)計(jì)的參考文章

有關(guān)副本

HBase的副本機(jī)制是通過通過底層的HDFS實(shí)現(xiàn)的。所以,HBase的副本與分片是解耦的,是存儲(chǔ)計(jì)算分離的。這使得region可以在RS之間靈活的移動(dòng),而不需要進(jìn)行數(shù)據(jù)遷移,這賦予了HBase秒級(jí)擴(kuò)容的能力和極大的靈活性。

好的分布是怎么樣的?

對(duì)于單個(gè)表而言,一個(gè)“好”的數(shù)據(jù)分布,應(yīng)該是:-- 每個(gè)region的數(shù)據(jù)量大小相近,請(qǐng)求量(吞吐)接近,每臺(tái)機(jī)器調(diào)度的region數(shù)量大致相同。這樣,這張表的數(shù)據(jù)和訪問能夠均勻的分布在整個(gè)集群中,從而得到最好的資源利用率和服務(wù)質(zhì)量,即達(dá)到負(fù)載均衡。當(dāng)集群進(jìn)行擴(kuò)容、縮容時(shí),我們希望這種“均衡”能夠自動(dòng)保持。如果數(shù)據(jù)分布未能實(shí)現(xiàn)負(fù)載均衡,則 ---負(fù)載較高的機(jī)器--- 很容易稱為整個(gè)系統(tǒng)的瓶頸,這臺(tái)機(jī)器的響應(yīng)慢,可能導(dǎo)致客戶端的大部分線程都在等待這臺(tái)機(jī)器返回,從而影響整體吞吐。所以,負(fù)載均衡是region劃分和調(diào)度的重要目標(biāo)。

負(fù)載均衡問題:

數(shù)據(jù)的邏輯分布:即region劃分/分布,是rowkey到region的映射問題 數(shù)據(jù)的物理分布:即region在RS上的調(diào)度問題 訪問的分布:即系統(tǒng)吞吐(請(qǐng)求)在各個(gè)RS上的分布問題,涉及數(shù)據(jù)量和訪問量之間的關(guān)系,訪問熱點(diǎn)等。

HBase能夠?qū)崿F(xiàn)靈活調(diào)度、秒級(jí)擴(kuò)容的關(guān)鍵

可見,一行數(shù)據(jù)的分布(找到一行數(shù)據(jù)所在的RS),存在2個(gè)層級(jí)的路由:一是rowkey到region的路由,二是region到RS的路由。這一點(diǎn)是HBase能夠?qū)崿F(xiàn)靈活調(diào)度、秒級(jí)擴(kuò)容的關(guān)鍵。

邏輯分布 – 基于rowkey范圍的region劃分

就是: 一張表如何劃分成多個(gè)region region劃分的粒度是行,region就是這個(gè)表中多個(gè)連續(xù)的行構(gòu)成的集合。行的唯一標(biāo)識(shí)符是rowkey,所以,可以將region理解為一段連續(xù)分布的rowkey的集合。所以,稱這種方式為基于rowkey范圍的劃分。一個(gè)region負(fù)責(zé)的rowkey范圍是一個(gè)左閉右開區(qū)間,所以,后一個(gè)region的start key是前一個(gè)region的end key。注意,第一個(gè)region是沒有start key的,最后一個(gè)region是沒有end key的。這樣,這個(gè)表的所有region加在一起就能覆蓋任意的rowkey值域。 一般來說,region的生成有3種方式:建表時(shí)進(jìn)行預(yù)分區(qū):通過對(duì)rowkey進(jìn)行預(yù)估,預(yù)先劃分好region region分裂:手工分裂,或達(dá)到一定條件時(shí)自動(dòng)分裂(如region大小超過一個(gè)閾值) region合并:手工合并 所以,為了使表從一開始就具備良好的吞吐和性能,實(shí)際生產(chǎn)環(huán)境中建表通常都需要進(jìn)行預(yù)分區(qū)。但也有一些例外,比如無法預(yù)先對(duì)rowkey范圍進(jìn)行預(yù)估,或者,不容易對(duì)rowkey范圍進(jìn)行均勻的拆分,此時(shí),也可以創(chuàng)建只有一個(gè)region的表,由系統(tǒng)自己分裂,從而逐漸形成一個(gè)“均勻的”region分布。

總結(jié)

以上是生活随笔為你收集整理的本人的一些总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。