《大数据技术基础》上机一

1.编程实现以下指定功能,并利用Hadoop提供的Shell命令完成相同任务: (1)向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件;
#!/bin/bash

if [ -n $1 ]
then
    if [ -e $1 ]
    then
        if [ -n $2 ]
        then
            `hdfs dfs -test -e $2$1`
            if [ $? -eq 0 ]
            then
                `hdfs dfs -appendToFile $1 $2$1`
            else
                `hdfs dfs -put $1 $2$1`
            fi

        else
            echo "请指定上传到hadoop中的位置"
        fi
    else
        echo "$1 不存在"
    fi
else
    echo "请制定上传的文件"
fi

(2)从HDFS中下载指定文件,如果本地文件与要下载的文件名称相同,则自动对下载的文件重命名;
#!/bin/bash

if [ -n $1 ]
then
    `hdfs dfs -test -e $1`
    if [ $? -eq 0 ]
    then
        if [ -n $2 ]
        then
            n="(1)"
            file="downFromHdfs"
            while [ -e $file ]
            do
                file=$file"_"$n
            done
            `hdfs dfs -copyToLocal $1 $file`
        else
            n="(2)"
            file="downFromHdfs"
            while [ -e $file ]
            do
                file=$file"_"$n
            done
            `hdfs dfs -copyToLocal $1 $file`
        fi
    else
        echo "没有这个文件:$1"
    fi
else
    echo "请指定下载的文件"
fi
(3)将HDFS中指定文件的内容输出到终端中;
hdfs dfs -cat /test1.txt
(4)显示HDFS中指定的文件的读写权限、大小、创建时间、路径等信息;
hdfs dfs -ls /test1.txt
(5)给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息;
hdfs dfs -ls /
(6)提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录;
hdfs dfs -rm /test/text.txt #删除文件
hdfs dfs -mkdir /dir #创文件夹
hdfs dfs -touchz /dir/dir1/t.txt #创建文件
(7)提供一个HDFS的目录的路径,对该目录进行创建和删除操作。创建目录时,如果目录文件所在目录不存在则自动创建相应目录;删除目录时,由用户指定当该目录不为空时是否还删除该目录;
hdfs dfs -mkdir -p /dir/dir1 #递归创建文件夹
hdfs dfs -rmdir /dir #删除文件夹
hdfs dfs -rmr /dir #递归删文件夹
(8)向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾;
hdfs dfs -appendToFile append.txt /test1.txt #向结尾追加
#向开头追加
hdfs dfs -get /test1.txt
cat test1.txt >> append.txt
hdfs dfs -put -f append.txt /test1.txt
(9)删除HDFS中指定的文件;
hdfs dfs -rm /test1.txt
(10)删除HDFS中指定的目录,由用户指定目录中如果存在文件时是否删除目录;
hdfs dfs -mkdir -p /dir
(11)在HDFS中,将文件从源路径移动到目的路径。
hdfs dfs -mv /test1.txt /test2.txt

发表评论

电子邮件地址不会被公开。 必填项已用*标注