03_HADOOP_02_HDFS伪分布式环境搭建
2019-08-18 本文已影响0人
超级小小张
三种搭建模式
- 单机模式:同一机器同一个进程不同线程启动NameNode,DataNode
- 伪集群模式:同一机器不同进程启动
- 集群模式:不同机器不同进程
本文只讲解伪集群模式和集群模式
安装前准备
- 将前面搭建的虚拟机还原到base快照
- 安装jdk:hadoop基于java开发,需要有jvm
- 安装ssh:用于免密登录
在home路径下的.ssh目录生成公钥和私钥
[root@node01 .ssh]# ssh-keygen -t dsa -P '' -f /root/.ssh/id_dsa
[root@node01 .ssh]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[root@node01 .ssh]# chmod 0600 ~/.ssh/authorized_keys
安装hadoop
1.上传解压hadoop-2.6.5.tar.gz包,配置hadoop的bin和sbin到path
vi /etc/profile
export JAVA_HOME=/opt/jdk1.8
export HADOOP_PREFIX=/opt/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
2.做JAVA_HOME的二次配置
因为在远程执行脚本到其他机器时,读取不到远程机器的/etc/profile里面的JAVA_HOME配置,而hadoop是基于java开发运行的,会导致$HADOOP_PREFIX/etc/hadoop/***-env.sh
执行报错。
修改$HADOOP_PREFIX/etc/hadoop/***-env.sh
里面所有关于JAVA_HOME的配置,改为绝对路径。
3.配置core-site.xml
<configuration>
<!-- 指定NameNode节点-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<!-- 修改hadoop.tmp.dir默认配置,否则会默认到/tmp下面,容易造成数据丢失,其他地方会引用这个配置,这个目录要么不存在,要么要为空-->
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop/local</value>
</property>
</configuration>
4.配置hdfs-site.xml
<configuration>
<!-- 配置文件副本数,伪分布式在一台机器上,所以必须改为1,否则启动会报错 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- 配置secondaryNameNode位置-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node01:50090</value>
</property>
</configuration>
5.配置slaves,dataNode位置
node01
6.格式化hdfs nameNode文件系统
hdfs namenode -format
7.启动hadoop
start-dfs.sh
8.访问node01:50070
nameNode首页
9.向hdfs上传一个文件
hdfs dfs -mkdir -p /user/root // 创建一个目录
hdfs dfs -put /opt/hadoop-2.6.5.tar.gz /user/root/ //上传本地文件文件到hdfs的/user/root目录
浏览HDFS文件系统
查看分块和所在的dataNode