大数据学习笔记

这篇博客详细记录了大数据学习过程中涉及的Linux基础操作,包括查看系统信息、文件操作、权限管理、用户设置、软件安装等。此外,还介绍了shell脚本的执行方式,以及nginx、keepalived的安装配置。最后提到了JAVA、HADOOP和HIVE的环境变量配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大数据学习笔记

1.linux(Centos)基本操作

1. 查看系统基本情况
date 查看当前系统时间

2. 查看当前在线终端
who
3. 切换目录
cd
4. 创建文件夹
mkdir aaa
mkdir -p aaa/bbb/ccc
5. 删除文件夹
rmdir 删除空目录
rm -r aaa 删除整个文件夹及其所有的子目录及文件
rm -rf 强制删除aaa
6. 修改文件名称
mv aaa bbb
7. 创建文件
touch test.txt
echo “Hello World” > test.txt (利用重定向将一条指令的输出结果写入到一个文件中,会覆盖源文件)
echo “Hello World”>>test.txt(利用重定向将一条指令的输出结果追加到一个文件中,不会覆盖源文件)
用文本编辑器生成新文件
vi test.txt
vim test.txt
常用快捷键
a在光标的后一位开始插入
A在该行的最后插入
大写I 在该行最前面插入
gg 跳到行首
G跳到行尾
o 跳到该行下一行输入
yy复制当前行 p粘贴
dd删除当前行
ctrl+v块选择模式
shift+v行选择模式
查找替换
%s/需要替换内容
*/替换为***
/test 查找文件中test出现的位置**

more 翻页查看文件
head 查看文件头十行 可用选项选择行数
tail 查看文件尾部十行
tail- f 实时查看文件尾部(根据文件iNode)
tail -F实时查看文件尾部(根据文件名)
less 随意翻阅文件

8. 修改文件权限
chomod 777 test.txt 给文件赋予 所有权限 -rwxrwxrwx
chmod -R 777 test/ 给目录及以下所有文件赋予权限
chown test:test aaa.txt 只有root才能执行,将aaa.txt文件所属用户和所属组 更改为test

基本用户设置
添加用户
useradd test
passwd test (需要设置密码后才能登录)

sudo设置斜体样式
使用roo账户更改/etc/sudoers文件
插入
test ALL=(ALL) ALL
使test用户具有sudo权限 来执行系统级别命令

9. 查看系统信息
uname -a
uname -r
10. mount 挂载
mkdir /mnt/cdrom 创建挂载点
mount -t iso 9660 -o rw /dev/cdrom /mnt/cdrom

umount /mnt/cdrom 取消挂载

11. 查看文件大小
du -h
du -sh
12. 查看分区
df -h
13. ssh(安全外壳协议)连接
ssh username@ip
拷贝文件
scp FileName username@ip:/tmp 拷贝本机文件xx到远程服务器tmp目录下

将公钥发送到指定服务器进行ssh免密登录
ssh-copy-id ip

14. 虚拟机克隆后网卡操作
删除 eth0 网卡文件中UUID hwaddress
删除 /etc/udev/rules.d/70-persistent-net.rules
重启机器reboot

添加网卡:

复制本机网卡文件eth0 更名为eth1,删除其中的UUID和hwaddrss

15. 软件安装
gzip test.txt (压缩)
gzip -d test.txt.gz (解压)
tar -c 创建
-v 显示过程
-f 指定文件
-x提取
-z gz格式
ex: tar -zcvf test.tar.gz t1.txt t2.txt t3.txt (打包多个文件并压缩成gz格式)
tar -zxvf test.tar.gz -C (指定解压目标目录)解压并提取test.tar.gz文件

rpm安装软件
rpm -ivh test.rpm
rpm -ql test 查看安装的软件所生成的文件
rpm -qf 根据生成的文件反查软件包
rpm -e test 删除软件
which +command命令找出该命令绝对路径

yum 软件仓库
yum install vsftpd 安装软件
yum remove vsftpd 删除软件
yum list 列出软件安装情况
yum search vsftpd 搜索软件
编辑/etc/yum.repo/test.repo
[iso]
name=iso
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0

追加/etc/fstab 添加挂载信息
/dev/sr0 /mnt/iso iso9660 defaults 0 0

mount -a

  1. 安装JDK
    添加环境变量
    修改/etc/profile
    追加 export JAVA_HOME=/root/app/jdk***
    export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
    source /etc/profile (加载环境变量)

shell脚本

1. shell脚本的执行方式

第一种 输入脚本的绝对路径或相对路径需要给shell文件赋予x权限
/root/test.sh
./test.sh
不赋予x权限需要使用sh test.sh执行
第二种 bash 或sh +脚本
sh /root/test.sh
sh test.sh
第三种 在脚本的路径前再加"."
./root/test.sh
. ./test.sh
区别:第一种和第二种会新开一个bash,不同bash中的变量无法共享

shell中的变量

  1. linux shell中的变量分为"系统变量"和"用户自定义变量",可以通过set命令查看系统变量
  2. 系统变量 H O M E , HOME , HOME,PWD , S H E L L , SHELL, SHELL,USER等
  3. set命令显示系统中所有变量

定义变量的规范
4. 变量=值(A=hello)
5. 等号两侧不能有空格
6. 变量名称一般习惯为大写
7. 双引号和单引号有区别,双引号仅将空格脱意,单引号会将所有特殊字符脱意
8. unset A撤销变量
9. export A 可把变量提升为全局环境变量供其他shell程序使用

将命令的返回值赋给变量
A=ls -ls 反引号,运行里面的命令,并把结果返回给变量A
A=$(ls -la)等价于反引号

Shell中的特殊变量
$?表示上一个命令退出的状态 (0,代表执行成功)
$$表示当前进程编号
$0表示当前脚本名称
$n表示位置变量(n代表数字,n>=1)
$#表示参数的个数,常用于循环
∗ 和 *和 @都表示参数列表 ( ∗ 与 *与 @区别 ∗ 和 *和 @都表示传递给函数或脚本的所有参数,不被双引号包含时都以 $1 $2 2 的 形 式 输 出 所 有 参 数 , 当 它 们 被 双 引 号 包 含 时 , " 2 的形式输出所有参数, 当它们被双引号包含时," 2,,"*“会将所有的参数作为一个整体,以”$1 $2 3 " 的 形 式 输 出 所 有 参 数 " 3"的形式输出所有参数 " 3""@“会将各个参数分开以”$1","$2","$3"的形式输出所有参数

运算符
格式 :expr m+n 或$((m+n))注意expr运算符间要有空格
例如计算(2+3)*4
1,分布计算
S=expr 2+3
expre $s * 4
2,一步完成计算
expr expr 2+3*4
echo expr \expr 2+3`*4`
或 $(((2+3)*4))
for循环
第一种
for N in 1 2 3
do
echo $N
done

for N in 1 2 3;do echo $N;done

for N in{1…3};done echo $N;done

第二种
for ((i=0;i<=5;i++))
do
echo “welcome $i times”
done

for((i=0;i<=5;i++));do echo “welcome $i times”;done

while循环
while expression
do
command

done

while [ 2 -gt 1] ;do echo aaa ;done

第二种
int=1
while((int<=3))
do
echo $int
let int++
done

case语句
case $1 in
start)
echo “Starting”
;;
stop)
echo “Stoping”
;;
*)
echo “Usage:{start|stop}”
esac

read命令
read -p(提示语句) -n(字符个数) -t(等待时间) read -p"please input your name: " NAME
echo NAME 查看输入的值)

判断符号 转载自https://blog.csdn.net/u014285882/article/details/40479141

  1. 判断式

test命令用于检测文件类型和比较值。
判断文件是否存在:
[work@www sh]$ test -e file.txt && echo “exist” || echo “not exist”
not exist
[work@www sh]$

检查文件类型:
-e 文件是否存在 test -e filename
-f 文件是否存在,且为文件 file
-d 文件是否存在,且为目录 directory
-b 文件是否存在,且为block device设备
-c 文件是否存在,且为character device设备
-S 文件是否存在,且为Socket文件
-p 文件是否存在,且为FIFO(pipe)文件
-L 文件是否存在,且为连接文件

检查文件权限
-r 文件是否存在,且可读权限
-w 文件是否存在,且可写权限
-x 文件是否存在,且可执行权限
-u 文件是否存在,且具有SUID属性
-g 文件是否存在,且具有SGID属性
-k 文件是否存在,且具有 Sticky bit 属性
-s 文件是否存在,且为 非空白文件

两个文件比较
-nt newer than 判断file1是否比file2新
test file1 -nt file2
-ot older than 判断file1是否比file2旧
-ef 判断是否为同一文件,可用在判断hard link上,判定两个文件是否指向同一个inode

两个整数的判断
-eq equal 相等, test n1 -eq n2
-ne not equal 不相等
-gt greater than 大于
-lt less than 小于
-ge greater than or equal 大于等于
-le less than or equal 小于等于

判定字符串
test -z string 判断字符串是否为0, string为空,返回true, test -z string
test -n string 判断字符串是否非为0, string 为空, 返回false, -n可省略
test str1 = str2 是否相等
test str1 != str2 是否不相等

多重条件
-a 同时成立,and , test -r file -a -x file : file同时具有rx权限时,返回true
-o 任意一个成立, or
! 取反

如下:
#!/bin/bash

test -e pass && echo “file exist”

test -f pass && echo “regular file”

test -d pass && echo “directory”

  1. 判断符号[]
    []空返回返回false
    常用 [ condition ] && echo yes || echo no

判断符号[] 的使用同test基本一样。
[]里面每个组件都需要用空格分隔。
变量最好用引号包围。
#!/bin/bash

name=“Bill gates”

[ “$name” == “bill gates” ]

echo $?

if判断
if condition
then
statements
[elif condition
then statements …]
[else
statements]
fi
[ condition ] (注意condition前后要有空格)
#非空返回true,可使用$?验证(0为true >1 为false)

高级文本处理命令
wc -l /etcpassword 统计行数
-w 统计单词出现次数
-m 统计文件字符数

(剪切)cut -d(分隔符) ’ ’ -f(第几列) filename
(排序)sort -t(分隔符) ’ ’ -k(key 第几列) -3n[r] filename (第三列按顺序排序)

sed ‘2d’ filename --输出删除test文件第二行
sed -i ‘2d’ filename 删除第二行
sed ‘2, ′ f i l e n a m e 删 除 第 二 行 到 末 尾 所 有 行 s e d ′ ' filename 删除第二行到末尾所有行 sed ' filenamesed’ filename 删除最后一行
sed '/test’d filename 删除存在test的行
sed ‘s/test/test2/g’ filename 将文件中所有test替换为test2

awk命令
last -n 5 | awk ‘{print $1}’(查看第一列数据)
cat /etc/passwd | awk -F ‘:’ ‘{print $1"\t"$7}’ (使用:分隔符查看第一列及第七列数据)

nginx安装

将包解压到 /usr/local/src/nginx-1.8.1
进入源码目录
检查安装环境
./configure --prefix=/usr/local/nginx
缺包报错
使用yum 安装
yum install -y gcc pcre-devel openssl openssl-devel

编译安装
make&&make install
/usr/local/nginx/sbin/nginx -s reload 重新载入配置文件
/usr/local/nginx/sbin/nginx (启动nginx服务)
/usr/local/nginx/sbin/nginx -s stop (关闭服务)
/usr/local/nginx/sbin/nginx -s reopen(重启服务)

keepalived安装

keepalived.org 下载
将keepalived 解压到/usr/local/src下
进入软件目录
./configure --prefix=/usr/local/keepalived
编译安装make && make install

将keepalived添加到系统服务中
拷贝执行文件
cp /usr/local/keepalived/sbin/keeplived /usr/sbin
将init.d文件拷贝到/etc下加入开机启动项
cp /usr/local/keeplived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
mkdir /etc/keepalived
拷贝配置文件到/ETC目录
cp /usr/local/keeplived/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig
添加到开机自启服务
chkconfig --add keepalived
chkconfig keepalived on

JAVA安装环境变量配置

在/etc/profile中追加如下:
JAVA_HOME的位置自行选择

export JAVA_HOME=/usr/local/java
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

最后执行source /etc/profile

HADOOP环境变量配置

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

HIVE环境变量配置

export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值