Hadoop与spark集群安装

Hadoop与spark集群安装,第1张

jdk:jdk1.8.0

hadoop:hadoop-2.10.1

spark:spark-3.0.1

将jdk解压缩

之后在/etc/profile里面添加环境变量

注意每次都要source /etc/profile

解压Hadoop

并配置环境变量,将Hadoop的路径写入~/.bashrc

需要source ~/.bashrc

修改hostname,

sudo vim  /etc/hostname

修改hosts的名字

sudo vim  /etc/hosts

以下是master的hostname和hosts

slave1和slave2的hostname也需要改。

配置免密登录

ssh-keygen -t rsa      # 一直按回车就可以薯悉

cat ./id_rsa.pub >>./authorized_keys

需要修改Hadoop安装目录下/etc/hadoop中的5个配置文件。slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

<configuration>

<property>

                <name>fs.defaultFS</name>

                <value>hdfs://master:9000</value>

        </property>

        <property>

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

                <value>file:/home/zkx/hadoop-2.10.1/tmp</value>

                <description>Abase for other temporary directories.</description>

        </property>

</configuration>

这文件记录备份相关。我们有2个 slave 节点,因此可以将 dfs.replication 的值设为 2

<configuration>

<property>

                <name>dfs.namenode.secondary.http-address</name>

                <value>master:50090</value>

        </property>

        <property>

                <name>dfs.replication</name>

                <数拆乎value>2</value>

        </property>

        <property>

                <name>dfs.namenode.name.dir</name>

                <value>file:/home/zkx/hadoop-2.10.1/tmp/dfs/name</value>

        </property>

        <property>

                <name>dfs.datanode.data.dir</name>

                <value>file:/home/zkx/hadoop-2.10.1/tmp/dfs/data</value>

        </property>

</configuration>

如果是mapred-site.xml.template ,此时需要重命名

<configuration>

<property>

                <name>mapreduce.framework.name<御让/name>

                <value>yarn</value>

        </property>

        <property>

                <name>mapreduce.jobhistory.address</name>

                <value>master:10020</value>

        </property>

        <property>

                <name>mapreduce.jobhistory.webapp.address</name>

                <value>master:19888</value>

        </property>

</configuration>

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

                <name>yarn.resourcemanager.hostname</name>

                <value>master</value>

        </property>

        <property>

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

                <value>mapreduce_shuffle</value>

        </property>

</configuration>

先删除logs和tmp里的文件

之后压缩

tar -zcf ~/hadoop.master.tar.gz ./hadoop-2.10.1

使用scp命令发送到slave1和slave2

scp ./hadoop.master.tar.gz zkx@slave1:/home/zkx

之后解压

master节点格式化

hdfs namenode -format # 首次运行需要执行初始化,之后不需要

启动和结束脚本在sbin目录下

start-all.sh

mr-jobhistory-daemon.sh start historyserver #启动历史服务器

jps 查看master和slave

worker是spark的,不用参考

hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar pi 100 1000

结果如下

http://spark.apache.org/docs/latest/index.html

解压压缩包

目录如下

修改conf下的spark-env.sh

export SPARK_DIST_CLASSPATH=$(/home/zkx/hadoop-2.10.1/bin/hadoop classpath)

export JAVA_HOME=/home/zkx/jdk1.8.0_241

SPARK_MASTER_HOST=master

SPARK_MASTER_PORT=7077

修改slaves

之后将整个目录压缩,scp发送到slave上,解压

启动spark

./sbin/start-all.sh

之后打开浏览器输入maste的spark的URL,节点的端口是8080。

可以看到有三个worker

Spark的安装模式一般分为三种:1.伪分布模式:即在一个节点上模拟一个分布式环境,master和worker共用一个节点,这种模式一般用于早大开发和测试Spark程序;2.全分布模式:即真正的集群模式,master和worker部署在不同的节点之上,一般至少需要3个节点(1个master和2个worker),这种模式一般用于实际的生产环境;3.HA集群模式:即高可用集群模式,一般至少需要4台机器(1个主master,1个备master,2个worker),这种模式的优点是在主master宕机之后,备master会立即启动担任master的职责,可以保证集群高效稳定的运行,这种模式就是实际生产环境中多采用的模式。本小节来介绍Spark的全分布模式的安装和陆汪竖配置。

安装介质:

jdk-8u162-linux-x64.tar.gz 提取码:2bh8

hadoop-2.7.3.tar.gz 提取码:d4g2

scala-2.12.6.tgz 提取码:s2ly

spark-2.1.0-bin-hadoop2.7.tgz 提取码:5kcf

准备3台Linux主机,按照下面的步骤在每台主机上执行一遍,设置成如下结果:

安装Linux *** 作系统比较简单,这里不再详细。参考:《 Linux从入门到精通1:使用 VMware Workstation 14 Pro 安装 CentOS 7 详细图文教程 》

编辑hosts配置文件:# vi /etc/hosts,追加3行:

测试主机名是否可用:

(1)使用ssh-keygen工具生成秘钥对:

(2)将生成的公钥发给三台主机:master、slave1、slave2:

(3)测试秘钥认证是否成功:

由于各个主机上的时间可能不一致,会导致执行Spark程序出现异常,因此需要同步各个主机的时间。在实际生成环境中,一般使用时间服务器来同步时间,但是搭建时间服务器相对较为复杂。这里介绍一种简单的方法来快速同步每台主机主机的时间。我们知道,使用date命令可以设置主机的时间,因此这里使用putty的插件MTPuTTY来同时向每一台主机发送date命令,以到达同步时间的目的。

(1)使用MTPuTTY工具连接三台主机,点击MTPuTTY工具的Tools菜单下的“Send script…”子菜单,打开发送脚本工具窗口。

(2)输入命令:date -s 2018-05-28,然后回车(注意:一定要回车,否则只发送不执行),在下面服务器列表中选择要同步的主机,然后点击“Send script”,即可将时间同步为2018-05-28 00:00:00。

使用陵启winscp工具将JDK安装包 jdk-8u144-linux-x64.tar.gz 上传到/root/tools/目录中,该目录是事先创建的。

进入/root/tools/目录,将jdk安装包解压到/root/training/目录中,该目录也是事先创建的。

使用winscp工具将Hadoop安装包 hadoop-2.7.3.tar.gz 上传到master节点的/root/tools/目录中,该目录是事先创建的。

进入/root/tools/目录,将hadoop安装包解压到/root/training/目录中,该目录也是事先创建的。

进入Hadoop配置文件目录:

(1) 配置hadoop-env.sh文件:

(2) 配置hdfs-site.xml文件:

(3) 配置core-site.xml文件:

(4) 配置mapred-site.xml文件:

将模板文件mapred-site.xml.template拷贝一份重命名为mapred-site.xml然后编辑:

(5) 配置yarn-site.xml文件:

(6) 配置slaves文件:

将master上配置好的Hadoop安装目录分别复制给两个从节点slave1和slave2,并验证是否成功。

第一次启动需要输入yes继续。

启动成功后,使用jps命令查看各个节点上开启的进程:

使用命令行查看HDFS的状态:

使用浏览器查看HDFS的状态:

使用浏览器查看YARN的状态:

(1) 在HDFS上创建输入目录/input:

(2) 将本地数据文件data.txt上传至该目录:

(3) 进入到Hadoop的示例程序目录:

(4) 执行示例程序中的Wordcount程序,以HDFS上的/input/data.txt作为输入数据,输出结果存放到HDFS上的/out/wc目录下:

(5) 查看进度和结果:

可以通过终端打印出来的日志信息知道执行进度:

执行结束后可以在HDFS上的/out/wc目录下查看是否有_SUCCESS标志文件来判断是否执行成功。

如果执行成功,可以在输出目录下看到_SUCCESS标志文件,且可以在part-r-00000文件中查看到wordcount程序的结果:

由于Scala只是一个应用软件,只需要安装在master节点即可。

使用winscp工具将Scala安装包上传到master节点的/root/tools目录下:

进入/root/tools目录,将Scala安装包解压到安装目录/root/training/:

将Scala的家目录加入到环境变量PATH中:

使环境变量生效:

输入scala命令,如下进入scala环境,则证明scala安装成功:

我们先在master节点上配置好参数,再分发给两个从节点slave1和slave2。

使用winscp工具将Spark安装包上传到master节点的/root/tools目录下:

进入/root/tools目录,将Spark安装包解压到安装目录/root/training/下:

注意:由于Spark的命令脚本和Hadoop的命令脚本有冲突(比如都有start-all.sh和stop-all.sh等),

所以这里需要注释掉Hadoop的环境变量,添加Spark的环境变量:

按Esc:wq保存退出,使用source命令使配置文件立即生效:

进入Spark的配置文件目录下:

(1) 配置spark-env.sh文件:

(2) 配置slaves文件:

将master上配置好的Spark安装目录分别复制给两个从节点slave1和slave2,并验证是否成功。

启动后查看每个节点上的进程:

使用浏览器监控Spark的状态:

使用spark-shell命令进入SparkContext(即Scala环境):

启动了spark-shell之后,可以使用4040端口访问其Web控制台页面(注意:如果一台机器上启动了多个spark-shell,即运行了多个SparkContext,那么端口会自动连续递增,如4041,4042,4043等等):

注意:由于我们将Hadoop从环境变量中注释掉了,这时只能手动进入到Hadoop的sbin目录停止Hadoop:

Spark中常用的端口总结:

卸载节点一般不建议直接停掉,需要先将其排除在集群之外,在主节点上编辑配置文件:${HADOOP_HOME}/etc/hadoop/hdfs-site.xml

在datanode-deny.list中加入要卸载的节点名称,如:slave3

[图片上传失败...(image-268887-1589181513073)]

卸载节点后,刷新节点信息:

./bin/hdfs dfsdmin -refreshNodes会看到节点变晌闭棚成Dead和Decommissioned状态,如下图:

该命令执行后,同时会强制重新加载配置 ,在后台进行Block块的移动

[图片上传失败...(image-71d33c-1589181513074)]

卸载成功后,再停止节点:

./sbin/hadoop-daemon.sh stop datanode

./sbin/yarn-daemon.sh stop nodemanager

如果希望下次自动启动,修改集群中所有节点的slaves配置文件,具体目录 ${HADOOP_HOME}/etc/hadoop/slaves

首先准备一台hadoop节点,参考 hadoop、spark install

在hadoop子节点上,HADOOP_HOME目录下启动hdfs: ./sbin/hadoop-daemon.sh --config /usr/hadoop/hadoop-2.7.7/etc/hadoop/ start datanode

启动nodeManage(这个命令会确定其他子节点的nodeManage,可以把该节点的slaves文件中其他节点去掉): ./yarn-daemons.sh --config /usr/hadoop/hadoop-2.7.7/etc/hadoop/ start nodemanager

在主节点上刷新节点信息: ./bin/hdfs dfsadmin -refreshNodes;使用命令可以均衡数据:./sbin/start-balancer.sh

如下图,节点又重新加入了集群

[图片上传失败...(image-a892c6-1589181513074)]

如果希望下次自动启动,修改集群里机器的所有slaves配置文件,具体目录 ${HADOOP_HOME}/etc/hadoop/slaves

在想要去掉的节点上,SPARK_HOME 目录下执行 ./sbin/stop-slave.sh 即可去掉spark节点。这样 *** 作可以临时去掉spark节点,如果想永久去掉节点,需要在主节点的SPARK_HOME/conf/slaves 文件中去掉子节点

如图,原有三个spark节点

[图片上传失败...(image-50e48c-1589181513074)]

执行./sbin/stop-slave.sh 后,一台节点的状态变成了DEAD

[图片上传失败态漏...(image-c12af8-1589181513074)]

如果希望下次自动启动,修改集群里宴则机器的所有slaves配置文件,具体目录 ${SPARK_HOME}/conf/slaves

首先准备一台spark节点,参考 hadoop、spark install

在spark子节点上,SPARK_HOME 目录下执行 ./sbin/ start-slave.sh spark://<master>:7077,该子节点即可加入mster集群。

如图,扩容后,集群增加了子节点

[图片上传失败...(image-35bb79-1589181513074)]

如果希望下次自动启动,修改集群里机器的所有slaves配置文件,具体目录 ${SPARK_HOME}/conf/slaves

在要卸载的子节点上,HBASE_HOME/bin目录下,执行 ./graceful_stop.sh 子节点的hostname,即可卸载子节点。

该命令会自动关闭Load Balancer,然后Assigned Region,之后会将该节点关闭。除此之外,你还可以查看remove的过程,已经assigned了多少个Region,还剩多少个Region,每个Region 的Assigned耗时。

最终要在hbase shell 中关闭balance_switch :balance_switch false,然后再开启:balance_switch true

首先准备一台hbase节点,参考 hbase(2.0.0) install

在新的子节点 HBASE_HOME 目录下,执行 ./bin/hbase-daemon.sh start regionserver 启动节点

在主节点上编辑HBASE_HOME/conf/regionservers文件,增加新的子节点

在新的子节点上,打开hbase shell,执行 balance_switch true 开启集群自动balance.

hbase 本来有两个节点,如下图:

[图片上传失败...(image-182c39-1589181513074)]

增加新节点后变成了三个:

[图片上传失败...(image-991e21-1589181513074)]

参考:

https://blog.51cto.com/6738767/1943228?utm_source=oschina-app

https://blog.csdn.net/xgjianstart/article/details/78437374

http://www.023dns.com/server_ECS/4225.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12281914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存