大数据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认证安全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 当平台用户使用量少的时候我们可能不会在一集群安全功能的缺失,因为用户少,团 ...
随机推荐
- centos,fedora,ubuntu,opensuse感想
最先接触的是ubuntu,貌似身边同学用的最多,出了什么问题,网上解决方法也很多,但是后来学鸟哥私房菜,就按照他说的在实验室电脑装了一个centos,果然为服务器而生,稳定得很,界面朴素,装日常软件比 ...
- java继承成员函数特点
1 //成员函数. 2 /* 3 * 当子父类中出现成员函数一模一样的情况,会运行子类的函数. 4 * 这种现象,称为覆盖操作.这时函数在子父类中的特性. 5 * 函数两个特征: 6 * 1,重载. ...
- linux可用内存判断
free是完全没有占用的空闲内存,Available 减 free是操作系统为了优化运行速度拿来调用的内存, 程序需要的话操作系统会进行释放.所以一般看Available即可. free+buffer ...
- static关键字的一些使用
百度百科定义static关键字 通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例.在成员的声明前面加上关键字static(静态的)就能创建 ...
- Vue3源码分析之Diff算法
Diff 算法源码(结合源码写的简易版本) 备注:文章后面有详细解析,先简单浏览一遍整体代码,更容易阅读 // Vue3 中的 diff 算法 // 模拟节点 const { oldVirtualDo ...
- python 小兵面向对象
Python 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触过 ...
- 浅谈C#可变参数params
前言 前几天在群里看到群友写了一个基础框架,其中设计到关于同一个词语可以添加多个近义词的一个场景.当时群友的设计是类似字典的设计,直接添加k-v的操作,本人看到后思考了一下觉得使用c#中的params ...
- 「BalkanOI 2018 Day2」Parentrises
「BalkanOI 2018 Day2」Parentrises part1 显然可以直接贪心. 右括号记-1,左括号记1. 默认起始全部绿色,不染色. 策略如下: 从左往右扫,如果右括号个数大于左括号 ...
- C 字符串奇数位小写字母转大写
如题 C实现 #include<stdio.h> #include<string.h> #define COUNT 20 //最大接受字符串数,可以使用动态获取空间函数优化 v ...
- 懒加载--初步理解. by:王朋
懒加载(LazyLoad),又称为延迟加载. 举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要滑动 ...