HDFS 是 Hadoop 的分布式文件系统,HDFS 中的文件在物理上是分块(block)存储的,块的大小可以通过配置参数( dfs.blocksize)来规定。在 Hadoop 2.x 版本中默认大小是 128M,一般将 1M 的文件定义为碎片文件,该类文件如果需要存储到 HDFS 中的话,需要合并成一个大文件存储在 HDFS 中的一个块中,这样可以节约存储空间。

准备Java环境

拖包

安装JDK

[root@localhost ~]# tar zxf jdk-8u201-linux-x64.tar.gz  
[root@localhost ~]# mv jdk1.8.0_201/ /usr/local/java
[root@localhost ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre/
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
[root@localhost ~]# rm -rf /usr/bin/java
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

准备HDFS环境

配置ssh

[root@localhost ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
Generating public/private dsa key pair.
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:sGKKSSHZ74cp0OJPT5APHuZOqSFAYDpzwy3bjp4v88Q root@localhost.localdomain
The key's randomart image is:
+---[DSA 1024]----+
|..               |
|++ .             |
|*o* . .          |
|o=.*.  o         |
|+.o*= . S        |
|+=+B*+           |
|+o+*Eo.          |
|..X+o.           |
| .oBo.           |
+----[SHA256]-----+

复制公钥文件为authorized_keys认证文件

[root@localhost ~]# cat ./.ssh/id_dsa.pub >> ./.ssh/authorized_keys

安装Hadoop

创建目录并进入

[root@localhost ~]# mkdir -p /data/hadoop && cd $_

下载Hadoop安装包

[root@localhost hadoop]# wget http://archive.apache.org/dist/hadoop/core/hadoop-2.7.1/hadoop-2.7.1.tar.gz

解压安装包

[root@localhost hadoop]# tar zxf hadoop-2.7.1.tar.gz

解压后的目录重命名为hadoop,并移动到/usr/local

[root@localhost hadoop]# mv hadoop-2.7.1 /usr/local/hadoop

修改hadoop环境配置文件

[root@localhost ~]# vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# 将export JAVA_HOME=${JAVA_HOME}修改为:
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk

查看版本

[root@localhost hadoop]# /usr/local/hadoop/bin/hadoop version
Hadoop 2.7.1
...

修改hadoop配置

因为是在单机下部署的Hadoop,所以将它配置为伪分布式模式

创建测试使用的目录

[root@localhost ~]# cd /usr/local/hadoop/
[root@localhost hadoop]# mkdir -p tmp dfs/name dfs/data

修改core-site.xml配置文件

[root@localhost hadoop]# vim etc/hadoop/core-site.xml
# 在<configuration></configuration>中间添加以下
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

修改hdfs-site.xml配置文件

[root@localhost hadoop]# vim etc/hadoop/hdfs-site.xml
# 在<configuration></configuration>中间添加以下
    <property>    
        <name>dfs.replication</name>    
        <value>1</value>    
    </property>    
    <property>    
        <name>dfs.namenode.name.dir</name>    
        <value>file:/usr/local/hadoop/dfs/name</value>    
    </property>    
    <property>    
        <name>dfs.datanode.data.dir</name>    
        <value>file:/usr/local/hadoop/dfs/data</value>    
    </property>    
    <property>
        <name>dfs.permissions</name>    
        <value>false</value>    
    </property>   

修改yarn-site.xml配置文件

[root@localhost hadoop]# vim etc/hadoop/yarn-site.xml
# 在<configuration></configuration>中间添加以下
    <property>  
        <name>mapreduce.framework.name</name>  
        <value>yarn</value>  
    </property>  

    <property>  
        <name>yarn.nodemanager.aux-services</name>  
        <value>mapreduce_shuffle</value>  
    </property>  

启动Hadoop

格式化HDFS文件系统

[root@localhost ~]# cd /usr/local/hadoop/bin/
[root@localhost bin]# ./hdfs namenode -format
...
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1
************************************************************/

启动Hadoop

[root@localhost bin]# cd ../sbin/
# 中途需要输入两次yes
[root@localhost sbin]# ./start-dfs.sh
[root@localhost sbin]# ./start-yarn.sh

验证是否启动,显示以下则成功

[root@localhost sbin]# jps
84691 NameNode
85513 Jps
84810 DataNode
85242 NodeManager
84973 SecondaryNameNode
81391 Bootstrap
85119 ResourceManager

访问:http://192.168.1.1:50070/explorer.html#/

HDFS

存储碎片文件

准备碎片文件

创建存放碎片文件的目录

[root@localhost ~]# mkdir -p /data/file && cd $_

创建碎片文件

[root@localhost file]# i=1; while [ $i -le 99 ]; do name=`printf "test%02d.txt"  $i`; touch "$name"; i=$(($i+1)); done

将碎片文件存储在HDFS中

创建HDFS中的碎片文件存放目录

[root@localhost ~]# /usr/local/hadoop/bin/hadoop fs -mkdir /dest

此时可以访问http://192.168.1.1:50070/explorer.html#/dest

但是什么都没有

上传碎片文件

在上传之前,我们需先创建 HDFS 用户组 supergroup,然后将 root 用户添加到该组中,否则会因权限问题页报告异常。

[root@localhost ~]# groupadd supergroup
[root@localhost ~]# usermod -a -G supergroup root
[root@localhost ~]# /usr/local/hadoop/bin/hadoop fs -put /data/file/*.txt /dest

查看碎片文件是否上传成功

[root@localhost ~]# /usr/local/hadoop/bin/hadoop fs -ls /dest
Found 99 items
...

现在访问http://192.168.1.1:50070/explorer.html#/dest

HDFS_hadoop

成功!!

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0