大数据Hadoop-Spark集群部署知识总结(一)
大数据Hadoop-Spark集群部署知识总结
一、启动/关闭 hadoop
myhadoop.sh start/stop
分步启动:
第一步:在hadoop102主机上 sbin/start-dfs.sh
第二步:在hadoop103主机上 sbin/start-yarn.sh
分步关闭:
第一步:在hadoop103主机上 sbin/stop-yarn.sh
第二步:在hadoop102主机上 sbin/stop-dfs.sh
myhadoop.sh脚本文件内容
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
二、启动/关闭 zookeeper
myzk.sh start/stop
分步启动/关闭:
bin/zkServer.sh start
bin/zkServer.sh stop
myzk.sh脚本文件内容
for host in hadoop102 hadoop103 hadoop104
do
case $1 in
"start")
ssh $host "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh $1"
echo "$host zk is running..."
echo "-----------------------------"
;;
"stop")
ssh $host "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh $1"
echo "$host zk is stopping..."
echo "-----------------------------"
;;
*)
echo '输入有误!'
;;
esac
done
三、启动Hbase
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
bin/hbase-daemon.sh stop master
bin/hbase-daemon.sh stop regionserver
bin/start-hbase.sh
bin/stop-hbase.sh
四、常见端口号总结
50070:HDFSwebUI的端口号
8485:journalnode默认的端口号
9000:非高可用访问数rpc端口
8020:高可用访问数据rpc
8088:yarn的webUI的端口号
8080:master的webUI,Tomcat的端口号
7077:spark基于standalone的提交任务的端口号
8081:worker的webUI的端口号
18080:historyServer的webUI的端口号
4040:application的webUI的端口号
2181:zookeeper的rpc端口号
9083:hive的metastore的端口号
60010:Hbase的webUI的端口号
6379:Redis的端口号
8087:sparkwebUI的端口号 sbin/start-master.sh 文件可以修改端口号,默认是8080,我改为8081
9092:kafka broker的端口
五、启动Hive
- 启动metastore hive --service metastore
- 启动hiveserver2 bin/hive --service hiveserver2
- 启动hive (/opt/module/hive):bin/hive
hive建表:
create table test1
(InvoiceNo String, StockCode String, Description String, Quantity String, InvoiceDate String, UnitPrice String, CustomerID String, Country String)
ROW format delimited fields terminated by ',' STORED AS TEXTFILE;
导入数据:
load data local inpath '/opt/module/data/test.csv' into table test1;
sqoop导出到mysql:
bin/sqoop export \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 000429 \
--table sale \
--num-mappers 1 \
--export-dir /user/hive/warehouse/sale \
--input-fields-terminated-by ","
sqoop导入到hive:
bin/sqoop import \
> --connect jdbc:mysql://hadoop102:3306/company \
> --username root \
> --password 123456 \
> --table staff \
> --num-mappers 1 \
> --hive-impo
> --fields-terminated-by "\t" \
> --hive-overwrite \
> --hive-table 数据库名.staff_hive
sql建表:
USE `company`;
CREATE TABLE `sale1` (
`day_id` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`sale_nbr` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`cnt` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL,
`round` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `sale2` (
`day_id` varchar(50) COLLATE utf8_bin DEFAULT NULL,
`sale_nbr` varchar(50) COLLATE utf8_bin DEFAULT NULL,
`cnt` varchar(50) COLLATE utf8_bin DEFAULT NULL,
`round` varchar(50) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
六、Spark
- 安装Spark后配置 classpath
$ cd /usr/local/spark
$ cp ./conf/spark-env.sh.template ./conf/spark-env.sh #拷贝配置文件
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath) 这个路径是hadoop的安装路径
- local模式启动spark: ./bin/spark-shell
安装sbt
vim ./sbt
启动脚本文件内容如下:
#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M" java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"增加可执行权限命令: chmod u+x ./sbt
simple.sbt文件内容(注意版本号和名字)
name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"
七、配置Spark集群
- 主机环境变量
vim ~/.bashrc
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
$ source ~/.bashrc
- 从机环境变量
$ cd /usr/local/spark/
$ cp ./conf/slaves.template ./conf/slaves
把默认内容localhost替换成如下内容:
hadoop103
hadoop104
- 配置spark-env.sh
- 注意SPARK_MASTER_IP 要填自己的主机IP地址
- SPARK_DIST_CLASSPATH和HADOOP_CONF_DIR 都是主机的hadoop路径
$ cp ./conf/spark-env.sh.template ./conf/spark-env.sh
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=192.168.1.104
- 分发到从机(待分发的路径最好已经建立好且是空的)
cd /usr/local/
tar -zcf ~/spark.master.tar.gz ./spark
cd ~
scp ./spark.master.tar.gz hadoop103:/home/hadoop
scp ./spark.master.tar.gz hadoop104:/home/hadoop
在从机上进行如下操作:
sudo rm -rf /usr/local/spark/
sudo tar -zxf spark.master.tar.gz -C /usr/local
sudo chown -R 用户名 /usr/local/spark
八、测试运行
- 首先启动hadoop集群
- 启动spark的主机节点
$ cd /usr/local/spark/
$ sbin/start-master.sh
- 启动spark的从机节点
$ sbin/start-slaves.sh
打开浏览器输入 http://[主机名]:8087
注意端口号冲突问题:
可以在启动的脚本文件里修改WEBUI端口号:也就是在sbin/start-master.sh中修改端口号!
九、关闭退出
- 关闭spark主机
sbin/stop-master.sh
- 关闭Worker从机
sbin/stop-slaves.sh
- 关闭hadoop集群
补充命令:
- cp命令:cp 源文件 目标文件(夹)
负责把一个源文件复制到目标文件(夹)下。如下图所示,复制到文件夹下,则文件名保持不变,复制到文件中,则文件名变更。如果目标文件已经存在或目标文件夹中含有同名文件,则复制之后目标文件或目标文件夹中的同名文件会被覆盖。
- cp -r 命令 :复制源文件夹到目标文件夹下
命令格式为:cp -r 源文件夹 目标文件夹
mv 命令:用来移动文件或者将文件改名
格式:mv [选项] 源文件或目录 目标文件或目录
选项:
-b 若需覆盖文件,则在覆盖文件前先进行备份
-f 强制覆盖,若目标文件已存在同名文件,使用该参数时则直接覆盖而不询问
-i 若目标文件已存在同名文件,则提示询问是否覆盖
-u 若目标文件已存在需移动的同名文件,且源文件比较新,才会更新文件
-t 指定mv的目标目录,改选项使用于移动多个源文件到一个目录的情况,此时目标文件在前,源文件在后chmod
sudo chmod -(代表类型)×××(所有者)×××(组用户)×××(其他用户)
0 [000] 无任何权限
4 [100] 只读权限
6 [110] 读写权限
7 [111] 读写执行权限sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
chown (选项)(参数)
选项 描述
-c或——changes 效果类似“-v”参数,但仅回报更改的部分;
-f或–quite或——silent 不显示错误信息;
-h或–no-dereference 只对符号连接的文件作修改,而不更改其他任何相关文件;
-R或——recursive 递归处理,将指定目录下的所有文件及子目录一并处理;
-v或——version 显示指令执行过程;
–dereference 效果和“-h”参数相同;
–help 在线帮助;
–reference=<参考文件或目录> 把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
–version 显示版本信息。
当只需要修改所有者时,可使用如下 chown 命令的基本格式:
[root@localhost ~]# chown [-R] 所有者 文件或目录
如果需要同时更改所有者和所属组,chown 命令的基本格式为:
[root@localhost ~]# chown [-R] 所有者:所属组 文件或目录
大数据Hadoop-Spark集群部署知识总结(一)的更多相关文章
- Hadoop记录-Apache hadoop+spark集群部署
Hadoop+Spark集群部署指南 (多节点文件分发.集群操作建议salt/ansible) 1.集群规划节点名称 主机名 IP地址 操作系统Master centos1 192.168.0.1 C ...
- 大数据:spark集群搭建
创建spark用户组,组ID1000 groupadd -g 1000 spark 在spark用户组下创建用户ID 2000的spark用户 获取视频中文档资料及完整视频的伙伴请加QQ群:9479 ...
- 大数据学习——Kafka集群部署
1下载安装包 2解压安装包 -0.9.0.1.tgz -0.9.0.1 kafka 3修改配置文件 cp server.properties server.properties.bak # Lice ...
- 大数据-hadoop HA集群搭建
一.安装hadoop.HA及配置journalnode 实现namenode HA 实现resourcemanager HA namenode节点之间通过journalnode同步元数据 首先下载需要 ...
- hadoop+spark集群搭建入门
忽略元数据末尾 回到原数据开始处 Hadoop+spark集群搭建 说明: 本文档主要讲述hadoop+spark的集群搭建,linux环境是centos,本文档集群搭建使用两个节点作为集群环境:一个 ...
- 朝花夕拾之--大数据平台CDH集群离线搭建
body { border: 1px solid #ddd; outline: 1300px solid #fff; margin: 16px auto; } body .markdown-body ...
- Hadoop分布式集群部署(单namenode节点)
Hadoop分布式集群部署 系统系统环境: OS: CentOS 6.8 内存:2G CPU:1核 Software:jdk-8u151-linux-x64.rpm hadoop-2.7.4.tar. ...
- Hadoop教程(五)Hadoop分布式集群部署安装
Hadoop教程(五)Hadoop分布式集群部署安装 1 Hadoop分布式集群部署安装 在hadoop2.0中通常由两个NameNode组成,一个处于active状态,还有一个处于standby状态 ...
- CDH构建大数据平台-配置集群的Kerberos认证安全
CDH构建大数据平台-配置集群的Kerberos认证安全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 当平台用户使用量少的时候我们可能不会在一集群安全功能的缺失,因为用户少,团 ...
随机推荐
- golang中channel讲解
1. 无缓冲通道 2. 有缓冲通道 有缓冲通道特点:当channel已经满,在向里面写数据就会阻塞,当channel已经为空,在从里面读数据就会阻塞. 3. 关闭channel package mai ...
- gin中multipart/urlencoded表单
package main import ( "github.com/gin-gonic/gin" ) func main() { router := gin.Default() r ...
- 集合框架-工具类-Arrays方法介绍
1 package cn.itcast.p3.toolclass.arrays.demo; 2 3 import java.util.Arrays; 4 5 public class ArraysDe ...
- 微信小程序入门教程之四:API 使用
今天是这个系列教程的最后一篇. 上一篇教程介绍了,小程序页面如何使用 JavaScript 脚本.有了脚本以后,就可以调用微信提供的各种能力(即微信 API),从而做出千变万化的页面.本篇就介绍怎么使 ...
- db2服务器linux的cache过高原因
在线上db2数据库服务器,使用的linux操作系统(RHEL,centos),当db2数据库运行一段时间之后,操作系统的物理内存就趋近于0,同时系统的cache暴增,但是use却不高,下面是正常使用 ...
- Django ORM 多对多操作 使用聚合函数和分组 F查询与Q查询
创建表 # models.py form django.db import models class Book(models.Model): # 表名book,django会自动使用项目名+我们定义的 ...
- Mac 常用的 20 款效率神器推荐
01.IntelliJ IDEA -- JetBrains 系列产品 02.GoLand -- JetBrains 系列产品 03.Alfred 04.Google Chrome 05.iTerm2 ...
- PyTorch 介绍 | BUILD THE NEURAL NETWORK
神经网络由对数据进行操作的layers/modules组成.torch.nn 命名空间提供了所有你需要的构建块,用于构建你自己的神经网络.PyTorch的每一个module都继承自nn.Module. ...
- Git简单多人协作
感谢廖雪峰老师,引自他的Git教程. Git简单多人协作 首先,可以试图用git push origin <branch-name>推送自己的修改: 如果推送失败,则因为远程分支比你的本地 ...
- HTML横向二级导航
图片素材没有发,就一个logo还有一个Nav背景图. 效果 HTML <!DOCTYPE html> <html lang="zh-cn"> <hea ...