大数据学习(一)linux基础

 知识体系:

一、Linux基础

二、Hadoop的背景知识与起源

三、搭建Hadoop环境

四、Apache Hadoop的体系结构

五、HDFS

六、MapReduce

七、MapReduce编程案例

八、NoSQL数据库之:HBase

九、数据分析引擎之:Hive

十、数据分析引擎之:Pig

十一、数据采集引擎:Sqoop和Flume

十二、集成管理工具:HUE

十三、Hadoop HA的实现和HDFS的联盟

十四、NoSQL数据库之:Redis

十五、实时处理框架:Apache Storm


第一章、Linux基础

一、Linux的实验环境
(*)版本:RedHat 7.4 64位 自带netcat服务器(测试:Spark Streaming)
(*)VM:12
(*)类型:Redhat Linx 7 64位
(*)网卡:仅主机模式
(*)一共5台虚拟机:安装JDK、配置主机名、关闭防火墙
192.168.157.11 bigdata11
192.168.157.12 bigdata12
192.168.157.13 bigdata13
192.168.157.14 bigdata14
192.168.157.15 bigdata15

二、配置Linux和Linux的目录结构


1、对Linux了解
2、关闭防火墙
查看防火墙的状态:systemctl status firewalld.service
关闭防火墙: systemctl stop firewalld.service
禁用防火墙(永久)systemctl disable firewalld.service

3、设置主机名 (配置文件) /etc/hosts
vi /etc/hosts

192.168.157.11 bigdata11

三、vi编辑器:相当于linux的记事本


三种模式:
1、编辑模式:等待命令的输入
按i--> 进入:插入模式
按:(冒号)进入命令模式

2、插入模式: 按esc键回到编辑模式

3、命令模式
(*) w: 保存
(*) q: 退出
(*) wq: 保存退出
(*) 打开行号:set number
关闭行号: set nonumber
(*) 换行: set wrap
set nowrap

四、文件目录操作命令(重点掌握:后面操作HDFS的时候,很方便)

(*)ls 显示文件和目录列表
-l 列出文件的详细信息
-a 列出当前目录所有文件,包含隐藏文件

隐藏文件:.bash_profile 设置环境变量:JAVA_HOME、HADOOP_HOME
隐藏目录:.ssh ----> 配置Hadoop和Spark的免密码登录

查询Hadoop的中文件:hdfs dfs -ls /

(*)当前目录:pwd
/root ---> root用户的HOME目录(快捷方式: ~)

(*)mkdir 创建目录
-p 父目录不存在情况下先生成父目录

约定:mkdir /root/tools ---> 所有的安装包
mkdir /root/training ---> 安装目录

在Hadoop中创建目录:hdfs dfs -mkdir /aaa

(*)cd 切换目录

(*)touch 生成一个空文件
echo 生成一个带内容文件 ----> 更常用的用法:查看环境变量
echo $JAVA_HOME

(*)cat、tac 显示文本文件内容
cat是从第一行开始写;tac是从最后一行开始写
举例: cat a.txt
查看Hadoop中文件的内容: hdfs dfs -cat /a.txt

(*)cp 复制文件或目录
cp a.txt data.txt

在Hadoop中拷贝数据: hdfs dfs -cp /a.txt /b.txt

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

rm -rf a.txt
在Hadoop中删除文件:hdfs dfs -rmr /a.txt

(*)kill:杀死
参数: -9 强制杀死
-3

(*)tar命令:打包压缩

五、Linux的权限管理(Hadoop的HDFS权限非常像)
1、权限的类型:r 读
w 写
x 执行

2、使用ls -l或者ll命令查看权限


六、安装常用软件:安装JDK的时候,讲讲tar命令
tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/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

七、案例:Java的死锁分析 ---> 介绍一个工具(kill -3 的命令)
目的:找到死锁 性能诊断
Java提供了一个非常强大的性能诊断工具:Thread Dump(文本信息)

使用 jps 命令查看java进程
1、Linux:kill -3 PID(就是Java的进程号)

2、Windows: 按ctrl+break(fn+B)键

java死锁代码:

package DeadLock;

public class DeadLock {
    final Object lockA = new Object();
    final Object lockB = new Object();
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        DeadLock dl = new DeadLock();
        dl.startLock();
    }
    public void startLock(){
        ThreadA a = new ThreadA(lockA,lockB);
        ThreadB b = new ThreadB(lockA,lockB);
        
        a.start();
        b.start();

        
    }
}
class ThreadA extends Thread{
    private Object lockA=null;
    private Object lockB=null;
    
    public ThreadA(Object a,Object b){
        this.lockA=a;
        this.lockB=b;
    }
    public void run(){
        synchronized(lockA){
            System.out.println("*** Thread A: ***: Lock A");
            try {
                Thread.sleep(3000);
            } catch (Exception e) {
                // TODO: handle exception
            }
            synchronized(lockB){
                System.out.println("*** Thread A: ***: Lock B");    
            }
        }
        System.out.println("*** Thread A: ***: Finished");
    }
}
class ThreadB extends Thread{
    private Object lockA=null;
    private Object lockB=null;
    
    public ThreadB(Object a,Object b){
        this.lockA=a;
        this.lockB=b;
    }
    public void run(){
        synchronized(lockB){
            System.out.println("*** Thread B: ***: Lock B");
            try {
                Thread.sleep(3000);
            } catch (Exception e) {
                // TODO: handle exception
            }
            synchronized(lockA){
                System.out.println("*** Thread B: ***: Lock A");    
            }
        }
        System.out.println("*** Thread A: ***: Finished");
    }
}

 

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/wenlin66/p/8398854.html