nebula-spark-connector環(huán)境搭建(偽分布式)/pyspark運(yùn)行

1. 版本信息

spark-2.4.4-bin-hadoop2.7.tgz
hadoop-2.7.7.tar.gz
scala-2.11.12.tgz
jdk-8u391-linux-x64.tar.gz
python3.7(python3.8及以上版本不能兼容spark2.4句狼,python版本要求3.5+)
pyspark==3.4.2
findspark==2.0.1
nebula-graph==3.4.0

2. 安裝

設(shè)置免密登錄

ssh-keygen -t rsa
ssh-copy-id root@node03
tar zxvf spark-2.4.4-bin-hadoop2.7.tgz -C /usr/local
tar zxvf hadoop-2.7.7.tar.gz -C /usr/local
tar zxvf scala-2.11.12.tgz -C /usr/local
tar zxvf jdk-8u391-linux-x64.tar.gz -C /usr/local

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_391
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export SPARK_HOME=/usr/local/spark-2.4.4-bin-hadoop2.7
export SCALA_HOME=/usr/local/scala-2.11.12
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native/:$LD_LIBRARY_PATH
export PATH=$PATH:$MAVEN_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin

source /etc/profile

3. 配置hadoop驮捍、spark

3.1 hadoop(cd /usr/local/hadoop-2.7.7/)

etc/hadoop/slaves

node03

etc/hadoop/hadoop-env.sh 中添加

JAVA_HOME=/usr/local/jdk1.8.0_391

etc/hadoop/core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node03:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop-2.7.7/data</value>
</property>
</configuration>

etc/hadoop/hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permission.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node03:50090</value>
</property>
</configuration>

etc/hadoop/mapred-site.xml

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

etc/hadoop/yarn-site.xml

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

sbin目錄下start_all.sh打肝、stop_all.sh惭蹂、start-dfs.sh、stop-dfs.sh罚缕、start-yarn.sh艇纺、stop-yarn.sh中添加

HDFS_DATANODE_USER=root
YARN_RESOURCEMANAGER_USER=root
HDFS_NAMENODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_NODEMANAGER_USER=root
3.2 spark(/usr/local/spark-2.4.4-bin-hadoop2.7)

conf/slaves

node03

conf/spark-env.sh(從conf/spark-env.sh.template復(fù)制得到)中添加

export SPARK_MASTER_HOST=node03
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native/

4. 啟動

# hdfs 格式化
hdfs namenode -format
/usr/local/hadoop-2.7.7/sbin/start-dfs.sh
/usr/local/hadoop-2.7.7/sbin/start-yarn.sh
/usr/local/spark-2.4.4-bin-hadoop2.7/sbin/start-all.sh
[root@node03 ~]# jps
29265 DataNode
21826 Master
100405 Jps
25269 NodeManager
29430 SecondaryNameNode
29591 ResourceManager
21898 Worker
29135 NameNode

spark各個(gè)端口:

1)Spark查看當(dāng)前Spark-shell運(yùn)行任務(wù)情況端口號:4040
2)Spark Master內(nèi)部通信服務(wù)端口號:7077 (類比于Hadoop的8020(9000)端口)
3)Spark Standalone模式Master Web端口號:8080(類比于Hadoop YARN任務(wù)運(yùn)行情況查看端口號:8088)
4)Spark歷史服務(wù)器端口號:18080 (類比于Hadoop歷史服務(wù)器端口號:19888)

hadoop各個(gè)端口:

1.HDFS:
  NameNode:默認(rèn)端口為 8020(RPC),50070(Web UI)邮弹。
  DataNode:默認(rèn)端口為 50010(數(shù)據(jù)傳輸)黔衡、50020(心跳)、50075(Web UI)腌乡。
  SecondaryNameNode:默認(rèn)端口為 50090(Web UI)盟劫。
2.YARN:
  ResourceManager:默認(rèn)端口為 8032(RPC)、8088(Web UI)与纽。
  NodeManager:默認(rèn)端口為 8042(Web UI)侣签。
3.MapReduce:
  JobHistoryServer:默認(rèn)端口為 10020(RPC)、19888(Web UI)急迂。
4.HBase:
  HMaster:默認(rèn)端口為 16000(RPC)影所、16010(Web UI)。
  RegionServer:默認(rèn)端口為 16020(RPC)僚碎、16030(Web UI)猴娩。
5.ZooKeeper:
  默認(rèn)端口為 2181。

NameNode:維護(hù)hadoop文件系統(tǒng)的命名空間
8021 JobTracker:協(xié)調(diào)MapReduce任務(wù)的進(jìn)程
DataNode:存儲數(shù)據(jù)塊勺阐,并向客戶端提供數(shù)據(jù)
50060 TaskTracker:運(yùn)行MapReduce任務(wù)的節(jié)點(diǎn)
Secondary NameNode:定期合并hadoop文件系統(tǒng)編輯日志卷中,并發(fā)送到NameNode

5. pyspark

生成nebula-spark-connector-3.0.0.jar文件,打包完成在nebula-spark-connector/nebula-spark-connector/target目錄下

$ git clone https://github.com/vesoft-inc/nebula-spark-connector.git -b v3.0.0
$ cd nebula-spark-connector/nebula-spark-connector
$ mvn clean package -Dmaven.test.skip=true -Dgpg.skip -Dmaven.javadoc.skip=true

python3.7加載nebula-spark-connector-3.0.0.jar文件讀取nebula點(diǎn)和邊渊抽,并保存到hdfs

import findspark
findspark.init()

from pyspark.sql import SparkSession

spark = SparkSession.builder.master("local[*]").config(
    "spark.jars", "/root/nebula-spark-connector-3.0.0.jar").config(
    "spark.driver.extraClassPath", "/root/nebula-spark-connector-3.0.0.jar").appName(
    "nebula-connector").getOrCreate()

df = spark.read.format("com.vesoft.nebula.connector.NebulaDataSource").option(
    "type", "vertex").option(
    "spaceName", "player").option(
    "label", "user").option(
    "returnCols", "name,age").option(
    "metaAddress", "<nebula-meta-ip>:9559").option(
    "partitionNumber", 60).load()
# df = spark.read.format("com.vesoft.nebula.connector.NebulaDataSource").option(
#     "type", "vertex").option(
#     "spaceName", "player").option(
#     "label", "relation").option(
#     "returnCols", "create_date,type,sub_type,values").option(
#     "metaAddress", "<nebula-meta-ip>:9559").option(
#     "partitionNumber", 60).load()
# df.show(n=2)
# df.write.format("csv").save("./relation", header=True)

# df = spark.read.format("com.vesoft.nebula.connector.NebulaDataSource").option(
#     "type", "edge").option(
#     "spaceName", "player").option(
#     "label", "has").option(
#     "returnCols", "sdate,rtype").option(
#     "metaAddress", "<nebula-meta-ip>:9559").option(
#     "partitionNumber", 60).load()
df.show(n=2)
df.write.format("csv").save("hdfs://node03:9000/frame", header=True)
spark.stop()
# 默認(rèn)保存大小1.3M蟆豫,合并hdfs文件
hdfs dfs -cat /frame/part-* | hdfs dfs -copyFromLocal - /input/frame.csv
# 刪除臨時(shí)文件夾
hdfs dfs -rmr /frame
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市懒闷,隨后出現(xiàn)的幾起案子十减,更是在濱河造成了極大的恐慌徙瓶,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫉称,死亡現(xiàn)場離奇詭異,居然都是意外死亡灵疮,警方通過查閱死者的電腦和手機(jī)织阅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來震捣,“玉大人荔棉,你說我怎么就攤上這事≥镉” “怎么了润樱?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長羡棵。 經(jīng)常有香客問我壹若,道長,這世上最難降的妖魔是什么皂冰? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任店展,我火速辦了婚禮,結(jié)果婚禮上秃流,老公的妹妹穿的比我還像新娘赂蕴。我一直安慰自己,他們只是感情好舶胀,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布概说。 她就那樣靜靜地躺著,像睡著了一般嚣伐。 火紅的嫁衣襯著肌膚如雪糖赔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天纤控,我揣著相機(jī)與錄音挂捻,去河邊找鬼。 笑死船万,一個(gè)胖子當(dāng)著我的面吹牛刻撒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耿导,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼声怔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舱呻?” 一聲冷哼從身側(cè)響起醋火,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤悠汽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后芥驳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柿冲,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年兆旬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了假抄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丽猬,死狀恐怖宿饱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脚祟,我是刑警寧澤谬以,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站由桌,受9級特大地震影響为黎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沥寥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一碍舍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧邑雅,春花似錦片橡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至骤星,卻和暖如春经瓷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洞难。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工舆吮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人队贱。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓色冀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親柱嫌。 傳聞我的和親對象是個(gè)殘疾皇子锋恬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容