第一课记录 Java编程基础+Linux基础+行业前景

本文详细介绍如何在Oracle Linux R6环境下安装配置Hadoop与Spark所需的Linux基础与JDK环境,涵盖防火墙关闭、主机名与IP设置等关键步骤,并探讨大数据处理的核心问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8月12号


一、安装Linux和JDK: hadoop在Linux

        1、版本:Oracle Linux R6
        2、Linux知识:基本操作
        3、注意;
                (1)虚拟机的版本
                (2)内存:大于1G才有图形界面
                        笔记本电脑的内存:至少8G
                (3) 网络类型:仅主机模式 ----> 确定网关的IP
                        以太网适配器 VMware Network Adapter VMnet1: 192.168.88.1(首选)
                (4) linux的类型:图形界面 ---> Desktop

        4、配置Linux:安装Hadoop和Spark的前提
                (1)关闭防火墙
                        service iptables status  防火墙的状态
                        service iptables stop    关闭
                (2)设置主机名和IP的关系: bigdata11 ---> 192.168.88.11
                          vi /etc/hosts
                         192.168.88.11 bigdata11
        5、安装JDK:
                   tar -zxvf jdk-7u75-linux-i586.tar.gz -C ~/training/

                设置JAVA_HOME,path
                vi ~/.bash_profile
			JAVA_HOME=/root/training/jdk1.7.0_75
			export JAVA_HOME

			PATH=$JAVA_HOME/bin:$PATH
			export PATH
                生效:source ~/.bash_profile

二、Linux vi编辑器(Linux记事本)

        模式:
                1、命令模式
                2、插入模式
                3、编辑模式

三、为什么学习大数据: Hadoop和Spark  ----> Java基础

        1、学习前提:必须有Java基础(不需要Java EE,不需要数据库)
        2、什么是大数据?核心问题?
                讲义:商品推荐、天气预报
                        (1)大数据的存储  ----> 分布式文件系统  ----> HDFS: hadoop distributed file system
                        (2)大数据的计算  ----> 分布式计算(Google MapReduce)  ----> 计算模型:MapReduce

四、Java基础:序列化和输入输出

        1、需要Java的哪些知识:class、反射、泛型、输入输出
        2、Java序列化 : Serializable接口  该类的对象可以作为输入和输出的对象
                  JDBC:Hadoop会用、Spark也会用

                  Hadoop(MapReduce)的序列化:Writable接口  该类的对象可以作为Map和Reduce的输入和输出
   

五、(扩展)留一个问题?DeadLock.java ---> 产生一个死锁

        (*) 如果java产生了死锁,怎么找到死锁?---> Thread Dump




public class DeadLock {

	final Object lockA = new Object();
	final Object lockB = new Object();
	
	public static void main(String[] args) {
		DeadLock demo = new DeadLock();
		demo.startLock();
	}
	
	public void startLock(){
		ThreadA a= new ThreadA(lockA,lockB);
		ThreadB b= new ThreadB(lockA,lockB);
		
		//start threads
		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 {
				sleep(3000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			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 {
				sleep(3000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			synchronized (lockA) {
				System.out.println("*** Thread B: ***: Lock A" );
			}
		}	
		
		System.out.println("*** Thread B: ***: Finished" );
	}
	
}




























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值