大数据分布式平台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安全错误
数据库的锁怎样保障安全
桌面云服务器怎么防攻击
软件开发师的市场前景
福禄克网络技术小能手
软件开发学什么语言好
圣光之城服务器
安仁安卓软件开发待遇
湖南网络技术创新服务
财达证券委托服务器
吉刺网络技术有限公司
网络安全的盾牌怎么画
人人通互联网科技
国外品牌数据库的终端指的是什么
王者荣耀软件开发经验大会
技术升级为网络安全保驾护航
数据库中的标识图片
画网络安全画画
apple手机软件开发工具
光明区服务器机柜价格
it行业跟软件开发哪个好
网络安全宣传教育片
企业网络安全顶层设计
金华软件开发多少钱
人民共和国网络安全法规定
零基础怎么自学数学软件开发
服务器安装配置要注意些什么
丰润区信息网络技术服务至上
手机联网无法连接服务器
互联网加 科技立项
微空间服务器
网络安全管理的内容有哪些