操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    、前言

    近幾年大數據是異常的火爆,今天小編以java開發的身份來會會大數據,提高一下自己的層面!
    大數據技術也是有很多:

    • Hadoop
    • Spark
    • Flink

    小編也只知道這些了,由于Hadoop,存在一定的缺陷(循環迭代式數據流處理:多
    并行運行的數據可復用場景效率不行)。所以Spark出來了,一匹黑馬,8個月的時間從加入Apache,直接成為頂級項目!!

    選擇Spark的主要原因是:

    Spark和Hadoop的根本差異是多個作業之間的數據通信問題 : Spark多個作業之間數據
    通信是基于內存,而 Hadoop 是基于磁盤。

    二、Spark介紹

    官網地址:https://spark.apache.org/

    Spark 是用于大規模數據處理的統一分析引擎。它提供了 Scala、Java、Python 和 R 中的高級 API,以及支持用于數據分析的通用計算圖的優化引擎。它還支持一組豐富的高級工具,包括用于 SQL 和 DataFrames 的 Spark SQL、用于 Pandas 工作負載的 Spark 上的 Pandas API、用于機器學習的 MLlib、用于圖形處理的 GraphX 和用于流處理的結構化流。

    spark是使用Scala語言開發的,所以使用Scala更好!!

    三、下載安裝

    1. Scala下載

    Scala官網:https://www.scala-lang.org/

    點擊安裝

    在這里插入圖片描述

    下載自己需要的版本

    在這里插入圖片描述


    點擊自己需要的版本:小編這里下載的是2.12.11

    點擊下載Windows二進制:

    在這里插入圖片描述


    慢的話可以使用迅雷下載!

    2. 安裝

    安裝就是下一步下一步,記住安裝目錄不要有空格,不然會報錯的!!!

    3. 測試安裝

    win+R輸入cmd
    輸入:

    scala
    


    必須要有JDK環境哈,這個學大數據基本都有哈!!

    在這里插入圖片描述

    4. Hadoop下載

    一個小技巧:
    Hadoop和Spark版本需要一致,我們先去看看spark,他上面名字就帶著和他配套的Hadoop版本!!

    spark3.0對照:https://archive.apache.org/dist/spark/spark-3.0.0/

    在這里插入圖片描述


    得出我們下載Hadoop的版本為:3.2

    Hadoop下載地址:https://archive.apache.org/dist/hadoop/common/


    在這里插入圖片描述

    5. 解壓配置環境

    解壓到即可使用,為了使用方便,要像jdk一樣配置一下環境變量!

    新建HADOOP_HOME
    值為安裝目錄:D:\software\hadoop-3.2.1
    Path里添加:%HADOOP_HOME%\bin

    cmd輸入:hadoop:提示

    系統找不到指定的路徑。
    Error: JAVA_HOME is incorrectly set.
    

    這里先不用管,咱們只需要Hadoop的環境即可!

    6. 下載Spark

    Spark官網:https://spark.apache.org/

    點擊找到歷史版本:

    在這里插入圖片描述


    點擊下載:

    在這里插入圖片描述

    7. 解壓環境配置

    新建:SPARK_HOMED:\spark\spark-3.3.1-bin-hadoop3
    Path添加:%SPARK_HOME%\bin

    8. 測試安裝

    win+R輸入cmd
    輸入:

    spark-shell
    

    在這里插入圖片描述

    四、集成Idea 1. 下載插件 scala

    在這里插入圖片描述

    2. 給項目添加Global Libraries

    打開配置:

    在這里插入圖片描述


    新增SDK

    在這里插入圖片描述


    下載你需要的版本:小編這里是:2.12.11

    在這里插入圖片描述


    右擊項目,添加上scala

    在這里插入圖片描述

    3. 導入依賴

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.12</artifactId>
      <version>3.0.0</version>
    </dependency>


    4. 第一個程序

    在這里插入圖片描述

    在這里插入圖片描述

    object Test {
    
     def main(args: Array[String]): Unit={
      println("hello")
      var sparkConf=new SparkConf().setMaster("local").setAppName("WordCount");
      var sc=new SparkContext(sparkConf);
      sc.stop();
     }
    }


    5. 測試bug1

    Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
    22/10/31 16:20:35 INFO SparkContext: Running Spark version 3.0.0
    22/10/31 16:20:35 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
    java.io.IOException: Could not locate executable D:\software\hadoop-3.2.1\bin\winutils.exe in the Hadoop binaries.


    在這里插入圖片描述

    原因就是缺少:winutils

    下載地址:https://github.com/cdarlint/winutils

    在這里插入圖片描述


    把它發放Hadoop的bin目錄下:

    在這里插入圖片描述

    6. 測試bug2

    這個沒辦法復現,拔得網上的記錄:

    Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
    22/10/08 21:02:10 INFO SparkContext: Running Spark version 3.0.0
    22/10/08 21:02:10 ERROR SparkContext: Error initializing SparkContext.
    org.apache.spark.SparkException: A master URL must be set in your configuration
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:380)
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:120)
        at test.wyh.wordcount.TestWordCount$.main(TestWordCount.scala:10)
        at test.wyh.wordcount.TestWordCount.main(TestWordCount.scala)
    

    就是這句:A master URL must be set in your configuration

    解決方案:
    就是沒有用到本地的地址

    右擊項目:

    在這里插入圖片描述

    沒有環境就添加上:

    在這里插入圖片描述


    添加上:

    -Dspark.master=local


    在這里插入圖片描述

    7. 測試完成

    沒有error,完美!!

    在這里插入圖片描述

    五、總結

    這樣就完成了,歷盡千辛萬苦,終于成功。第一次結束差點勸退,發現自己對這個東西還是不懂,后面再慢慢補Scala。先上手感受,然后再深度學習!!

    如果對你有用,還請點贊關注下,支持一下一直是小編寫作的動力!!



    可以看下一小編的微信公眾號,和網站文章首發看,歡迎關注,一起交流哈!!

    最近項目中在做千億大數據存儲檢索需求,要把10T的文本數據進行解析處理存入數據庫進行實時檢索,文件的存儲成為一個首要處理的問題,使用了多種存儲方式,都不是很滿足要求,最后使用 HDFS 分布式文件存儲系統發現效率、管理等各方面都挺不錯,就研究了一下搭建使用方式,特此記錄文檔

    環境

    IP

    hostname

    角色

    192.168.143.130

    master

    NameNode、ResourceManager

    192.168.143.131

    slave1

    DataNode、NodeManager

    192.168.143.132

    slave2

    DataNode、NodeManager

    192.168.143.133

    slave3

    DataNode、NodeManager

    192.168.143.134

    slave4

    DataNode、NodeManager

    修改主機名

    # 按照上面環境配置修改每個機器的hostname
    vi /etc/hostname
    
    # 使用hostname命令使其生效,就不用重啟了
    hostname xxxx

    修改hosts文件

    vi /etc/hosts
    
    192.168.143.130 master
    192.168.143.131 slave1
    192.168.143.132 slave2
    192.168.143.133 slave3
    192.168.143.134 slave4

    配置免密登錄

    ssh-keygen -t rsa
    
    ssh-copy-id -i ~/.ssh/id_rsa.pub master
    ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
    ssh-copy-id -i ~/.ssh/id_rsa.pub slave2
    ssh-copy-id -i ~/.ssh/id_rsa.pub slave3
    ssh-copy-id -i ~/.ssh/id_rsa.pub slave4

    安裝JDK(每臺機器)

    apt-get install -y openjdk-8-jre-headless openjdk-8-jdk


    配置環境變量

    在/etc/profile文件最后添加如下內容:

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools/jar
    export HADOOP_HOME=/usr/hadoop-3.3.0/
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_YARN_HOME=$HADOOP_HOME
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

    使環境變量生效

    source /etc/profile

    創建目錄(每天機器)

    創建目錄的時候要注意,先通過df -h命令查看本機上的磁盤空間,確定好數據存儲的磁盤,然后創建以下三個目錄,在下面的配置文件hdfs-site.xml中修改對應的目錄配置即可

    mkdir -p /home/hadoop/dfs/name
    mkdir -p /home/hadoop/dfs/data
    mkdir -p /home/hadoop/temp

    安裝配置Hadoop

    下載Hadoop安裝包

    http://archive.apache.org/dist/hadoop/core/stable/hadoop-3.3.0.tar.gz

    # 解壓后拷貝到/usr目錄下
    tar -xzvf hadoop-3.3.0.tar.gz
    mv hadoop-3.3.0 /usr

    配置Hadoop

    配置文件在/usr/hadoop-3.3.0/etc/hadoop目錄下

    • hadoop-env.sh
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    • core-site.xml
    <configuration>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
      </property>
      <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
      </property>
      <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
      </property>
    </configuration>
    • hdfs-site.xml配置多個文件存儲目錄,使用逗號隔開即可
    <configuration>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/dfs/name</value>
      </property>
      <property>
        <name>dfs.dataname.data.dir</name>
        <value>/home/hadoop/dfs/data,/usr1/hadoop/dfs/data</value>
      </property>
      <property>
        <name>dfs.replication</name>
        <value>2</value>
      </property>
    </configuration>
    • mapred-site.xml
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    </configuration>
    • yarn-site.xml
    <configuration>
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
    </configuration>
    • workers

    這里配置的就是DataNode的存儲機器,不建議用master作為存儲,如果存滿了集群就不能用了

    slave1
    slave2
    slave3
    slave4

    將master上的/usr/hadoop-3.3.9拷貝到其他機器即可

    scp /usr/hadoop-3.3.0 slave1:/usr
    scp /usr/hadoop-3.3.0 slave2:/usr
    scp /usr/hadoop-3.3.0 slave3:/usr
    scp /usr/hadoop-3.3.0 slave4:/usr

    格式化HDFS目錄(在master機器)

    hdfs namenode-format

    啟動Hadoop

    在master機器上執行就可以了,執行完以后可以使用jps命令在所有機器上查看進程狀態

    cd /usr/hadoop-3.3.0/sbin
    ./start-all.sh

    查看進程狀態

    在master和slave上分別執行jps命令

    查看是否成功

    在瀏覽器上打開下面的網頁,看能否正常訪問

    # Hadoop集群信息
    http://192.168.143.130:8088/cluster
    
    # HDFS地址
    http://192.168.143.130:9870/dfshealth.html
    
    # DataNode地址
    http://192.168.143.130:9864/datanode.html
    
    # NodeManager地址
    http://192.168.143.130:8042/node
    
    # SecondaryNameNode
    http://192.168.143.130:9868/status.html

    測試文件上傳(master)

    hdfs dfs -mkdir /test
    hdfs dfs -put start-dfs.sh /test

    HDFS操作命令

    • 創建文件夾
    hdfs dfs -mkdir /myTask
    • 創建多層文件
    hdfs dfs -mkdir -p /myTask/input
    • 上傳文件
    hdfs dfs -put /opt/wordcount.txt /myTask
    • 查看總目錄下的文件和文件夾
    hdfs dfs -ls /
    • 查看myTask目錄下的wordcount.txt文件內容
    hdfs dfs -cat /myTask/wordcount.txt
    • 刪除文件或文件夾
    hdfs dfs -rm -r /myTask/wordcount.txt
    • 下載文件到本地
    hdfs dfs -get /myTask/wordcount.txt /opt

    Python操作hdfs

    python操作hdfs時,如果要進行上傳下載文件,必須在執行代碼的機器上配置hosts文件,原因是hdfs的namenode和datanode注冊后是以hostname進行記錄的,如果不配置直接進行上傳下載操作,那么將會采用hostname進行操作,因此需要在本機上配置hdfs集群機器IP和hostname的對應配置。例如我在本機上進行操作,必須配置如下:

    C:\Windows\System32\drivers\etc\hosts
    
    192.168.143.130 master
    192.168.143.131 slave1
    192.168.143.132 slave2
    192.168.143.133 slave3
    192.168.143.134 slave4

    安裝庫

    pip install hdfs

    操作

    • 連接
    from hdfs.client import Client
    client=Client("http://192.168.143.130:9870")
    • 創建目錄
    client.makedirs(hdfs_path)
    • 刪除文件
    client.delete(hdfs_path)
    • 上傳文件
    client.download(hdfs_path, local_path)
    • 獲取目錄下文件列表
    client.list(hdfs_path)

    總結

    HDFS 文件存儲集群的優點是:配置要求低、易于擴展、效率比較高、非常適合大批量文件存儲,而且可以提供 web 管理頁面,提供非常好的第三方庫。在進行 web 開發時,作為文件和圖片存儲庫也是非常好的選擇。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有