搭建 Spark 单机伪分布式环境

  • Post author:
  • Post category:其他





一、安装前准备



  1. VM


    虚拟机安装


    Centos 7


    操作系统。

  2. 安装


    JDK


yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel


查看jdk安装路径





配置系统路径


rpm -ql java-1.8.0-openjdk


  1. 下载


    Hadoop


    安装包



下载 Hadoop-2.7.7 安装包,解压至/home/hj/hadoop-2.7.7 文件夹。


  1. 下载


    Spark


    安装包


下载


spark-2. 4.7-bin-hadoop2.7. tar


安装包。并解压至


/home/hj/


spark- 2.4.7-bin-hadoop2.7


文件夹。




二、安装






Hadoop



  1. 下载


    Hadoop


    安装包



下载 Hadoop-2.7.7 安装包,解压至/home/hj/hadoop-2.7.7 文件夹。


  1. 配置环境变量。


使用命令


vi


/etc/profile


打开


/etc/profile


,在文件末尾写入


export J


AVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/


export


HAD00P_H0ME


=/home/hj/hadoop-2.7.7/


export


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


输入命令:


source /etc/profile


使环境变量生效。


输入命令


java -version


以及


hadoop version


查看


java


环境变量以及


hadoop




境变量是否配置正确。


  1. 输入命令


    cd $HADOOP_HOME/etc/hadoop/,


    进入


    hadoop


    配置文件所在的目录,
  2. 使用 命令vi hadoop-env.sh  mapred-env.sh  yarn-env.sh,
  3. 在这三个文件末尾添加export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/


以yarn-env.sh为例:


4.


配置


core-site.xml.


使用命令


vi


core-site.xml


,





〈configuration></configuration>


之间插入 以下内容:


<property>


<name>fs.defaultFS</name>


<value>hdfs://localhost:8020</value>


</property>


<property>


<name>hadoop.tmp.dir</name>


<value>/home/hj/tmp</value>


</property>


其中第一个


property


是配置默认文件系统所在的位置,将其中主机名替换为自 己的主机名称(




<主机名〉为






/etc/hostname






文件中定义的主机名




)。


第二个


property


是配置


hadoop


临时目录所在位置。使用命令


mkdir -p /home/hj/tmp


创建临时目录。


  1. 配置


    hdfs-site.xml.





    〈configuration></configuration>


    之间插入以下内容:


<property>


<name>dfs.replication</name>


<value>1</value>


</property>





property


是配置分布式文件系统对于每个文件块的副本数量设置,默认为3,而 在伪分布式环境下设置为 1,因为只有一个节点。


  1. 将 mapred-site.xml.template 复制一份为 mapred-site.xml,再配置 mapred-site.xml.在<configuration></configuration>之间插入以下内容:


<property>


<name>mapreduce.framework.name</name>


<value>yarn</value>


</property>


该 property 是配置进行 mapreduce 计算任务的框架,设置为 yarn。


  1. 配置


    yarn-si


    t


    e.xml.





    〈configura ti on>〈/configura tion>


    之间插入以下内容:


〈property>


〈name>yarn.nodemanager.aux-services〈/name>


〈value>mapreduce_shuffle〈/value>


〈/property>


〈property>


〈name>yarn.resourcemanager.hostname〈/name>


<value>


localhost


〈/value〉


〈/property>


  1. 第一个


    property


    配置的是


    mapreduce


    使用混洗重组模式,第二个


    property


    指定了


    yarn


    框架中资源管理者的主机名,因为就一个节点,所以设置为当前主机名。


  1. 配置本机


    ssh


    免密登录

  1. 安装


    ssh


    服务端。命令:


    yum


    install openssh-server。


  1. 安装


    ssh


    客户端。命令:


    yum


    install openssh-client


  1. 配置


    ssh


    免密登录。进入当前用户的


    home


    目录,生成本机秘钥。


命令:


cd


ssh-keygen -t rsa -P


“”


  1. 将公钥追加到


    authorized_keys


    文件中。





首次创建.ssh目录和authorized_keys文件。


创建.ssh目录:


mkdir ~/.ssh


设置正确的权限:


chmod 700 ~/.ssh


创建authorized_keys文件:


touch ~/.ssh/authorized_keys




命令:


cat .ssh/id_rsa.pub


>>


.ssh/authorized_keys


然后赋予


authorized_keys


文件权限。


命令:


chmod


600


.ssh/authorized_keys


  1. 输入命令


    ssh localhost


    查看


    ssh


    是否配置成功。


输入命令


exit


退出


ssh


当前登录。


  1. 使用命令


    hdfs namenode -format





    namenode


    进行格式化。若格式化成功,则


/


home/hj/tmp


(





4


步创建的


hdfs


临时目录下会生成一个新目录


dfs;


否 则,即为失败,应往回检查是否哪里设置错误。


  1. 使用命令


    start-all.sh


    开启所有节点(伪分布式只有本机一个节点)及节点所开 启的所有服务,并使用


    jps


    查看该节点的对应服务是否开启成功。如果现实一下内容, 则证明配置成功。


  1. 上传文件至


    hdfs


(1)





hdfs


文件系统中创建目录


/test/input。


命令:


hdfs dfs -mkdir -p /test


/


input,


使用命令


hdfs dfs -ls


/ 查看目录是 否创建成功。


(2)





/home/


〈用户名>/目录中新建一个文件


input.txt,


输入内容如下所示:


CHZU


Chuzhou University


Big Data


(3)


将创建的


inpu t.txt


上传至


hdfs


中的


/t es t/input


目录下。


命令:


hdfs dfs -put /home/


hj


/input.txt /test/input


使用命令


hdfs dfs -cat /test/input/input.txt


查看是否上传成功。


  1. 使用


    hadoop


    自带的


    WordCount


    程序对


    input.txt


    文件进行单词计数。命令:


(1)


yarn jar /home/


hj


/hadoop-2.7. 7/share/hadoop/mapreduce/hadoop- mapreduce-examples-2.7.7.jar wordcount /test/input /test/output


参数


wordcount


为该


jar


包的主类名


/test/input


为输入文件夹(是文件夹,不 是文件!!!)


/test/output


为输出文件夹(是文件夹,不是文件!!!并且,在执行此 命令之前,


hdfs


中不能有


/test/ou tput


目录


!!!)




三、安装






Spark






  1. 〈Spark


    解压路径


    〉/conf/spark-env. sh.template


    复制为


    conf/spark-env.sh


    ,在


    spark-env.sh


    文件末尾添加如下所示的内容:


export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/


export HADOOP_HOME=/home/hj/hadoop-2.7.7


export HADOOP_CONF_DIR=/home/hj/hadoop-2.7.7/etc/hadoop


export SPARK_MASTER_IP=192.168.238.111


export SPARK_LOCAL_IP=192.168.238.111


JAVA_HOME:Java


的安装路径;


HADOOP_HOME:Hadoop


的安装路径;


HADOOP_CONF_DIR: Hadoop


配置文件路径


SPARK_MASTER_IP:Spark


主节点的


IP


或机器名


SPARK_LOCAL_IP:Spark


本地的


IP


或机器名


  1. 切换到


    〈Spark


    解压路径


    >/sbin


    目录下,启动集群。


命令:


./start-all.sh


  1. 通过


    jps


    查看进程,即有


    Master


    也有


    Worker


    进程,说明启动成功。


  1. 使用


    SparkPi


    来计算


    Pi


    的值。


由于计算


Pi


采用随机数,所以每次计算结果也会有差异。



5. 运行字数统计程序



(1) 启动 spark-shell。



命令:<Spark 解压目录>/bin/spark-shell



(2)执行字数统计



在 Spark-shell 中输入以下代码:



sc.textFile(“/test/input/input.txt”).flatMap(_.split(”



“)).map((_,1)).reduceByKey(_+_).saveAsTextFile(“/test/output1”)



查看运行结果,命令:hdfs dfs -cat /test/output1/part-00000


  1. 查看


    job


    监控界面



版权声明:本文为qq_55944883原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。