大数据分布式平台Hadoop2.7.7 + Spark2.2.2搭建
发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapRedu
千家信息网最后更新 2024年11月19日大数据分布式平台Hadoop2.7.7 + Spark2.2.2搭建
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
一、准备工作
(1)、3台机器,可以是VM中的三台虚拟机,我这里是三台Centos6.7,分别为:
192.168.174.141 hd1 master192.168.174.142 hd2 slave1192.168.174.143 hd3 slave2
(2)、java环境: jdk1.8.0_73
(3)、新建一个普通用户
useradd hadooppasswd hadoopNew password: Retype new password:授权 root 权限,在root下面加一条hadoop的hadoop ALL=(ALL) ALL#修改权限chmod 777 /etc/sudoersvim /etc/sudoers## Allow root to run any commands anywhere root ALL=(ALL) ALLhadoop ALL=(ALL) ALL#恢复权限chmod 440 /etc/sudoers
(4)、配置ssh免密登录
#进入到我的home目录,su - hadoopssh-keygen -t rsa (连续按四个回车)#执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)#将公钥拷贝到要免密登录的机器上ssh-copy-id hd2ssh-copy-id hd3
二、安装hadoop集群
#在h2,h3,h4机器上新建apps目录用于存放hadoop和spark安装包mkdir -p /home/hadoop/apps/hadoopcd /home/hadoop/apps/hadoop#在hd1机器上 下载hadoop2.7.7(hd2,hd3上等在hd1把hadoop的相关配置改完后scp发送过去)wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gztar -zxvf hadoop-2.7.7.tar.gz#配置环境变量sudo vim /etc/profile#添加HADOOP_HOMEexport HADOOP_HOME=/home/hadoop/apps/hadoop/hadoop-2.7.7export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin#刷新环境变量source /etc/profile#查看hadoop版本hadoop version#配置Hadoop的JAVA_HOMEcd /home/hadoop/apps/hadoop/hadoop-2.7.7/etc/hadoopvim hadoop-env.sh#大概在25行,添加export JAVA_HOME=/opt/soft/java/jdk1.8.0_73#修改配置文件1、修改core-site.xmlvim core-site.xml fs.defaultFS hdfs://hd1:9000 hadoop.tmp.dir file:/home/hadoop/apps/hadoop/hadoop-2.7.7/tmp 2、修改hdfs-site.xmlvim hdfs-site.xml dfs.namenode.secondary.http-address hd1:50090 dfs.replication 2 dfs.namenode.name.dir file:/home/hadoop/apps/hadoop/hadoop-2.7.7/tmp/dfs/name dfs.datanode.data.dir file:/home/hadoop/apps/hadoop/hadoop-2.7.7/tmp/dfs/data 3、修改mapred-site.xml#目录下没有这个文件,复制一份出来cp mapred-site.xml.template mapred-site.xmlvim mapred-site.xml mapreduce.framework.name yarn mapreduce.jobhistory.address hd1:10020 mapreduce.jobhistory.webapp.address hd1:19888 4、修改yarn-site.xmlvim yarn-site.xml yarn.resourcemanager.hostname hd1 yarn.nodemanager.aux-services mapreduce_shuffle yarn.log-aggregation-enable true yarn.log.server.url http://hd1:19888/jobhistory/logs yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false 5、修改slaves文件内容,该文件指定哪些服务器节点是datanode节点,删除里面的localhostcd /home/hadoop/apps/hadoop/hadoop-2.7.7/etc/hadoopvim slaveshd1hd2hd3#以上所有配置文件已经配好的,在hd1上将配置好的hadoop-2.7.7目录复制到hd2,hd3相同目录cd /home/hadoop/apps/hadoopscp -r hadoop-2.7.7 hadoop@hd2:/home/hadoop/apps/hadoop/scp -r hadoop-2.7.7 hadoop@hd3:/home/hadoop/apps/hadoop/scp /etc/profile root@hd2:/etc/并在hd2上执行:source /etc/profilescp /etc/profile root@hd3:/etc/并在hd3上执行:source /etc/profile# 格式化集群操作#格式化namenode和datanode并启动,(在hd1(master)上执行就可以了 不需要在(hd2,hd3)slave上执行)hdfs namenode -format#关闭所有机器防火墙service iptables stop#启动hadoop集群#依次执行两个命令#启动hdfsstart-dfs.sh#再启动start-yarn.sh#直接用一个命令也可以start_all.sh#验证是否启动成功,缺少以下任一进程都表示出错#在hd1,hd2,hd3分别使用jps命令,可以看到#hd1中显示56310 NameNode56423 DataNode56809 ResourceManager56921 NodeManager56634 SecondaryNameNode# hd2中显示16455 NodeManager16348 DataNode#hd3显示13716 DataNode13823 NodeManager#查看集群web页面hdfs页面:http://hd1:50070/ 或者http://192.168.174.141:50070/
yarn页面:http://hd1:8088/ 或者http://192.168.174.141:8088/
#停止集群命令:stop_dfs.sh和stop_yarn.sh或者stop_all.sh
以上Hadoop的集群搭建过程已大功告成!
三、安装搭建Spark集群
依赖环境:ScalaSpark是使用Scala编写的,用Scala编写Spark任务可以像操作本地集合对象一样操作分布式数据集RDD安装Scalla和安装jdk如出一辙的操作,我这里给出scala的下载地址:https://downloads.lightbend.com/scala/2.11.7/scala-2.11.7.tgz #安装完scala可以查看版本scala -version#这里重点介绍Spark的安装,相比于hadoop的安装要简单一些,而且步骤类似,话不多说,开始!#在hd1机器用hadoop用户先创建spark的目录cd /home/hadoop/appsmkdir sparkcd spark#下载spark安装包wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.2.2/spark-2.2.2-bin-hadoop2.7.tgz#解压tar -zxvf /spark-2.2.2-bin-hadoop2.7.tgz#重命名mv spark-2.2.2-bin-hadoop2.7 spark-2.2.2#修改环境变量vim /etc/profileexport SPARK_HOME=/home/hadoop/apps/spark/spark-2.2.2export PATH=$PATH:$SPARK_HOME/bin#重新加载环境source /etc/profile#修改配置文件cd /home/hadoop/apps/spark/spark-2.2.2/confmv spark-env.sh.template spark-env.shvim spark-env.sh#这里介绍两个spark的部署模式,一种是standalone模式,一种是spark on yarn模式,任选一种配置即可#1、standalone模式export JAVA_HOME=/opt/soft/java/jdk1.8.0_73#Spark主节点的IPexport SPARK_MASTER_IP=hd1#Spark主节点的端口号export SPARK_MASTER_PORT=7077#2、spark on yarn配置export JAVA_HOME=/opt/soft/java/jdk1.8.0_73export HADOOP_CONF_DIR=/home/hadoop/apps/hadoop/hadoop-2.7.7/etc/hadoop/#修改slaves文件cd /home/hadoop/apps/spark/spark-2.2.2/confvim slaveshd2hd3#复制hd1中的spark到hd2和hd3机器中cd /home/hadoop/apps/sparkscp -r spark-2.2.2/ hadoop@hd2:/home/hadoop/apps/sparkscp -r spark-2.2.2/ hadoop@hd3:/home/hadoop/apps/spark#配置环境变量:分别修改hd2,hd3环境变量或者直接将hd1上的/etc/profile文件复制到hd2和hd3上。vim /etc/profileexport SPARK_HOME=/home/hadoop/apps/spark/spark-2.2.2export PATH=$PATH:$SPARK_HOME/binsource /etc/profile#至此,Spark集群配置完毕,启动Spark集群。#启动spark集群前要先启动hadoop集群。#Spark集群启动cd /home/hadoop/apps/spark/spark-2.2.2/sbin./start-all.sh#测试Spark集群是否正常启动#在hd1,hd2,hd3分别执行jps,在hd1中显示:Master63124 Jps56310 NameNode56423 DataNode63064 Master56809 ResourceManager56921 NodeManager56634 SecondaryNameNode在hd2、hd3中显示:Worker18148 Jps16455 NodeManager16348 DataNode18079 Worker#测试spark-shell和页面cd /home/hadoop/apps/spark/spark-2.2.2/bin./spark-shell#访问页面地址:http://hd1:8080/ 或者:http://192.168.174.141:8080/
http://hd1:4040/jobs/ 或者 http://192.168.174.141:4040/jobs/
四、搭建完毕!
集群
配置
文件
环境
机器
数据
目录
变量
命令
页面
模式
节点
分布式
不同
两个
权限
框架
工作
迭代
公钥
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发英文求职信
入驻美团网络技术
一年级网络安全手抄报简短
网络安全讲座英语通知
二鸭网络技术简历
业界领先的网络安全提供商
oracle 本地数据库
电脑服务器怎么降温
罗布乐思服务器维修时间
用户可以从一个web服务器
小学网络安全活动作文
数据库检索精准匹配加什么
增长引擎网络技术有限公司靠谱吗
剑网三服务器更新不了
台湾服务器内陆延迟
迈瑞医疗校招研究生软件开发
网络安全芯片
网络安全员证书到哪考
我的世界客户端和服务器怎么用
nodejs 架设服务器
芯片设计公司的软件开发
台州招聘软件开发工程师
网络安全基线加固工作
sftp服务器
数据库查找最早日期
常熟创新软件开发专业服务
电子商务网络技术基础ppt
ktv网络技术员
魔兽世界服务器架设
什么软件做数据库前台