zoukankan      html  css  js  c++  java
  • 大数据学习(一)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");
        }
    }

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    六大设计原则(一)
    .Net MVC 实现WebSocket
    Socket基础三
    Linux date命令的用法(转)
    SpringBoot自定义校验注解校验日期时间格式字符串
    前缀、中缀、后缀表达式
    什么是重放攻击,列举几种常见防御手段?
    09月13日总结
    09月12日总结
    09月11日总结
  • 原文地址:https://www.cnblogs.com/wenlin66/p/8398854.html
Copyright © 2011-2022 走看看