主頁 > 資料庫 > 05安裝一個Hadoop分布式集群

05安裝一個Hadoop分布式集群

2023-02-06 07:07:08 資料庫

安裝一個Hadoop分布式集群

最小化的Hadoop已經可以滿足學習程序中大部分需求,但是為了研究Hadoop集群運行機制,部署一個類生產的環境還是有必要的,因為集群機器比較少,筆者沒有配置ssh,所以就需要在每一臺機器上手動啟動服務,啟動上相對繁瑣一些,優點是可以高度自定義集群中的任務節點數量,從而更好的理解集群中各個行程的作用,


一、環境準備

筆者認為一個Hadoop集群管理著兩種資源,計算資源(CPU和記憶體)與存盤資源(資料存盤),所以就對應了兩類服務,yarn和HDFS:

  • yarn resourcemanager:資源管理器,負責管理nodemanager、調度集群資源

  • yarn nodemanager:節點管理器,管理物理機器上的CPU和記憶體,一個集群可以有多個節點

  • HDFS namenode:HDFS namenode節點,管理檔案系統元資料

  • HDFS datanode:HDFS datanode節點,存盤檔案資料塊

  • historyserver:歷史作業查詢服務,用于查詢已經結束的任務運行期間資料

yarn之后會進行介紹,這里只需要知道它和HDFS一樣,有兩種服務:resourcemanager和nodemanager,resourcemanager類似HDFS的namenode節點,nodemanager類似HDFS的datanode節點,

我的集群使用了2個虛擬機,debian系統,8G記憶體,并且安裝了JDK1.8,這樣我就有3臺機器,分別是客戶機Windows,Linux-1和Linux-2,Linux-1運行了集群全套的服務,Linux-2負責運行一個nodemanager節點,模擬被resourcemanager調度,

Linux-1和Linux-2的完整情況如下:

Linux-1 Linux-2
IP地址 192.168.0.200 192.168.0.201
resourcemanager 運行
nodemanager 運行 運行
namenode 運行
datanode 運行
historyserver 運行

整個集群的網路需要能夠互相訪問,其他無特殊要求,系統拓撲如下:

image-20230204221204665


二、組態檔結構

1、組態檔結構簡介

一個組態檔結構如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <property>
    <name>my.host</name>
    <value>192.168.0.200</value>
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://${my.host}:8082/</value>
  </property>
</configuration>

一個組態檔的根節點是configuration,一般包含多個property節點,而一個property節點就是一個配置引數,property節點有name和value兩個屬性,分別是配置名稱和值,

如果存在多個同名的property節點,后一個property節點會覆寫前一個,property節點的value支持${}占位符,運行的時候占位符會被決議為實際的值,

2、Hadoop配置

Hadoop有上百個配置,分為默認配置和自定義配置兩類,如果某個引數在自定義配置沒有,則會加載默認配置,所以我們只需要在自定義配置中加入少量的引數就可以運行集群,

可以在以下網址查詢到Hadoop的默認配置:

  • core-default.xml
  • yarn-default.xml
  • mapred-default.xml
  • hdfs-default.xml

自定義配置位于Hadoop安裝目錄下的etc/hadoop下,對應的4個自定義組態檔,名稱分別為core-site.xml、yarn-site.xml、mapred-site.xml、hdfs-site.xml

三、安裝和配置集群

1、修改組態檔

從https://hadoop.apache.org/releases.html下載Hadoop程式,這里我下載的是2.10.2,分別解壓到Linux-1和Linux-2上,解壓后程式目錄如下:

drwxr-xr-x 2 debian debian   4096  5月 25  2022 bin
drwxr-xr-x 3 debian debian   4096  5月 25  2022 etc
drwxr-xr-x 2 debian debian   4096  5月 25  2022 include
drwxr-xr-x 3 debian debian   4096  5月 25  2022 lib
drwxr-xr-x 2 debian debian   4096  5月 25  2022 libexec
-rw-r--r-- 1 debian debian 106210  5月 25  2022 LICENSE.txt
drwxr-xr-x 3 debian debian   4096  2月  4 17:05 logs
-rw-r--r-- 1 debian debian  15830  5月 25  2022 NOTICE.txt
-rw-r--r-- 1 debian debian   1366  5月 25  2022 README.txt
drwxr-xr-x 3 debian debian   4096  5月 25  2022 sbin
drwxr-xr-x 4 debian debian   4096  5月 25  2022 share

etc/hadoop為程式組態檔存放配置,我們需要在每一個節點創建4個檔案core-site.xml、yarn-site.xml、mapred-site.xml、hdfs-site.xml,

筆者的配置完整內容如下:

core-site.xml

my.host需要配置成當前主機實際的地址,my.namenode.hostmy.resourcemanager.hostmy.jobhistory.host分別配置為:HDFS namenode運行地址、yarn資源管理器運行地址、歷史作業查詢服務jobhistory運行地址,這里提一下fs.defaultFS,它的含義是HDFS的namenode地址,HDFS的datanode通過這個地址來發現namenode,同時這個地址也是默認檔案系統地址,用于決議相對的檔案路徑,

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- 當前主機地址,修改成Linux-1或Linux-2實際的IP地址 -->
  <property>
    <name>my.host</name>
    <value>192.168.0.200</value>
  </property>
  <!-- dfs namenode所在地址 -->
  <property>
    <name>my.namenode.host</name>
    <value>192.168.0.200</value>
  </property>
  <!-- yarn 資源管理器所在地址 -->
  <property>
    <name>my.resourcemanager.host</name>
    <value>192.168.0.200</value>
  </property>
  <!-- 作業歷史所在地址 -->
  <property>
    <name>my.jobhistory.host</name>
    <value>192.168.0.200</value>
  </property>

  <!-- 檔案系統地址 -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://${my.namenode.host}:8082/</value>
  </property>
</configuration>

yarn-site.xml

yarn中機器ip的配置大多數繼承于core-site.xml,所以可以直接分發這個檔案到各個機器上,唯一需要注意的是yarn.nodemanager.local-dirs引數,這個目錄用于存放任務運行程序中的臨時檔案,通常需要大一點,

<?xml version="1.0"?>
<configuration>
  <!-- 資源管理器地址 -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>${my.resourcemanager.host}</value>
  </property>
  <!-- 資源管理器系結地址 -->
  <property>
    <name>yarn.resourcemanager.bind-host</name>
    <value>0.0.0.0</value>
  </property>

  <!-- 節點管理器地址 -->
  <property>
    <name>yarn.nodemanager.hostname</name>
    <value>${my.host}</value>
  </property>
  <!-- 節點管理器系結地址 -->
  <property>
    <name>yarn.nodemanager.bind-host</name>
    <value>0.0.0.0</value>
  </property>
  <!-- 節點管理器臨時檔案存放路徑 -->
  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data1/debian/hadoop-data/nodemanager-local-data</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <!-- 節點管理器運行容器最大記憶體 -->
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4000</value>
  </property>
  <!-- 節點管理器單個容器分配最大記憶體 -->
  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>3000</value>
  </property>
</configuration>

mapred-site.xml

mapred-site.xml配置只需要配置歷史作業查詢服務jobhistory運行地址,筆者的這個組態檔引數也來源于core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- 歷史任務IPC地址 -->
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>${my.jobhistory.host}:10020</value>
  </property>
  <!-- 歷史任務web服務地址 -->
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>${my.jobhistory.host}:19888</value>
  </property>
</configuration>

hdfs-site.xml

這個組態檔用于控制HDFS的namenode和datanode節點資料存放路徑,dfs.namenode.checkpoint.dir控制namenode資料持久化目錄,之前提到的HDFS檔案系統中的檔案元資料就保存在這里,dfs.datanode.data.dir為資料塊存放路徑,HDFS中的資料塊就存放在這里,

這里并沒有配置namenode所在地址,datanode是通過core-site.xmlfs.defaultFS中配置的地址尋找namenode的

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <!-- 配置namenode資料存盤目錄 多個逗號分割-->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data1/debian/hadoop-data/namenode-data</value>
  </property>
  <!-- 配置輔助namenode資料存盤目錄 多個逗號分割-->
  <property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>/data1/debian/hadoop-data/namenode-checkpoint-data</value>
  </property>
  <!-- namenode rpc系結主機地址 -->
  <property>
    <name>dfs.namenode.rpc-bind-host</name>
    <value>0.0.0.0</value>
  </property>

  <!-- 配置datanode資料存盤目錄 多個逗號分割 -->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data1/debian/hadoop-data/datanode-data</value>
  </property>
  <!-- 資料副本數 -->
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

2、初始化HDFS nameserver資料目錄

一個新的HDFS的namenode類似新硬碟,使用前需要先格式化(初始化資料檔案),datanode節點不需要這個操作,一個HDFS的容量大小取決于datanode節點數量,所以也不需要設定HDFS的容量,

在namenode運行的節點,使用如下命令初始化HDFS的資料目錄:

bin/hdfs namenode -format

運行完成后在dfs.namenode.name.dir配置的目錄會生成namenode所需要的資料檔案,里面有一個檔案夾current,由于筆者HDFS節點已經運行過一段時間了,所以current中的內容如下:

debian@debian:/data1/debian/hadoop-data/namenode-data$ pwd
/data1/debian/hadoop-data/namenode-data
debian@debian:/data1/debian/hadoop-data/namenode-data$ ll
總用量 8
drwxr-xr-x 2 debian debian 4096  2月  4 15:27 current
-rw-r--r-- 1 debian debian   10  2月  4 15:27 in_use.lock
debian@debian:/data1/debian/hadoop-data/namenode-data$ ll current/
總用量 15396
-rw-r--r-- 1 debian debian 1048576  1月 22 14:20 edits_0000000000000000001-0000000000000000001
-rw-r--r-- 1 debian debian 1048576  1月 22 14:21 edits_0000000000000000002-0000000000000000002
-rw-r--r-- 1 debian debian 1048576  1月 22 14:21 edits_0000000000000000003-0000000000000000003
-rw-r--r-- 1 debian debian 1048576  1月 22 14:29 edits_0000000000000000004-0000000000000000004
-rw-r--r-- 1 debian debian 1048576  1月 24 17:47 edits_0000000000000000005-0000000000000000048
-rw-r--r-- 1 debian debian 1048576  1月 24 18:03 edits_0000000000000000049-0000000000000000061
-rw-r--r-- 1 debian debian 1048576  1月 28 10:01 edits_0000000000000000062-0000000000000000170
-rw-r--r-- 1 debian debian 1048576  2月  2 17:01 edits_0000000000000000171-0000000000000000171
-rw-r--r-- 1 debian debian 1048576  2月  2 21:18 edits_0000000000000000172-0000000000000000482
-rw-r--r-- 1 debian debian 1048576  2月  2 22:32 edits_0000000000000000483-0000000000000000866
-rw-r--r-- 1 debian debian 1048576  2月  2 22:45 edits_0000000000000000867-0000000000000000867
-rw-r--r-- 1 debian debian 1048576  2月  2 23:09 edits_0000000000000000868-0000000000000001143
-rw-r--r-- 1 debian debian 1048576  2月  3 10:50 edits_0000000000000001144-0000000000000001382
-rw-r--r-- 1 debian debian 1048576  2月  4 00:39 edits_0000000000000001383-0000000000000001620
-rw-r--r-- 1 debian debian 1048576  2月  4 17:07 edits_inprogress_0000000000000001621
-rw-r--r-- 1 debian debian    8109  2月  4 00:01 fsimage_0000000000000001382
-rw-r--r-- 1 debian debian      62  2月  4 00:01 fsimage_0000000000000001382.md5
-rw-r--r-- 1 debian debian   10696  2月  4 15:27 fsimage_0000000000000001620
-rw-r--r-- 1 debian debian      62  2月  4 15:27 fsimage_0000000000000001620.md5
-rw-r--r-- 1 debian debian       5  2月  4 15:27 seen_txid
-rw-r--r-- 1 debian debian     214  2月  4 15:27 VERSION

四、啟動服務

1、啟停腳本說明

進入Hadoop安裝目錄下的sbin檔案夾,主要有3個腳本檔案,用于啟停集群中各種守護行程,它們分別是

  1. hadoop-daemon.sh

    啟停HDFS的namenode和datanode,它還有多主機的啟停版本hadoop-daemons.sh

  2. yarn-daemon.sh

    啟停yarn的資源管理器和節點管理器,它還有多主機的啟停版本yarn-daemons.sh

  3. mr-jobhistory-daemon.sh

    啟停歷史任務管理服務historyserver

2、啟動HDFS

在Linux-1機器上運行如下命令

-- 啟動namenode
sbin/hadoop-daemon.sh start namenode
-- 啟動datanode
sbin/hadoop-daemon.sh start datanode

使用jps命令可以看到兩個行程

debian@debian:~/program/hadoop-2.10.2$ jps
676 NameNode
7846 Jps
733 DataNode

在windows物理機的瀏覽器輸入http://192.168.0.200:50070/可訪問HDFS的web管理頁面,筆者的顯示如下:

hdfs-web-1

3、啟動yarn

在Linux-1上輸入如下命令啟動yarn resourcemanager

-- 啟動yarn resourcemanager
sbin/yarn-daemon.sh start resourcemanager

然后在Linux-1和Linux-2啟動yarn nodemanager

-- 啟動yarn nodemanager
sbin/yarn-daemon.sh start nodemanager

訪問yarn的web管理地址http://192.168.0.200:8088/,可以看到當前集群下有兩個資源管理器

4、啟動歷史作業查詢服務

在Linux-1運行如下命令啟動:

sbin/mr-jobhistory-daemon.sh start historyserver

訪問可以看到http://192.168.0.200:19888,如下界面:


五、在集群運行一個MapReduce作業

本文所有的代碼放在我的github上,地址是:https://github.com/xunpengliu/hello-hadoop ,本節需要用到的模塊是maxSaleMapReduce,任務用到的資料檔案可以用common模塊中的SaleDataGenerator可以生成,

1、撰寫任務配置

為了讓任務運行在Hadoop集群上,我們需要撰寫一個組態檔cluster-config.xml,需要注意的是yarn.resourcemanager.hostname配置,很多書籍或其他資料配置的是yarn.resourcemanager.address,因為筆者提交作業是在windows上提交的,作業使用的配置是Hadoop默認配置,如果不配置yarn.resourcemanager.hostname,那么yarn.resourcemanager.resource-tracker.address的值就是0.0.0.0:8031(默認${yarn.resourcemanager.hostname}:8031),導致ApplicationMasters行程無法連上yarn resourcemanager,

如果需要跨平臺,也就是提交作業的系統和集群運行的系統不一樣,需要把mapreduce.app-submission.cross-platform配置成true

其他的配置就沒什么特別的了,fs.defaultFS配置成HDFS的namenode的地址,mapreduce執行框架配置成yarn

完整內容如下:

<configuration>
    <!--  跨平臺提交  -->
    <property>
        <name>mapreduce.app-submission.cross-platform</name>
        <value>true</value>
    </property>
    <!--  檔案系統地址  -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.0.200:8082/</value>
    </property>
    <!--  資源管理器地址  -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>192.168.0.200</value>
    </property>
    <!--  執行框架  -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!--  map任務數量  -->
    <property>
        <name>mapreduce.job.maps</name>
        <value>5</value>
    </property>
</configuration>

2、準備作業資料檔案

任務用到的資料檔案可以用common包中的SaleDataGenerator生成,把生成資料檔案傳到HDFS上的/input目錄上,可以用Hadoop的fs命令上傳,

hadoop fs -copyFromLocal file-0 hdfs://192.168.0.200:8082/input/file-0
hadoop fs -copyFromLocal file-1 hdfs://192.168.0.200:8082/input/file-1
hadoop fs -copyFromLocal file-2 hdfs://192.168.0.200:8082/input/file-2
hadoop fs -copyFromLocal file-3 hdfs://192.168.0.200:8082/input/file-3
hadoop fs -copyFromLocal file-4 hdfs://192.168.0.200:8082/input/file-4

上傳完成后可以在HDFS的管理頁面中看到檔案:

image-20230204220027581

3、啟動作業

輸入命令啟動作業:

hadoop jar maxSaleMapReduce-1.0-SNAPSHOT.jar -conf cluster-config.xml -libjars ./lib/common-1.0-SNAPSHOT.jar /input /output

命令最后的inputoutput引數分別是資料輸入目錄和輸出目錄,由于是相對路徑,會自動使用fs.defaultFS配置進行填充,所以相當于hdfs://192.168.0.200:8082/inputhdfs://192.168.0.200:8082/output

命令執行如下:

C:\Users\l3789\Desktop\新建檔案夾>hadoop jar maxSaleMapReduce-1.0-SNAPSHOT.jar -conf cluster-config.xml -libjars ./lib/common-1.0-SNAPSHOT.jar /input /output
23/02/04 21:27:31 INFO client.RMProxy: Connecting to ResourceManager at /192.168.0.200:8032
23/02/04 21:27:41 INFO input.FileInputFormat: Total input files to process : 5
23/02/04 21:27:41 INFO mapreduce.JobSubmitter: number of splits:15
23/02/04 21:27:42 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1675501509686_0002
23/02/04 21:27:42 INFO conf.Configuration: resource-types.xml not found
23/02/04 21:27:42 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
23/02/04 21:27:42 INFO resource.ResourceUtils: Adding resource type - name = memory-mb, units = Mi, type = COUNTABLE
23/02/04 21:27:42 INFO resource.ResourceUtils: Adding resource type - name = vcores, units = , type = COUNTABLE
23/02/04 21:27:42 INFO impl.YarnClientImpl: Submitted application application_1675501509686_0002
23/02/04 21:27:42 INFO mapreduce.Job: The url to track the job: http://192.168.0.200:8088/proxy/application_1675501509686_0002/
23/02/04 21:27:42 INFO mapreduce.Job: Running job: job_1675501509686_0002
23/02/04 21:27:46 INFO mapreduce.Job: Job job_1675501509686_0002 running in uber mode : false
23/02/04 21:27:46 INFO mapreduce.Job:  map 0% reduce 0%

可以訪問http://192.168.0.200:8088/proxy/application_1675501509686_0002/查看任務運行情況:

image-20230204212914157


六、常見問題

  1. 上傳檔案到HDFS提示copyFromLocal: Permission denied

    這個是因為hadoop命令獲取到用戶與HDFS上的權限不符,修改環境變數更改運行用戶,然后重新執行命令:

    -- windows
    set HADOOP_USER_NAME=debian
    -- linux
    export HADOOP_USER_NAME=debian
    
  2. 運行MapReduce作業提示無讀寫權限

    23/02/04 21:34:34 INFO client.RMProxy: Connecting to ResourceManager at /192.168.0.200:8032
    Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=test, access=EXECUTE, inode="/tmp":debian:supergroup:drwx------
            at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:350)
            at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:311)
    

    /tmp存放任務運行的歷史結果,供historyserver使用,運行任務的用戶無寫入權限,把這個目錄設定成所有人可寫,或者修改運行用戶為/tmp目錄的用戶

    修改環境變數更改運行用戶,然后重新執行命令:

    -- windows
    set HADOOP_USER_NAME=debian
    -- linux
    export HADOOP_USER_NAME=debian
    
  3. 運行任務狀態一直卡在,任務日志報org.apache.hadoop.ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8031

    這個問題卡了我好久,MapReduce任務的ApplicationMasters行程無法連上yarn resourcemanager,根本原因是提交任務的機器使用的yarn.resourcemanager.resource-tracker.address配置是默認的,需要在任務的組態檔中加入yarn.resourcemanager.address配置

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/543105.html

標籤:大數據

上一篇:SqlServer服務中利用觸發器對指定賬戶進行登錄ip限制提升安全性

下一篇:order by原理

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more