大数据学习之路:Linux基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haimianjie2012/article/details/86484056

1.Linux基础

putty远程连接工具,winSCP文件传输工具。

基本操作:

一、linux的实验环境

Linux操作系统,RedHat 7.4 64位

Vmware 12

网卡:仅主机模式,集群通信的时候需要这个模式,其实NAT也可以用于集群通信,这里就用仅主机模式。

一共用到五台虚拟机

bigdata111~bigdata115

在vmware12下安装RedHat 7.4 64位操作系统

二、配置Linux和Linux目录

远程工具:putty,Xshell

1.关闭防火墙

一般生产系统,不能关闭防火墙,实验环境

ctrl+L:清屏

systemctl stop firewalld.service

systemctl disable firewalld.service

如何重启了防火墙,怎样永久关闭防火墙

2.设置主机名和IP地址的对应关系:

vi /etc/hosts

192.168.8.115 bigdata115

ls /

/代表跟目录

bin:存放所有可执行二进制文件

etc:存放系统配置文件

dev:存放设备文件

3.tmp:一旦linux重启后,数据就会删除。

HDFS默认的数据保存目录是Linux的tmp目录,所以配置时一定要改一下这个参数。

三、vi编辑器

linux记事本,vi a.txt,如果不存在创建,如果存在则打开。

三种模式:

1.编辑模式:等待命令输入,i:进入插入模式;

2.插入模式:输文本数据,esc键

3.命令模式:在编辑模式下输入:号则进入命令模式。

w,保存

wq保存退出

wq!强制保存退出

q退出

打开行号:set number

set nonumber

换行:set wrap          set nowrap

四、文件目录操作命令(**)

ls:查看文件 -l 详细文件信息 -a隐藏文件

.bash_profile:设置环境变量,环境变量设置在.bash_profile

/当前用户/.bash_profile只针对当前用户有效,如/root/.bash_profile

JAVA_HOME、HADOOP_HOME

隐藏目录:/root/.ssh  配置免密码登录(hadoop和spark),.ssh中的公钥和私钥。

HDFS中查看目录和文件:hdfs dfs -ls /    查看HDFS的根目录

mkdir 创建目录

   -p父目录不存在情况下生产父目录

约定:mkdir /root/tools   ----------->安装包

          mkdir /root/training  --------------->安装目录

HDFS上:hdfs dfs -mkdir /input

cd:切换目录

touch:生成一个空文件

(*)echo:生成一个带内容文件,使用echo查看环境变量的值

echo $JAVA_HOME

cat、tac显示文本文件内容

cat:从第一行开始写;tac从最后一行开始写

查看HDFS文件的内容:hdfs dfs -cat /input/data.txt

cp:复制文件或目录

cp a.txt b.txt,a拷贝为b.txt

HDFS: hdfs dfs -cp a.txt  b.txt

rm:删除文件  -r同时删除该目录下的所有文件   -f:强制删除文件或目录

HDFS:hdfs dfs -rmr /input/data.txt

在默认情况下,HDFS没有开启回收站,如果误删了回收站找回。

ps:查看后台进程的状态

ps -ef 使用标准格式显示每个进程信息

redis查看服务的实例:ps -ef |grep redis-server

kill杀死一个进程

参数:-9强制杀死

-3 JAVA进程,打印java进程的线程信息thread dump

打包:*.tar.gz

安装需要解压解包

tar:文件目录打包解包

五、LInux的权限管理

权限分为三种:r读,w写,x执行

ls -l或者ll

d

第一位:d目录,-表示文件

后面九位:

分成三组:每一组都是读写执行的权限,第一组代表当前用户对当前文件;第二粗代表同组用户,针对当前文件的权限;第三组为其他人。

改变权限:如果有权限当前位标识为1,没有则为0。110,rw-对应的二进制,三个二进制数字。

chmod 777 文件名

当前用户所有权限,同组用户可读可写,其他人可读

chmod 764 文件名

HDFS:改变文件或者目录的权限

hdfs dfs -chmod 764 /input/data.txt

hadoop讲义,HDFS的用户权限管理。

六、安装常用软件

JDK,

tar -zxvf jdk-8u102-linux-x64.tar.gz -C /root/training/
设置环境变量:

vi ~/.bash_profile

JAVA_HOME=/root/training/jdk1.8.0_144
export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH
生效环境变量:

source ~/.bash_profile

查看环境变量:

echo $JAVA_HOME

java -version

七、案例JAVA的死锁

死锁或者产生了性能的瓶颈,如何分析,分析的手段是什么?

(1)DeadLock.java

死锁就是线程的互相等待。
[root@bigdata115 temp]# javac DeadLock.java
[root@bigdata115 temp]# ls
DeadLock.class  DeadLock.java  ThreadA.class  ThreadB.class
[root@bigdata115 temp]# java DeadLock
*** Thread A: ***: Lock A
*** Thread B: ***: Lock B
(2)java程序性能分析之thread dum和heap dump

heap dump分析OOM的问题,OOM:内存溢出,分析谁产生了内存溢出。

thread dump:分析性能瓶颈(线程信息)

得到Thread dump

(*)在linux:kill -3 PID

which jps:

jps把当前机器上的JAVA进程包括进程号打印出来。

[root@bigdata115 ~]# which jps
/root/training/jdk1.8.0_102/bin/jps
[root@bigdata115 ~]# jps
2705 DeadLock
2836 Jps
[root@bigdata115 ~]# kill -3 2705


Java stack information for the threads listed above:
===================================================
"Thread-1":
        at ThreadB.run(DeadLock.java:68)
        - waiting to lock <0x00000000c285c948> (a java.lang.Object)
        - locked <0x00000000c285c958> (a java.lang.Object)
"Thread-0":
        at ThreadA.run(DeadLock.java:41)
        - waiting to lock <0x00000000c285c958> (a java.lang.Object)
        - locked <0x00000000c285c948> (a java.lang.Object)

Found 1 deadlock.
如果是在windows上:按ctrl+break(fn+B)

猜你喜欢

转载自blog.csdn.net/haimianjie2012/article/details/86484056