Hadoop(二) -spark

(一)HDFS的基本操作

1.HDFS的相关命令

-mkdir            在HDFS创建目录    hdfs dfs -mkdir /data
-ls               查看当前目录      hdfs dfs -ls /
-ls -R            查看目录与子目录
-put              上传一个文件      hdfs dfs -put data.txt /data/input
-moveFromLocal    上传一个文件,会删除本地文件:ctrl + X
-copyFromLocal    上传一个文件,与put一样
-copyToLocal      下载文件  hdfs dfs -copyToLocal /data/input/data.txt 
-get              下载文件  hdfs dfs -get /data/input/data.txt 
-rm               删除文件  hdfs dfs -rm /data/input/data.txt 
-getmerge         将目录所有的文件先合并,再下载
-cp               拷贝: hdfs dfs -cp /data/input/data.txt  /data/input/data01.txt 
-mv               移动: hdfs dfs -mv /data/input/data.txt  /data/input/data02.txt 
-count            统计目录下的文件个数
-text、-cat       查看文件的内容  hdfs dfs -cat /data/input/data.txt 
-balancer         平衡操作

2.HDFS的Java API

(*)在HDFS上创建一个目录:
    依赖的jar包:
    /root/training/hadoop-2.7.3/share/hadoop/common/lib
    /root/training/hadoop-2.7.3/share/hadoop/common/
    
    /root/training/hadoop-2.7.3/share/hadoop/hdfs/lib
    /root/training/hadoop-2.7.3//share/hadoop/hdfs/
    (*)pom引入
           对于Hadoop2.x.x版本,需要引入4个jar:
            hadoop-common
            hadoop-hdfs
            hadoop-mapreduce-client-core
            hadoop-client

pom

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>2.7.3</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.7.3</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.7.3</version>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>2.7.3</version>
    </dependency>

FileOPerationc.class

package hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class FileOperation {

    public static void main(String[] args) throws Exception {
        //使用HDFS的API创建目录
        //设置NameNode地址
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS","hdfs://172.22.128.81:9000");//"fs.defaultFS","hdfs://172.22.128.81:9000"是在core-site.xml中配置的

        //得到hdfs的文件系统
        FileSystem fileSystem = FileSystem.get(conf);
//        fileSystem.mkdirs(new Path("/testFolder"));
        fileSystem.delete(new Path("/testFolder"),true);
    }
}

(二)spark

spark任务在集群中的调度过程

第一节:什么是Spark?Spark的特点和结构

1、什么是Spark?
   Spark是一个针对大规模数据处理的快速通用引擎。
   类似MapReduce,都进行数据的处理
   
2、Spark的特点:
    (1)基于Scala语言、Spark基于内存的计算
    (2)快:基于内存
    (3)易用:支持Scala、Java、Python
    (4)通用:Spark Core、Spark SQL、Spark Streaming
               MLlib、Graphx
    (5)兼容性:完全兼容Hadoop

3、Spark体系结构:主从结构
    (1)主节点:Master
    (2)从节点:Worker
第二节:搭建Spark的伪分布模式环境
1、解压:tar -zxvf spark-2.1.0-bin-hadoop2.4.tgz -C ~/training/
2、配置参数文件: conf/spark-env.sh
export JAVA_HOME=/root/training/jdk1.7.0_75
export SPARK_MASTER_HOST=192.168.88.11(也可替换成主机名bigdata11)
    export SPARK_MASTER_PORT=7077
    
    conf/slaves ----> 从节点的主机信息
    localhost --->  192.168.88.11(也可替换成主机名bigdata11)
    
3、启动Spark伪分布环境
    sbin/start-all.sh
    
   Spark Web Console: http://192.168.88.11:8080
     4、命令行两节并执行
        bin/spark-shell --master spark://192.168.88.11(或者是主机名bigdata11):7077

成功如图

test.txt

i love Beijing
Beijing is so beautiful

执行word Count Demo

sc.textFile("hdfs://192.168.88.11:9000/testdata/input/test.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

运行结果如下

res1: Array[(String, Int)] = Array((is,1), (love,1), (Beijing,2), (so,1), (i,1), (beautiful,1))

猜你喜欢

转载自www.cnblogs.com/qq-7895/p/11539812.html