博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop3.0+spark2.0两台云服务器集群环境配置。
阅读量:3889 次
发布时间:2019-05-23

本文共 6978 字,大约阅读时间需要 23 分钟。

     最近买了一台云服务器(阿里云)来做web服务器,做的网站只是初步版本(),没人访问,觉得有些浪费。加上舍友也有一台云服务器(天翼云),并且最近在学spark,于是打算在这两台机器中搭建环境。这两台机器都是1核2g的,反正对于学习时足够了。

    在配置过程中我发现:我遇到的所有的bug,都是配置问题,尤其是简单的单词拼写的问题。如果你配置过程中有什么问题可以留言反馈。

    因为期间借鉴了太多博主的博客,就不一一感谢了。

     配置一共花费了一天半的时间,配置完成后,不想再去看书了,于是现在写一下总结。(自己有太多东西要学,又有太多东西要总结,?)

云主机:天翼云主机:hadoop1,阿里云主机:hadoop2

版本: ,hadoop3.1.1

名称      :

hadoop1:NameNode,DataNode;ResourceManager,NodeManager;Master,worker

hadoop2:DataNode;NodeManager;worker

1.购买云服务器:

如果买云服务器,最好要买一个厂商的一个地区的,这样可以通过局域网连接,会很方便。

好像除了百度云,其他的都有大学生优惠,买ecs就行,一年120左右,然后用cetnos7操作系统。初步通过官网登录,查找和更改自己的用户密码,以及操作系统用户密码,用来接下来的远程连接使用。有一切问题就问客服。

注意云服务器需要安全组配置来开放端口,我先把我用到的端口列举出来:

ssh使用22端口,买了之后就有的配置。

在hadoop1服务器开放此服务器端口

HDFS NameNode 50070 dfs.namenode.http-address http服务的端口
YARN ResourceManager 8088 yarn.resourcemanager.webapp.address http服务端口

还需要开放9000,8031端口。

在hadoop2需要开放的端口:9866端口。

 

2.下载xshell6

(有钱就支持正版啦),直接用ssh登录就行。注意使用ssh登录需要在服务器配置ssh协议,我这两台云主机开机就有ssh协议,不需要我自己再在服务器配置下载。使用工具还是挺方便的,尤其是支持复制粘贴。

3.配置各种环境注意两台机器路径最好是相同的,这样最简单。

配置的过程中可以多参考几个博客:,最好是参考官方文档。

先把全部的配置信息放到这里:注意另外一台也需要配置,可以使用scp命令传过去

vim /etc/profile

# java pathexport JAVA_HOME=/usr/lib/jvm/javaexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jarexport PATH=$PATH:$JAVA_HOME/bin#hadoop pathexport HADOOP_HOME=/usr/lib/hadoop-3.1.1export PATH=$PATH:$HADOOP_HOME/binexport SCALA_HOME=/usr/lib/scala-2.12.8export PATH=$PATH:$SCALA_HOME/binexport PATH=$PATH:/usr/lib/spark-2.4.0-bin-hadoop2.7/bin

注意每次配置好后使用 source /etc/profile   来让环境变量生效

先配置host环境变量:参考网址参考网址:,配置host文件,分别在两台服务器设置hadoop1和hadoop2对应ip。为什么这样做我也不太清楚,不过挺正确的。参照此网址进行到设置ssh免密码登录和关闭防火墙(云服务器防火墙默认是关闭的)。

参考这个来设置用户密码:即在一台服务器建立hadoop1用户,在另一台服务器新建hadoop2服务器。

A:JAVA(jdk1.8以上)和scala下载和环境配置:(hadoop需要java环境,spark需要scala环境),

通过yum或wget下载都行,因为教程太多了,自己百度。两种方式都可以,但是yum还是最简单的可以参考:

java:(通过yum安装,但是还是需要找到自己的路径配置环境变量,因为hadoop需要java环境路径,默认的yum安装到/usr/lib,从里面找到路径,配置一下就好了)或者这个更完善:

scala:。反正我在官网愣是没找到下载路径,?。

 

B:hadoop下载和环境配置:

其中的一个问题:。因为我就两台,所以使用的共存。

①:下载与解压

去官网

通过wget命令下载,如:wget  

再通过tar命令解压到指定目录 如:#tar -xzvf hadoop-3.0.0.tar.gz  /usr/lib  (我是都放在/usr/lib目录中了。)

②:配置环境变量。这个参考上面给的profile文件内容

③:配置hadoop配置文件:参考:

给出我的配置方式:/usr/lib/hadoop-3.1.1/etc/hadoop目录中

注意新建core-site.xml中的tmp.dir以及hdfs-site.xml中的路径。需要人为新建 hdfs文件夹,其中有data和name文件夹。还有pids和tmp文件夹。

1.hadoop-env.sh(设置hadoop pid文件路径和引入java路径)export HADOOP_PID_DIR=/bigdata/hadoop/pidsexport JAVA_HOME=/usr/lib/jvm/java2.core-site.xml 
fs.default.name
hdfs://hadoop1:9000
默认的HDFS端口,用于namenode与datanode之间的通讯,ip为namenode的地址
hadoop.tmp.dir
/lib/hadoop-3.1.1/tmp
存放hadoop文件系统依赖的基本配置
3.hdfs-site.xml:(设置name节点和data节点数据存放位置)
dfs.replication
1
副本个数,配置默认是3,应小于datanode机器数量
dfs.http.address
0.0.0.0:50070
dfs.namenode.name.dir
file:/usr/lib/hadoop-3.1.1/hdfs/name
dfs.namenode.data.dir
file:/usr/lib/hadoop-3.1.1/hdfs/data
4.yarn-env.sh:export JAVA_HOME=/usr/lib/jvm/java5.mapred-site.xml:
mapreduce.job.tracker
hdfs://hadoop1:8001
true
mapreduce.application.classpath
/lib/hadoop-3.1.1/etc/hadoop, /lib/hadoop-3.1.1/share/hadoop/common/*, /lib/hadoop-3.1.1/share/hadoop/common/lib/*, /lib/hadoop-3.1.1/share/hadoop/hdfs/*, /lib/hadoop-3.1.1/share/hadoop/hdfs/lib/*, /lib/hadoop-3.1.1/share/hadoop/mapreduce/*, /lib/hadoop-3.1.1/share/hadoop/mapreduce/lib/*, /lib/hadoop-3.1.1/share/hadoop/yarn/*, /lib/hadoop-3.1.1/share/hadoop/yarn/lib/*
mapreduce.jobhistory.address
hadoop1:10020
mapreduce.jobhistory.address
hadoop1:19888
6.yarn-site.xml(下面的配置是我出现问题是搜索到的解决办法)
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop1
yarn.resourcemanager.address
hadoop1:8032
yarn.resourcemanager.scheduler.address
hadoop1:8030
yarn.scheduler.minimum-allocation-mb
256
7.workers文件hadoop1hadoop2

这里有一个问题:在我的机器上的hdfs文件中的data文件夹里面是没有数据的,而在tmp文件夹的dfs文件夹中。不明白这是为什么。不过不影响使用。

④:将/usr/hadoop复制到其他服务器:scp -r /usr/lib/hadoop-3.1.1/etc/hadoop hadoop2:/usr/lib/hadoop-3.1.1/etc

⑤:格式化namenode: (注意配置了hadoop环境变量)   hadoop namenode -format

⑥:启动hdfs  去/usr/lib/hadoop-3.1.1/etc/hadoop/sbin目录中使用脚本

./start-all.sh

⑦:本机登录网址查看状态:注意已经开放了namenode云主机的50070端口,输入进入页面

输入: 进入yarn页面

控制台输入:jps命令可以查看到在hadoop1下有NameNode,DataNode;ResourceManager,NodeManager;

hadoop2下有DataNode;NodeManager;进程

如图:

安装完成后开始测试:

新建两个txt文件,用来作为计数的测试文本。文件内容随便写,比如我写的:

然后新建一个hdfs目录,hdfs dfs -mkdir /input

上传两个测试文件:hdfs dfs -put t1.txt /input

进入:/lib/hadoop-3.1.1/share/hadoop/mapreduce找到这次测试用的jar包:hadoop-mapreduce-examples-3.1.1.jar

然后通过命令运行:hadoop jar hadoop-mapreduce-examples-3.1.1.jar wordcount /input /output2

注意output2是不用新建的,而input需要之前建立好。

然后程序会运行。之后就会在output2文件夹中得到两个结果文件。

显示输出文件:

hadoop配置完成。?

如果有问题注意查看日志。

其他参考文档:

C:spark下载和环境配置:

spark和hadoop不是互斥的,spark既可以在自己集群下运行,也可以是spark on yarn运行

注意spark运行在yarn上时,就不需要开启spark集群,因为任务是交给yarn来调度转化为mapreduce来处理。

我配置了几天,还是无法解决spark不能运行在yarn上。请酌情参考。

vim  spark-env.sh 在最后添加

export JAVA_HOME=/usr/lib/jvm/javaexport SCALA_HOME=/usr/lib/scala-2.12.8export HADOOP_HOME=/usr/lib/hadoop-3.1.1export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexport HADOOP_CONF_DIR=/usr/lib/hadoop-3.1.1/etc/hadoopexport YARN_CONF_DIR=$HADOOP_HOME/etc/hadoopexport SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/nativeexport SPARK_MASTER_HOST=hadoop1export SPARK_LOCAL_IP=hadoop1# export SPARK_MASTER_PORT=7080export SPARK_EXECUTOR_CORES=1export SPARK_EXECUTOR_MEMORY=1024mexport SPARK_EXECUTOR_INSTANCES=1export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native#Spark的local目录export SPARK_LOCAL_DIRS=/usr/lib/spark-2.4.0-bin-hadoop2.7/local#worker目录export SPARK_WORKER_DIR=/usr/lib/spark-2.4.0-bin-hadoop2.7/work

再就是修改slaves

vim slaves

添加自己修改之后master的hostname和 worker 节点的 hostname

 

相关了解:

去官网通过wget命令下载,有遇到问题就根据日志内容来查找解决办法,

因为我试了很多种配置,没有办法使用公网ip来访问webUI,所以只能使用w3m来通过终端访问内网web。

先下载w3m:

下载完成后通过:w3m http://hadoop1:8080

可以看到有两个节点及其信息。

其中可能出现的问题:

spark集群启动后WorkerUI界面看不到Workers解决

先测试spark集群的可用性:

进入sbin文件夹启动集群./start-all.sh

jps查看启动集群:发现有了worker和master

在/lib/spark-2.4.0-bin-hadoop2.7位置执行

./bin/spark-submit   --class   org.apache.spark.examples.SparkPi   --master   spark://192.168.1.227:7077   examples/jars/spark-examples_2.11-2.4.0.jar

会出现

说明集群搭建可以使用。

 

其他的几种方法参考:

反正我电脑上是用不了,不管了。搞了3天了,恶心人。

相关阅读:

转载地址:http://bfihn.baihongyu.com/

你可能感兴趣的文章
SAP HANA index type
查看>>
SAP HANA SQL GROUP BY / ORDER BY / OVER / CASE
查看>>
gethostbyname和gethostbyaddr的用法
查看>>
IPv6和IPv4之间的通信机制和方法
查看>>
用syslog记录UNIX日志
查看>>
syslog(),openlog(),closelog()
查看>>
Ubuntu安装后的一些配置
查看>>
ubuntu9.10 tftp服务设置(这个绝对好使)
查看>>
关于UNIXDOMAIN协议的接收发送者验证
查看>>
I/O操作上设置超时之alarm闹钟法
查看>>
查看返回接收到UDP数据包的宿地址结构--(适用于LINUX和BSD系统)
查看>>
如何开启_GNU_SOURCE宏
查看>>
从网上搜索到的一些关于pcap源代码,入门级的
查看>>
Linux—— Posix IPC
查看>>
在ubuntu下安装ACE编译环境
查看>>
公司HR面试经常问的问题及回答思路
查看>>
ACE之反应堆学习(一)
查看>>
apache配置
查看>>
快速精通FRAME
查看>>
msf反弹木马之免杀
查看>>