原创 Spark | SparkSQL架構

  目錄 SparkSQL DataFrame API DataFrame & DataSet & RDD 三者區別 SparkSQL 組成 SparkSQL Catalyst Optimizer Tree TreeNode QueryP

原创 Spark | SparkSession初始化解析

Spark.version: 2.4.4 Apache Spark 2.0引入了SparkSession,其爲用戶提供了一個統一的切入點來使用Spark的各項功能,例如不再需要顯式地創建SparkConf, SparkContext 以及

原创 Python | Logging實現日誌輸出到文件

記錄下Python中使用Logging實現日誌輸出到文件,實例如下: # -*- coding: UTF-8 -*- #!/usr/bin/python import logging from logging import ha

原创 Java | ConcurrentHashMap

Java7: ConcurrentHashMap在內部細分爲若干個小的HashMap,叫做數據段Segment。默認情況下,一個ConcurrentHashMap被細分爲16個Segment,對每個Segment的數據都單獨進行加鎖操作。

原创 Python | 基於WebHDFS REST API操作HDFS

記錄下基於WebHDFS REST API操作HDFS的基本功能,具體更多請參照官網介紹: http://hadoop.apache.org/docs/r3.2.1/hadoop-project-dist/hadoop-hdfs/WebH

原创 Linux | ulimit

ulimit :顯示系統資源限制的信息 ulimit [options] options參數可以爲: -a  顯示目前資源限制的設定。 -c <core文件上限>  設定core文件的最大值,單位爲區塊。 -d <數據節區大小>  程

原创 Java | ArrayList

Java8中ArrayList是基於數組保存數據,相當於一個數組隊列,但該數組是動態數組,即數組大小可以被擴容。 接下來看下ArrayList類繼承關係(IDEA中快捷鍵Ctrl + Alt + U查看),如下: public clas

原创 Spark | SparkSql Insert Overwrite 小文件過多

SparkSql在執行Hive Insert Overwrite Table 操作時 ,默認文件生成數和表文件存儲的個數有關,但一般上游表存儲個數並非下游能控制的,這樣的話得考慮處理小文件問題。 小文件產生原因: spark.sql.sh

原创 Java | 紅黑樹

後續補充~ 圖解紅黑樹:https://www.jianshu.com/p/e136ec79235c   紅黑樹實現: https://www.cnblogs.com/lycroseup/p/7324229.html

原创 HBase | oldWALs目錄文件劇增佔用磁盤空間問題

出現問題原因: 當/hbase/WALs中的HLog文件被持久化到存儲文件中,且這些Hlog日誌文件不再被需要時,就會被轉移到{hbase.rootdir}/oldWALs目錄下,該目錄由HMaster上的定時任務負責定期清理。 HMas

原创 Java | DBMS

原子性:事務是一組不可分割的操作單元,這組單元要麼同時成功要麼同時失敗(由DBMS的事務管理子系統來實現); 一致性:事務前後的數據完整性要保持一致(由DBMS的完整性子系統執行測試任務); 隔離性:多個用戶的事務之間不要相互影響,

原创 Linux | systemctl & firewalld

#啓動一個服務 systemctl start firewalld.service #關閉一個服務(臨時關閉防火牆) systemctl stop firewalld.service #重啓一個服務(重啓防火牆) systemctl

原创 Linux | 記錄下工作中常用的命令

目錄   1. free命令 1. free free : 夠顯示系統中物理上的空閒和已用內存,還有交換內存,同時,也能顯示被內核使用的緩衝和緩存; 語法: free [options] options 可以選擇以下幾個: -b:以

原创 Linux | cpuinfo

# 總核數 = 物理CPU個數 X 每顆物理CPU的核數 # 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超線程數 # 查看物理CPU個數 cat /proc/cpuinfo| grep "physical i

原创 Hive | 記錄下執行SQL時常見的參數設置

// 基本任務參數設置 set mapred.reduce.tasks = 1; // 設置任務reduce個數 set mapreduce.job.queuename = root.queueS1; // 設置任務執行隊列 set