知识体系:
一、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"); } }