大數據學習(一)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"); } }
大數據學習(一)linux基礎