大数据学习笔记~linux基础篇
Posted 南城、每天都要学习呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据学习笔记~linux基础篇相关的知识,希望对你有一定的参考价值。
记录我在学习大数据技术过程中的学习笔记
目录
f、linux高级命令(grep查找、sed编辑、awk分析)
一、学习目标
掌握Linux虚拟机的安装
掌握Linux中高级命令的使用
二、Linux虚拟机的安装配置
安装VMware软件
使用VMware安装配置Linux虚拟机
使用Xshell连接Linux虚拟机
在安装VMware之前需要打开电脑的虚拟化功能
在任务管理器-性能中可以看到是否开启了虚拟化功能
a、创建虚拟机、安装centos7(保姆级教程)
1、 打开VMware,点击创建虚拟机
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、
13、
14、
15、
16、
17、
18、
19、点进虚拟机,按上箭头,选择centos7,回车(ctrl + alt 可以释放鼠标输入)
20、
21、
22、
23、
24、
25、
26、
27、
28、
29、进度条满了后,点击reboot,重启
30、登录账户(输入密码时,密码是不显示的)ip addr 查看ip地址
b、使用克隆的方式创建Linux虚拟机
1、关闭刚才创建的虚拟机
2、右键-管理-克隆
3、
4、
5、 改名称和路径
6、
7、开启虚拟机
8、登录账号
9、查看ip地址 (ip addr)
c、使用Xshell连接Linux虚拟机
1、左上角-文件-新建
2、
3、确定
4、 5、双击连接
6、成功连接
三、Linux命令使用
a、文件相关的高级命令
1.vi:文件编辑利器
2.wc、uniq、sort、head:文件内容统计相关命令
b、vi命令
1.编辑文件内容
vi hello.txt
文件存在则编辑,文件不存在会自己创建文件后编辑
进入后,按i可编辑内容,按esc可退出编辑状态,输入 “:wq” 可保存
输入“:q”不保存退出,“:q!” 强制不保存退出
2.复制粘贴
将光标定位到需要复制的那一行,连续按两”y"
再在需要粘贴的地方,按一次“p”
3.查找字符串
在命令行模式下输入“\\要查找的字符串”,回车就可以查找了
4.快速删除
删除当前行:将光标定位在需要删除的哪一行,连续按两次“d”
删除当前行下的所有行:将光标定位在需要删除的很多行中的第一行
连续按3次“9”,在按2次“d”
5.查找某一行内容
在命令行模式下输入“:行号”,可以快速跳转到某行
在命令行模式下输入“set nu”,可以显示行号
6.快速跳到文件首行和末行
在命令行模式下,按大写的“G”,可以快速将光标移动到最后一行
光标移动到第一行:按两次小写的“g”
7.如果在编辑的时候,意外退出
会出现如下情况
解决办法:
1、找到这个临时文件,将它删除(默认会在原始文件一个目录中)
2、 问题解决
c、文件统计相关命令
1.wc命令的使用
wc -c 文件名 统计字节数量
wc -m 文件名 统计英文字符数量
wc -l 文件名 统计行数
wc -L 文件名 统计最长的一行有多少个字符
wc -w 文件名 统计单词个数,按空格切分的
2.uniq:检查重复的行列
uniq 文件名 对文件中连续重复的进行去重
uniq -c 文件名 对文件去重后且显示重复了几次
uniq -u 文件名 返回文件中不重复的行
sort 文件名 | uniq 排序后去重
| 管道,可以将前面的结果传给后面的命令
3.sort:排序
sort 按照第一个字符排序
sort -n 文件名 按照数值排序
sort -nr 文件名 按照数值逆序排序
sort -k 列数 -nr 文件名 根据文件中的第几列,逆序排序
4.head:取前n条数据
head -3 文件名 取前条数据
sort -nr 文件名 | head -3 取topn数据
d、日期相关命令
1.data:获取当前时间
2.格式化输出:date + "%Y-%m-%d %H:%M:%S"
3.获取前一天日期: date --date="1 days ago"
4.获取上一个月份中有多少天:date --date="2023-03-01 1 days ago" + %d
e、进程相关命令
1.ps:显示进程信息
ps -ef 显示所有进程信息
2.top:动态监控进程信息
top命令:主要作用在于动态显示系统消耗资源最多的进程信息;包括进程ID,内存占用,Cpu占用等
和ps命令作用基本相同,唯一的区别是top命令能够动态显示进程信息
3.netstat:显示端口信息
需要使用这个命令需要在线安装:yum install -y net-tools
netstat -anp
4.kill:杀掉进程
kill 端口号 杀掉进程,程序自己结束
kill -9 端口号 linux强制结束掉进程
5.jps:显示java进程信息
jps:类似ps命令,不同的是ps是用来显示所有进程信息而jps只显示Java进程信息
jps是显示当前用户已启动的Java进程信息,信息包括进程号和简短的进程command
jps是java提供的命令,只有在安装配置号java环境之后才能使用
f、linux高级命令(grep查找、sed编辑、awk分析)
1.grep 查找
grep 查找字符串 文件名 在文件中查找符合条件的字符串
grep 正则表达式 文件名 在文件中查找符合正则表达式的字符串
grep -i 查找的字符串 文件名 忽略大小写查找
grep -i 查找的字符串 -n 文件名 显示查找的字符串在第几行
grep -v 查找的字符串 除了查找的字符串不显示,其他都显示
2.sed 自动编辑
添加内容
sed '1a\\添加的内容' 文件名 在第一行后面添加内容
sed '1i\\添加的内容' 文件名 在第一行的前面插入内容
sed '$a\\添加的内容' 文件名 在最后一行后面添加内容
sed '1i\\添加的内容' 文件名 在最后一行的前面插入内容
删除内容
sed '1d' 文件名 删除第一行
sed ‘$d’ 文件名 删除最后一行
替换内容
sed [address]s/pattern/replacement/flags
address:表示指定要操作的具体行,是一个可选项
s:表示替换操作
pattern:指的是要替换的新内容
flags:有多种用法
第一种:就是flags可以表示1~512之间的任意一个数字,表示要指定替换的字符串在这一行中出现几次时才进行替换
第二种:就是flags可以直接表示为g,这样的意思就是对每一行所有匹配的内容全部进行替换
第三种:如果flags位置的值为空,则只会在第一次匹配成功时做替换操作
3、awk 分析
awk 'print $1' 文件名 打印第一行的内容
awk -F分隔符 ‘print $1’ 文件名 根据指定分隔符切割,打印第一行的内容
awk '($9 ~ /a/)print $1' 文件名 满足第九行数据等于a的数据打印第一行
大数据学习笔记~Hadoop基础篇
前言
记录我在学习大数据技术中的学习笔记
目录
一、Hadoop介绍
Hadoop适合海量数据分布式存储和分布式计算
Hadoop的作者是Doug Cutting ,Hadoop这个作者的孩子给他的毛绒象玩具起的名字
二、Hadoop发行版介绍
Apache Hadoop:官方版本,开源
Cloudera Hadoop(CDH):商业版本,对官方版本做了一些优化,提供收费的技术支持,提供界面操作,方便集群运维管理
HortonWorks(HDP):开源,提供界面操作,方便运维管理
建议在实际工作中搭建大数据平台时选择CDH或者HDP,方便运维管理
三、Hadoop核心架构发展历史
Hadoop1.x
MapReduce(分布式计算),HDFS(分布式存储)
Hadoop2.x
MapReduce,Others,YARN(资源管理),HDFS
Hadoop3.x
MapReduce,Others,YARN,HDFS
四、Hadoop三大核心组件介绍
Hadoop主要包含三大组件:HDFS+MapReduce+YARN
HDFS负责海量数据的分布式存储
MapReduce是一个计算模型,负责海量数据的分布式计算
YARN主要负责集群资源的管理和调度
五、Hadoop集群安装部署
a、伪分布式集群安装部署
伪分布式集群安装:使用一台Linux机器【建议在后续学习阶段使用伪分布式集群】
1.下载hadoop安装包
这里我使用的是hadoop3.2.0这个版本,下面是官网下载链接
2.设置静态ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
3、修改主机名
零时设置
hostname 主机名
永久设置
vi /etc/hostname
4.关闭防火墙
零时关闭
systemctl stop firewalld
查看防火墙状态
systemctl status firewalld
永久关闭
systemctl disable firewalld
5.ssh 免密登录
ssh-keygen -t rsa
一直回车就行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
登录时就不需要密码了
6.安装jdk
找到自己下载的jdk安装包,并通过Xshell上传至Linux中,解压jdk安装包
tar -zxvf jdk-8u202-linux-x64.tar.gz
重命名一下
mv jdk-8u202-linux-x64.tar.gz jdk1.8
配置环境
vi /etc/profile
在文件最后添加(后面的路径根据自己jdk所在位置)
xport JAVA_HOME=/data/soft/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH
重新加载一下,使环境变量生效
source /etc/profile
测试是否配置成功
java -version
7. 上传Hadoop安装包
8.解压Hadoop安装包
tar -zxvf hadoop-3.2.0.tar.gz
9.配置环境变量
vi /etc/profile
在文件最后面添加
10.修改配置文件
cd /data/soft/hadoop-3.2.0/etc/hadoop
vi hadoop-env.sh
在文件末尾添加
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://主机名:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>存放日志的路径</value>
</property>
</configuration>
vi hedf-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>副本数</value>
</property>
</configuration>
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>指定执行引擎</value>
</property>
</configuration>
vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>指定mapreduce计算框架</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
vi workers
将所有内容删除,改成自己的主机名
11.格式化hdfs
bin/hdfs namenode -format
12.修改启动脚本,添加用户信息
cd /data/soft/hadoop-3.2.0/sbin
vi start-dfs.sh
尽量加在文件上面点,因为后面的代码会使用到这些
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
vi stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
13.启动集群
start-all.sh
14.查看集群是否启动成功
jps
看到这6个进程则为启动成功
hdfs 服务 端口号 : 9870
可以通过浏览器来进行访问
主机IP:9870
yarn 服务 端口号:8088
可以通过浏览器来访问
主机IP:8088
15. 配置windos中ip映射
在最后添加
16.停止集群
stop-all.sh
b、分布式集群安装
使用三台Linux机器
master(主节点)
NamNode ,Secondary namenode ,Resource Manager
slave(从节点1)
DataNode ,NodeManage
slave(从节点2)
DataNode ,NodeManager
1.准备三台机器
通过克隆之前的bigdatao2,来创建第三台机器
更改第三台机器的ip地址
第二台机器的配置
更改ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
更改主机名
零时设置
hostname 主机名
永久设置
vi /etc/hostname
主机名
防火墙
零时关闭
systemctl stop firewalld
查看防火墙状态
systemctl status firewalld
永久关闭
systemctl disable firewalld
免密登录
ssh-keygen -t rsa
一直回车
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
解压jdk
tar -zxvf jdk安装包名
配置环境变量
vi /etc/profile
export JAVA_HOME=/data/soft/jdk1.8
export .:$JAVA_HOME/bin:$PATH
第三台机器的配置和第二台机器的配置是一样的
2.修改三台机器中的hosts文件
vi /etc/hosts
192.168.10.100 bigdata01
192.168.10.101 bigdata02
192.168.10.102 bigdata03
192.168.10.103 bigdata04
192.168.10.104 bigdata05
三台机器都要修改,内容都是一样的
3.同步三台机器的时间
yum install -y netdate
ntpdata -u ntp.sjtu.edu.cn
添加到定时任务中
vi /etc/crontab
* * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn
三台机器都要执行
4.主节点实现免密登录其他从节点
先拷贝到家目录下
到主节点
scp ~/.ssh/authorized_keys bigdata02:~/
scp ~/.ssh/authorized_keys bigdata03:~/
到从节点1
cat ~/authorized_keys >> ~/.ssh/authorized_keys
到从节点2
cat ~/authorized_keys >> ~/.ssh/authorized_keys
5.解压Hadoop安装包
tar -zxvf hadoop安装包名
6.修改Hadoop配置信息
/data/soft/hadoop-3.2.0/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://主节点主机名:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>日志目录</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>副本数</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata01:50090</value>
</property>
</configuration>
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>指定resourcemanager节点在那个机器上执行</value>
</property>
</configuration>
vi workers
bigdata02
bigdata03
修改启动脚本
vi start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
7.纷发Hadoop文件夹
scp -rq Hadoop文件名 bigdat02:/data/soft
scp -rq hadoop-3.2.0 bigdata03:/data/soft
8、格式化hdfs
hdfs namenode -format
9.启动集群
start-all.sh
10.关闭集群
stop-all.sh
c、Hadoop的客户端节点
在实际工作中不建议直接连接集群中的节点来操作集群,直接把集群中的节点暴露给普通开发人员是不安全的
建议在业务机器上安装Hadoop,这样就可以在业务机器上操作Hadoop机器了,此机器就称为Hadoop的客户端节点
以上是关于大数据学习笔记~linux基础篇的主要内容,如果未能解决你的问题,请参考以下文章