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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)