【知识积累】大数据旅程-搭建HDFS伪分布式

一、免秘钥

1、生成秘钥

ssh-keygen -t dsa -P '' -f /root/.ssh/id_dsa
-t:类型
-P:密码
-f:文件生成路径(公钥)

2、对自己免密钥

ls -a:显示隐藏文件
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh root@node01

二、JDK配置环境(rpm安装)

1、查看JDK状态

java -version
jps

2、修改/etc/profile文件,并添加内容:

export JAVA_HOME=/usr/java/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin(windows拼接是分号,linux是冒号)

3、加载/etc/profile文件

三、配置Hadoop

1、解压Hadoop-2.6.5.tar

tar -xcf hadoop-2.6.5.tar.gz

2、配置环境变量(记得加载profile文件)

vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3、二次配置JDK,避免远程登录时不加载profile文件的问题

vi hadoop-env.sh
export JAVAHOME=/usr/java/jdk1.7.0_67

vi mapred-env.sh(d$:删除当前光标到行尾的内容)
export JAVAHOME=/usr/java/jdk1.7.0_67

vi yarn-env.sh
export JAVAHOME=/usr/java/jdk1.7.0_67

TIPS:不需要手动执行,因为是管理脚本,使用时会加载配置。

4、配置NameNode

http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

etc/hadoop/core-site.xml(NameNode):
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node01:9000</value>
    </property>

etc/hadoop/hdfs-site.xml(副本数):
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

5、配置DateNode

vi salves

6、配置hadoop临时目录

http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml

发现NameNode元数据和DataNode数据的存放目录都指向${hadoop.tmp.dir}

而${hadoop.tmp.dir}指向的是linux的临时目录,当空间不够时,linux内核自动清理。

解决方案:

修改etc/hadoop/core-site.xml
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/hadoop/local</value> #空的,不需要手动创建
    </property>

 

7、配置SecondaryNameNode

http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

etc/hadoop/hdfs-site.xml:
     <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node01:50090</value>
    </property>

8、格式化NameNode

hdfs namenode -format

9、查看NameNode的clusterID(用于心跳汇报时校验)

cd /var/hadoop/local/dfs/name/current/
cat VERSION

10、启动

start-dfs.sh
查看日志:依次启动NN、DN、SNN,并定义了相应的日志文件目录。

11、查看目录

cd /var/hadoop/local/dfs/

TIPS:

会出现name和data目录,如果是完全分布式,NN启动那台机器只有name,DN那台机器只有data,当然你那台机器配置SNN,那么也会出现namesecondary。

12、查看DataNode的clusterID(用于心跳汇报时校验)

cd /var/hadoop/local/dfs/data/current/
cat VERSION

TIPS:

开始NN初始化,创建VERSION文件,DN是没有VERSION,NN启动后,DN启动时,DN和NN交互回来同样的VERSION文件,如果NN再次初始化,重新生成了VERSION文件,clusterID改变了,DN还是原来的clusterID,那么DN会直接退出进程。

13、图形化界面

http://node01:50070

查看NameNode

查看DataNode

14、查看HDFS相关命令

TIPS:
dfs - run a filesystem command on the file systems supported in Hadoop. 
在Hadoop支持的文件系统上运行文件系统命令。意思就是在HDFS中维护了一些命令,帮助你操作(增删查改)这些文件。

15、创建HDFS的家目录

hdfs dfs -mkdir -p /user/root

16、存文件到HDFS的家目录/user/root

hdfs dfs -put hadoop-2.6.5.tar.gz /user/root

17、Block信息

18、自定义Block大小为1M(默认Hadoop 1.0是64M,Hadoop 2.0是128M)

http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

准备一个文件

for i in `seq 100000`; do echo "hello world $i" >> temp.txt; done

保存文件

hdfs dfs -D use value for given property >> 使用给定参数的值
hdfs dfs -D dfs.blocksize=1048576 -put temp.txt

查看文件

19、查看Block数据

在DataNode目录下查找Block Pool ID

TIPS:
一共8个目录文件,每个Block有一个元数据文件,取文件Block时用来校验。此时是存了两个文件,一共四个块。
1073741829和1073741830是temp.txt文件的块,另外两个是压缩包的块。


TIPS:
HDFS切割是按字节的

20、停止HDFS

stop-dfs.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值