国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

hadoop集群搭建、spark集群搭建、pyspark搭建(linux+window)

這篇具有很好參考價值的文章主要介紹了hadoop集群搭建、spark集群搭建、pyspark搭建(linux+window)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、前言

本文記錄學習過程中Hadoop、zookeeper、spark集群搭建,主要為pyspark庫服務(具體為window上pyspark環(huán)境和pyspark庫,linux上spark框架、pyspark應用程序、pyspark環(huán)境和pyspark庫)。pyspark環(huán)境是用anaconda3搭建的環(huán)境。pyspark應用程序,是安裝spark集群里面自帶的,提供一個python解釋器環(huán)境來執(zhí)行spark任務。pyspark庫,是python里面的庫,可以import導入,里面配置了完全的sparkapi,可以編寫spark程序在window或linux上運行。

本文的集群搭建主要以linux為主,對于pyspark庫部分,將涉及window,用來在window下使用pyspark庫寫程序運行以及上傳到linux上運行。如果只關(guān)注pyspark庫在window上運行,直接到2.11部分進行配置。

本文使用文件:

jdk:jdk-8u361-linux-x64.tar,jdk-8u361-windows-x86.exe

hadoop:hadoop-3.3.4.tar.gz

zookeeper:apache-zookeeper-3.5.9-bin.tar.gz

spark:spark-3.2.0-bin-hadoop3.2.tgz

anaconda3:Anaconda3-2021.05-Linux-x86_64.sh,anaconda3-2021.05-windows-x86_64.exe

hive:apache-hive-3.1.3-bin.tar.gz

mysql驅(qū)動包:mysql-connector-java-5.1.34.jar,linux內(nèi)部安裝的5.7版本。mysql-connector-java-8.0.13

本文內(nèi)容中涉及路徑的,根據(jù)自己設定進行修改。

2、搭建過程

2.1虛擬機設置

本文使vmware搭建linux虛擬機。

打開vmware虛擬網(wǎng)絡編輯器,更改設置-vmnet8-子網(wǎng)為192.168.88.0,子網(wǎng)掩碼為255.255.255.0-nat設置-網(wǎng)關(guān)為192.168.88.2-確定。

使用centos7操作系統(tǒng)。下載好安裝并創(chuàng)建用戶。右擊該用戶-管理-克隆-其中選擇完整克隆-名字為node1,選擇存儲文件位置-確定。進行三次,分別創(chuàng)建node1、node2、node3。設置node1內(nèi)存為4gb,node2和node3為2gb。

打開三臺虛擬機。

主機名設置:在node1下,切換管理員用戶,hostnamectl set-hostname node1,重啟終端。另外兩臺同樣配置。

修改ip地址:在node1下,vim /etc/sysconfig/network-scripts/ifcfg-ens33,BOOTPROTO='static',在最下面增加IPADDR="192.168.88.101",NETMASK="255.255.255.0",GATEWAY="192.168.88.2",DNS1="192.168.88.2"。wq保存。systemctl restart network。另外兩臺同樣配置,只是IPADDR分別為102、103。

配置主機映射:windows中,c/windows/system/drivers/etc/hosts,打開,增加并保存,保存的時候需要管理員權(quán)限,點擊是:

192.168.88.101 node1?

192.168.88.102?node2?

192.168.88.103?node3?

在linux中,使用finalshell遠程連接,root用戶。vim /etc/hosts,增加并保存:

192.168.88.101 node1?

192.168.88.102?node2?

192.168.88.103?node3?

配置ssh免密登錄:在每臺上執(zhí)行:ssh-keygen -t rsa -b 4096,一路回車到底。在每臺上執(zhí)行:ssh-copy-id node1,過程中輸入密碼。

ssh-copy-id node2

ssh-copy-id node3

完成后,在node1上執(zhí)行ssh node3,成功即可。

創(chuàng)建hadoop用戶:用來啟動大數(shù)據(jù)相關(guān)程序。每臺上執(zhí)行:useradd hadoop。passwd?hadoop,輸入密碼。su - hadoop,進行hadoop用戶,配置免密登錄,流程參上。

jdk環(huán)境部署:root下node1,mkdir -p /export/server。rz,選擇jdk壓縮包上傳。解壓:tar -zxvf 壓縮包名字 -C /export/server/ 。配置軟連接:ln -s /export/server/解壓后的名字 jdk。配置環(huán)境變量:vim etc/profile,export JAVA_HOME=/export/server/jdk,export PATH=$PAYH:$JAVA_HOME/bin,保存退出。生效環(huán)境變量:source /etc/profile。配置java執(zhí)行程序的軟連接:rm -f /usr/bin/java,ln -s /export/server/jdk/bin/java /usr/bin/java。驗證java -version,javac -version。server文件夾下分發(fā):scp -r 解壓后jdk的名字 node2:`pwd`/,scp -r 解壓后jdk的名字 node3:`pwd`/。在node2和node3,root下,配置軟連接,環(huán)境變量,驗證。

防火墻設置:root,每臺機器執(zhí)行:systemctl stop firewalld,systemctl disable firewalld,vim /etc/sysconfig/selinux,第七行SELINUX=disabled,保存退出。init 6 重啟。

時區(qū)和網(wǎng)絡同步:root,每臺機器執(zhí)行:可以先執(zhí)行date,看一下時間是否如當前所示。安裝ntp,yum install -y ntp,更新時區(qū):rm -f /etc/localtime,ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,再執(zhí)行date查看,最后應為CST。校準:ntpdate -u ntp.aliyun.com。啟動和自啟:systemctl start ntpd,systemctl enable ntpd

配置不易,快照保存!?。?/span>

2.2部署HDFS集群

node1,root,上傳hadoop壓縮包。解壓:tar -zxvf hadoop-3.3.4.tar.gz?-C /export/server/。進入server文件夾cd /export/server,構(gòu)建軟連接:ln -s /export/server/hadoop-3.3.4?hadoop。

修改配置文件:cd /export/server/hadoop/etc/hadoop。第一:vim workers,添加保存:

node1

node2

node3

第二:vim hadoop-env.sh,添加:

export JAVA_HOME=/export/server/jdk

export HADOOP_HOME=/export/server/hadoop

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HADOOP_LOG_DIR=$HADOOP_HOME/logs

第三:vim core-site.sh,添加:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
  </property>

  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
</configuration>

第四:vim hdfs-site.xml,添加:

<configuration>
  <property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>700</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/nn</value>
  </property>
  <property>
    <name>dfs.namenode.hosts</name>
    <value>node1,node2,node3</value>
  </property>
  <property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
  </property>
  <property>
    <name>dfs.namenode.handler.count</name>
    <value>100</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/dn</value>
  </property>
</configuration>

創(chuàng)建文件夾:mkdir -p /data/nn,mkdir /data/dn。node2和node3中:mkdir -p /data/dn

分發(fā):cd /export/server,scp -r hadoop-3.3.4 node2:`pwd`/,scp -r hadoop-3.3.4 node3:`pwd`/,

node2和node3中:ln -s /export/server/hadoop-3.3.4 hadoop

配置環(huán)境變量:node1,node2,node3:vim /etc/profile,添加:

export HADOOP_HOME=/export/server/hadoop

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存退出,執(zhí)行source /etc/profile,重啟環(huán)境變量。

授權(quán)hadoop用戶:root,node1,node2,node3中:chown -R hadoop:hadoop /data,chown -R hadoop:hadoop /export 。

格式化:node1:su - hadoop,hadoop namenode -format

啟動驗證:每臺機器上hadoop用戶下,start-dfs.sh。輸入jps,出現(xiàn)角色。

配置不易,快照保存?。?!

2.3mapreduce配置和yarn部署

mapreduce:node1,hadoop。cd /export/server/hadoop/etc/hadoop,vim mapred-env.sh,

添加:

export JAVA_HOME=/export/server/jdk

export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000

export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

vim mapred.site.xml,添加:

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description></description>
  </property>

  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>node1:10020</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>node1:19888</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    <value>/data/mr-history/tmp</value>
    <description></description>
  </property>


  <property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>/data/mr-history/done</value>
    <description></description>
  </property>
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
</configuration>

yarn:node1,hadoop。cd /export/server/hadoop/etc/hadoop,vim yarn-env.sh,添加:

export JAVA_HOME=/export/server/jdk

export HADOOP_HOME=/export/server/hadoop

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export HADOOP_LOG_DIR=$HADOOP_HOME/logs

vim yarn-site.xml,添加:

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://node1:19888/jobhistory/logs</value>
    <description></description>
</property>

  <property>
    <name>yarn.web-proxy.address</name>
    <value>node1:8089</value>
    <description>proxy server hostname and port</description>
  </property>


  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    <description>Configuration to enable or disable log aggregation</description>
  </property>

  <property>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/tmp/logs</value>
    <description>Configuration to enable or disable log aggregation</description>
  </property>


<!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
    <description></description>
  </property>

  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    <description></description>
  </property>

  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data/nm-local</value>
    <description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description>
  </property>


  <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/data/nm-log</value>
    <description>Comma-separated list of paths on the local filesystem where logs are written.</description>
  </property>


  <property>
    <name>yarn.nodemanager.log.retain-seconds</name>
    <value>10800</value>
    <description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description>
  </property>



  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>Shuffle service that needs to be set for Map Reduce applications.</description>
  </property>
</configuration>

分發(fā):scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node2:`pwd`/,scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node3:`pwd`/

啟動:hadoop用戶下,start-yarn.sh,mapred --daemon start historyserver,jps。

配置不易,快照保存!??!

2.4部署hive集群

安裝mysql數(shù)據(jù)庫:node1上使用yum安裝mysql5.7。更新密鑰:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022。安裝mysql:rpm -Uvh https://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm,yum -y install mysql-community-server。啟動mysql并設置開機自啟:systemctl start mysqld,systemctl enable mysqld。查看密碼:grep 'temporary password' /var/log/mysqld.log。登錄:mysql -uroot -p,輸入查找的密碼。設置簡單密碼:set global validate_password_policy=LOW;,set global validate_password_length=4;,ALTER USER 'root'@'localhost' IDENTIFIED BY '要設置的密碼';,設置遠程連接:grant all privileges on *.* to root@"%" identified by '設置的密碼' with grant option;,flush privileges;。

配置hadoop:node1,root用戶。cd /export/server/hadoop/etc/hadoop,vim core-site.xml,添加:

在windows下搭建spark集群的步驟,hadoop,linux,spark,python

將hive壓縮包和mysql驅(qū)動包上傳linux,移動驅(qū)動包:mv mysql-connector-java-5.1.34.jar /export/server/hive/lib/,解壓:tar zxvf apache-hive-3.1.3-bin.tar.gz -C /export/server/,軟連接:ln -s /export/server/apache-hive-3.1.3-bin /export/sever/hive。配置環(huán)境變量:cd /export/server/hive/conf,mv hive.env.sh.template hive.env.sh,vim hive.env.sh,添加:

export HADOOP_HOME=/export/server/hadoop

export HIVE_CONF_DIR=/export/server/hive/conf

export HIVE_AUX_JARS_PATH=/export/server/hive/lib

vim hive-site.xml,添加:

在windows下搭建spark集群的步驟,hadoop,linux,spark,python

在windows下搭建spark集群的步驟,hadoop,linux,spark,python

初始化元數(shù)據(jù)庫:在mysql中新建數(shù)據(jù)庫,create database hive charset utf-8;。格式化:cd /export/server/hive,bin/schematool -initSchema -dbType mysql -verbos。

修改權(quán)限:chown hadoop:hadoop apache-hive-3.1.3-bin hive。進入hadoop用戶,mkdir /export/server/hive/logs

啟動元數(shù)據(jù)服務,后臺啟動:node1,hadoop用戶,cd /export/server/hive,nohup bin/hive --service?metastore >> logs/metastore.log 2>&1 &。

啟動客戶端:cd /export/server/hive,bin/hive,quit退出。啟動前打開hdfs集群和yarn集群。

dbeaver連接hive:node1,hadoop用戶,cd/export/server/hive,先啟動元數(shù)據(jù)服務,nohup bin/hive --service?metastore >> logs/metastore.log 2>&1 &。然后啟動hiveserver2,nohup bin/hive --service?hiveserver2?>> logs/hiveserver2.log 2>&1 &。開啟這兩個后,jps會出現(xiàn)兩個RunJar。打開dbeaver(自行下載),連接apache hive,填寫信息(node1,hadoop),在驅(qū)動配置中更改庫的配置,刪除原有的兩個,配置hive-jdbc-3.1.2-standalone.jar,測試連接,完成。該模式hive內(nèi)部表的計算是基于mapreduce。

配置不易,快照保存?。?!

2.5部署zookeeper

node1,root。下載:wget http://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz。解壓:tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C/export/server。軟連接:ln -s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper。修改配置文件:vim /export/server/zookeeper/conf/zoo.cfg,修改并添加:

tickTime=2000

dataDir=/export/server/zookeeper/data

clientPort=2181

initLimit=5

syncLimit=2

server.1=node1:2888:3888

server.2=node2:2888:3888

server.3=node3:2888:3888

創(chuàng)建文件夾:mkdir /export/server/zookeeper/data。創(chuàng)建文件:vim /export/server/zookeeper/data/myid,添加:1。

分發(fā):scp -r apache-zookeeper-3.5.9-bin node2:`pwd`/,scp -r apache-zookeeper-3.5.9-bin node3:`pwd`/。在node2和node3設置軟連接:ln -s /export/server/apache-zookeeper-3.5.9-bin /export/server/zookeeper。將node2和node3中的myid文件內(nèi)容改為2和3。

修改權(quán)限:chown hadoop:hadoop apache-zookeeper-3.5.9 zookeeper。

啟動:每臺機器,hadoop用戶下,/export/server/zookeeper/bin/zkServer.sh start,jps,查看進程,出現(xiàn)QuorumPeerMain。/export/server/zookeeper/bin/zkServer.sh stop,關(guān)閉。

配置不易,快照保存!?。?/span>

2.6部署anaconda3

三臺機器上都執(zhí)行:

root用戶,上傳anaconda3壓縮包,解壓:sh anaconda3-2021.05-Linux-x86_64.sh,回車繼續(xù),出現(xiàn)more按空格,后面選擇yes,安裝路徑填寫:/export/server/anaconda3,。。。到完成。?關(guān)閉finalshell重新連接,在最開始出現(xiàn)(base)即為成功。(如果不想每次打開都帶base,想和之前一樣。做法為,root目錄下,vim .bashrc,最后添加:conda deactivate。重啟就行了)

設置國內(nèi)源:root目錄下,vim .condarc,添加:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

構(gòu)建pyspark環(huán)境:conda create -n pyspark python=3.8

conda activate pyspark,python,進入即為成功。

2.7部署spark local模式

在node1,root用戶。上傳spark壓縮包,解壓到/export/server/,并設置軟連接spark。

修改環(huán)境變量:vim /etc/profile,添加:

export SPARK_HOME=/export/server/spark
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

vim .bashrc,添加:

export PATH=/export/server/anaconda3/bin:$PATH
export JAVA_HOME=/export/server/jdk
export PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python3.8


測試:cd /export/server/spark/bin,執(zhí)行./pyspark,運行成功即可。

2.8部署stand?alone模式

這里要說明一件事情:該模式屬于spark集群,需要多臺服務器進行運算。但考慮到實際情況服務器不能滿足需求,便出現(xiàn)了一種新的spark運算模式,即spark on yarn。該模式在裝有hadoop集群(內(nèi)有yarn集群)下,不需要spark搭建集群環(huán)境,只需要一臺機器充當spark的客戶端,提交任務到y(tǒng)arn運行。所以stand alone可以不裝,直接安裝spark on yarn模式。

node2和node3中,root用戶。修改/etc/profile和.bashrc,內(nèi)容和2.7一致。

node1,root用戶。修改權(quán)限:chown -R hadoop:hadoop spark*,切換hadoop用戶。

開啟hdfs、yarn、歷史服務器。

start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver

cd /export/server/spark/conf/,mv workers.template workers,vim workers,添加:

node1

node2

node3

mv spark-env.sh.template spark-env.sh,vim spark-env.sh,添加:

#設置java安裝目錄
JAVA_HOME=/export/server/jdk
#hadoop文件配置目錄,讀取hdfs文件和運行yarn
HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop/
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop/
#告知spark的master運行在那臺機器
export SPARK_MASTER_HOST=node1
#spark的master的通訊端口
export SPARK_MASTER_PORT=7077
#spark的master的webui端口
SPARK_MASTER_WEBUI_PORT=8080
#worker cpu可用內(nèi)核數(shù)
SPARK_WORKER_CORES=1
#worker可用內(nèi)存
SPARK_WORKER_MEMORY=1g
#worker工作的通訊地址
SPARK_WORKER_PORT=7078
#worker的webui端口
SPARK_WORKER_WEBUI_PORT=8081
#設置歷史服務器,將spark的運行日志保存在hdfs的/sparklog文件夾
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:8020/sparklog/ -Dspark.history.fs.cleaner.enabled=true"

創(chuàng)建保存日志的文件夾:hadoop fs?-mkdir /sparklog,hadoop fs -chmod 777 /sparklog

mv spark-defaults.conf.template spark-defaults.conf,vim spark-defaults.conf,添加:

spark.eventLog.enabled  true
spark.eventLog.dir      hdfs://node1:8020/sparklog/
spark.eventLog.compress true

mv log4j.properties.template log4j.properties,vim?log4j.properties,修改:

log4j.rootCategory=WARN,console

分發(fā):cd /export/server/,scp -r spark-3.2.0-bin-hadoop3.2 node2:`pwd`/,scp -r spark-3.2.0-bin-hadoop3.2 node2:`pwd`/。到node2和node3中,切換hadoop用戶,cd /export/server/,ln -s?spark-3.2.0-bin-hadoop3.2 spark。

運行測試:node1,hadoop用戶。cd /export/server/spark/,啟動歷史服務器:sbin/start-history-server.sh,jps出現(xiàn)Historyserver即為成功。啟動角色:sbin/start-all.sh,jps出現(xiàn)master和worker即為成功。在node2和node3,hadoop用戶下,jps出現(xiàn)worker。

webui測試:網(wǎng)頁輸入node1:8080,出現(xiàn)內(nèi)容。

2.9部署stand alone HA模式

node1,hadoop用戶,cd /export/server/spark/conf,vim spark-env.sh,進行以下修改:

#注釋或刪除下行
export SPARK_MASTER_HOST=node1
#在最后添加以下內(nèi)容
SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1:2181,node2:2181,node3:2181 -Dspark.deploy.zookeeper.dir=/spark-ha"

將該文件分發(fā):scp -r spark-env.sh node2:`pwd`/,scp-r spark-env.sh node3:`pwd`/。

使用過程:啟動hadoop,zookeeper,spark。在node2上啟動spark的master,sbin/start-master.sh。這樣就有兩個master,可以查看進程,node1:8080,node2:8082。

2.10部署spark on yarn模式

該模式部署簡單,只需要確保spark-env.sh文件中指明HADOOP_CONF_DIR和
YARN_CONF_DIR。

運行:cd /export/server/spark/bin/pyspark --master yarn,運行成功即可。運行此模式前需要打開hdfs、yarn、mphistoryserver、sparkhistoryserver。

2.11pyspark庫安裝和遠程連接

linux上,node1、node2、node3,root用戶。conda activate pyspark,pip install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple。驗證,python,import pyspark。

配置不易,快照保存?。?!

window配置pyspark庫:需要安裝jdk、hadoop(不是必須)、python(anaconda)。

jdk部分:這里使用的版本和linux上的一致。安裝過程省略,網(wǎng)上搜索即可。需要注意,環(huán)境變量中系統(tǒng)變量添加JAVA_HOME,path指向bin,要不后續(xù)運行pyspark庫報錯。

hadoop部分:將hadoop-3.3.0文件夾中bin文件夾的hadoop.dll復制到C:\windows\System32里面。在環(huán)境變量配置中,系統(tǒng)變量新建:HADOOP_HOME,指向hadoop3.3.0文件夾的位置,在path添加:%HADOOP_HOME%\bin,這里主要使用到文件夾內(nèi)的winutils文件。這個過程是打補丁,避免hadoop在window上運行有報錯。

{關(guān)于hadoop-3.3.0文件夾,需要安裝hadoop才會有,安裝那個版本就會有那個版本的文件夾。不過同3.x下的應該也可以。另外還有一種方法不需要安裝hadoop,即:找地方下載winutils文件(網(wǎng)上有,搜索即可),建立hadoop\bin文件夾目錄,將winutils放進去,配置環(huán)境變量:HADOOP_HOME,指向hadoop文件夾位置,path添加:%HADOOP_HOME%\bin。}

window上安裝python:這里使用anaconda3安裝,內(nèi)部配置的python3.8版本。流程省略,網(wǎng)上搜索即可。在自己的用戶名目錄下添加.condarc文本文件,內(nèi)容如下:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

主要為了使用conda安裝能快點。如果創(chuàng)建了這個文件速度還是不行,在終端輸入以下代碼創(chuàng)建也可以:

#一條一條輸入
conda config -add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config -add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config -add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

終端輸入conda create -n pyspark python=3.8,conda activate pyspark,pip install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple。驗證,python,import pyspark。

打開環(huán)境變量設置,在系統(tǒng)變量下添加PYSPARK_PYTHON,指向anaconda中pyspark環(huán)境中python.exe的位置。

關(guān)于python的開發(fā)環(huán)境,這里選擇vscode。打開vscode,配置python解釋器,一般自動就配上了,如果沒有,手動配置,選在pyspark環(huán)境下的python。創(chuàng)建文件就可以編寫代碼了,pyspark也可以使用了。輸入以下代碼驗證:

#這是個詞頻統(tǒng)計實例
from pyspark import SparkConf, SparkContext

if __name__ == '__main__':
    conf = SparkConf().setMaster("local[*]").setAppName("WordCountHelloWorld")
    
    sc = SparkContext(conf=conf)
   #words.txt自己創(chuàng)建,路徑自選,里面寫了多個相同的單詞,以空格隔開。
    filed_rdd = sc.textFile("d:/code/PYthon/data/words.txt")

    words_rdd = filed_rdd.flatMap(lambda line: line.split(" "))

    words_with_one_rdd = words_rdd.map(lambda x: (x, 1))

    results_rdd = words_with_one_rdd.reduceByKey(lambda a, b: a+b)

    print(results_rdd.collect())

對于遠程連接,還是vscode。打開node1,打開vscode,下載remote-ssh。完成后左邊出現(xiàn)小電腦的標志,點擊它,在SSH右邊有個+,點擊,頁面上方輸入用戶名@IP地址,例如:root@111.111.111.11(這里使用的root用戶,ip地址選擇node1的地址,具體可以登錄node1終端,ifconfig,ens33里面的就是IP地址)。端口號不用指定,使用默認22端口即可。輸入完成按enter鍵,選擇第一個.ssh\config。右下角彈出,選擇open config,主要看一下config內(nèi)容。關(guān)閉重新打開vscode,左邊點擊小電腦,出現(xiàn)遠程連接的電腦,點擊右邊的箭頭,頁面上方依次選擇linux、continue、輸入登錄密碼。左邊點擊小店腦,連接的電腦出現(xiàn)小對號,左下方出現(xiàn)IP地址即為成功。

2.12使用JDBC協(xié)議來接mysql

window上,將mysql的jar包(我使用的mysql8)放在ananconda3目錄下,envs\pyspark\Lib\site-packages\pyspark\jars。

linux上,將mysql的jar包(我使用的mysql8)放/export/server/ananconda3/envs/pyspark/lib/python3.8/site-packages/pyspark/jars。

這樣就可以在vscode上將數(shù)據(jù)寫到MySQL中,以及從MySQL中讀取數(shù)據(jù)。

2.1.3部署hive和spark集成

node1,hadoop用戶,cd /export/server/spark/conf,vim hive-site.xml,添加:

<configuration>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description></description>
  </property>

  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://node1:9083</value>
    <description></description>
  </property>
</configuration>

配置mysql驅(qū)動jar包:將mysql8的jar包上傳到/export/server/spark/jars下。、

啟動:如果運行yarn模式,先打開hdfs、yarn、mphistoryserver、matestore、sparkhistoryserver。

cd /export/server/spark,sbin/start-thriftserver.sh --hiveconf hive.server2.thrift.port=1000 --hiveconf hive.server2.thrift.bind.host=node1 --master local[*] #可以選擇local或者yarn。打開dbeaver,連接apache spark,填寫相關(guān)信息(node1,hadoop),測試連接,完成。該模式hive內(nèi)部關(guān)于表的計算是基于sparkrdd的,這就配置了hive on spark模式。

對于spark on hive,就是在spark的代碼中,連接hive,并從hive中讀取數(shù)據(jù)進行建模分析。

后續(xù)pyspark相關(guān)配置的使用,如有心得,會繼續(xù)記錄。

上述是本人一步一步學習搭建并記錄得來,具有可行性。

如果感興趣,可以嘗試進行搭建。如有錯誤,請指出。

感謝您的關(guān)注。文章來源地址http://www.zghlxwxcb.cn/news/detail-814110.html

到了這里,關(guān)于hadoop集群搭建、spark集群搭建、pyspark搭建(linux+window)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 林子雨 VirtualBox + Ubuntu[linux] 配置 java、hadoop、Spark[python]、pyspark快速配置流程

    林子雨 VirtualBox + Ubuntu[linux] 配置 java、hadoop、Spark[python]、pyspark快速配置流程

    按照步驟快速執(zhí)行shell,最快速配置。 讀者可以根據(jù)該篇隨記快速回顧流程,以及用到的shell指令和相關(guān)配置文件。 是林老師教程的精簡版,初次配置者只能作為流程參考,主要和林子雨Spark[python]版課程配套。 ?林老師廈大實驗指南鏈接如下: Spark編程基礎(Python版)教材官

    2024年04月12日
    瀏覽(25)
  • 基于Hadoop搭建Flink集群詳細步驟

    基于Hadoop搭建Flink集群詳細步驟

    目錄 1.xftp上傳flink壓縮包至hadoop102的/opt/software/目錄下 2.解壓flink壓縮包至/opt/module/目錄下 3. 配置flink-conf.yaml 4.配置masters 5.配置workers 6.配置環(huán)境變量my_env.sh 7.重啟環(huán)境變量 8.分發(fā)/opt/module/flink-1.13.0和/etc/profile.d/my_env.sh 9.另外兩臺重啟環(huán)境變量 10.開啟hadoop集群和flink集群 11.瀏

    2024年02月09日
    瀏覽(28)
  • Windows下配置Hadoop及Spark環(huán)境

    Windows下配置Hadoop及Spark環(huán)境

    教程所用各版本說明 由于項目用的JDK17,所以單獨給Hadoop配了JDK11,建議直接配置JAVA_HOME環(huán)境變量為JDK11,因為后面Spark需要用到JAVA_HOME 下載JDK11 鏈接:https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html 目前Hadoop和Spark兼容 JDK11 和 JDK8 單獨修改Hadoop的話,需要在Hadoop目

    2023年04月20日
    瀏覽(27)
  • Windows運行Spark所需的Hadoop安裝

    Windows運行Spark所需的Hadoop安裝

    解壓文件 ?復制bin目錄 ????????找到winutils-master文件hadoop對應的bin目錄版本 ? ? ? ? 全部復制替換掉hadoop的bin目錄文件 ?復制hadoop.dll文件 ? ? ? ? 將bin目錄下的hadoop.dll文件復制到System32目錄下 ? ?配置環(huán)境變量 ?修改hadoop-env.cmd配置文件 注意jdk裝在非C盤則完全沒問題,

    2024年02月10日
    瀏覽(26)
  • Hadoop高可靠集群搭建步驟(手把手教學)【超級詳細】

    Hadoop高可靠集群搭建步驟(手把手教學)【超級詳細】

    Hadoop高可靠集群搭建步驟(手把手教學) 【超級詳細】 一、用管理員身份運行虛擬機 二、創(chuàng)建新的虛擬機: 選擇自定義→選擇硬件兼容性:Workstation 15.x→選擇稍后安裝→選Linux(L)(選CentOS 7 64位)→編輯虛擬機名字并選擇文件位置→處理器數(shù)量和內(nèi)核數(shù)量均選1→選擇虛擬機

    2024年02月02日
    瀏覽(23)
  • Linux修改hadoop配置文件及啟動hadoop集群詳細步驟

    Linux修改hadoop配置文件及啟動hadoop集群詳細步驟

    目錄 一、配置Hadoop環(huán)境 1.查看Hadoop解壓位置 2.配置環(huán)境變量 3.編輯環(huán)境變量 4.重啟環(huán)境變量 5.查看Hadoop版本,查看成功就表示Hadoop安裝成功了 二、修改配置文件 1.檢查三臺虛擬機: 2.切換到配置文件目錄 3.修改 hadoop-env.sh 文件 4.修改?core-site.xml?文件 5.修改?mapred-site.xml 文件

    2024年02月03日
    瀏覽(87)
  • 云計算集群搭建記錄[Hadoop|Zookeeper|Hbase|Spark | Docker |OpenStack]更新索引 |動態(tài)更新

    云計算集群搭建記錄[Hadoop|Zookeeper|Hbase|Spark | Docker |OpenStack]更新索引 |動態(tài)更新

    為了能夠更好的查看所更新的文章,講該博文設為索引 為了解決在編輯文件等操作的過程中的權(quán)限問題,博主一律 默認采用 root 賬戶登錄 對于初次安裝的用戶可以采用如下命令行: 另外推薦一款終端工具:Tabby,既能夠連接自己的服務器,也能夠連接自己本地的虛擬機,還

    2023年04月13日
    瀏覽(26)
  • 大數(shù)據(jù)集群搭建全部過程(Vmware虛擬機、hadoop、zookeeper、hive、flume、hbase、spark、yarn)

    大數(shù)據(jù)集群搭建全部過程(Vmware虛擬機、hadoop、zookeeper、hive、flume、hbase、spark、yarn)

    1.網(wǎng)關(guān)配置(參照文檔) 注意事項:第一臺虛擬機改了,改為centos 101 ,地址為192.168.181.130 網(wǎng)關(guān)依然是192.168.181.2,但是一定要注意,它在D盤的文件名稱是Hadoop 101,后面重新搭建的會命名文件夾為hadoop 101,hadoop 102和hadoop 103,然后發(fā)到一個總的文件夾hadoop_03里面去 VMnet8的IP地址一定

    2024年02月02日
    瀏覽(29)
  • 基于Headless構(gòu)建高可用spark+pyspark集群

    Headless 服務類型并不分配容器云虛擬 IP,而是直接暴露所屬 Pod 的 DNS 記錄。沒有默認負載均衡器,可直接訪問 Pod IP 地址。因此,當我們需要與集群內(nèi)真實的 Pod IP 地址進行直接交互時,Headless 服務就很有用。 其中Service的關(guān)鍵配置如下: clusterIP: None ,不讓其獲取clusterIP ,

    2024年02月06日
    瀏覽(31)
  • Linux多虛擬機集群化配置詳解(Zookeeper集群、Kafka集群、Hadoop集群、HBase集群、Spark集群、Flink集群、Zabbix、Grafana部署)

    Linux多虛擬機集群化配置詳解(Zookeeper集群、Kafka集群、Hadoop集群、HBase集群、Spark集群、Flink集群、Zabbix、Grafana部署)

    前面安裝的軟件,都是以單機模式運行的,學習大數(shù)據(jù)相關(guān)的軟件部署,后續(xù)安裝軟件服務,大多數(shù)都是以集群化(多臺服務器共同工作)模式運行的。所以,需要完成集群化環(huán)境的前置準備,包括創(chuàng)建多臺虛擬機,配置主機名映射,SSH免密登錄等等。 我們可以使用VMware提供

    2024年02月04日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包