前言:
前面描述了Hadoop环境的搭建,本文将搭建单机环境下Hadoop的HDFS文件管理系统等。
一、修改配置文件
先来看一下Hadoop的目录结构
Hadoop的配置文件放在etc/Hadoop/下
1、修改core-site.xml,配置文件系统和数据存放目录
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://tommy01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/admin/app/hadoop-2.7.7/data/</value>
</property>
</configuration>
这里的value根据自己的系统去配置,我的主机名为tommy01,数据文件直接在hadoop目录下创建了一个data文件夹。
2、修改hdfs-site.xml
<configuration>
<property>
<name>dfs:replication</name>
<value>1</value>
</property>
</configuration>
这里是设置hdfs的数据块备份数,一般设置为3比较合理,此处为伪分布式,没有配置集群,设置为1个备份。
3、修改mapreduce-site.xml
在配置文件下只有 mapreduce-site.xml.template 文件,我们需要重命名为mapreduce-site.xml
<configuration>
<property>
<name>mapreduce.framework.name </name>
<value>yarn</value>
</property>
</configuration>
这里是指定使用什么框架去处理map和reduce任务。
4、修改yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>tommy01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置rosourceManager主机,配置shuffle处理机制。
5、修改hadoop的读取环境变量hadoop-env.sh
此处的JAVA_HOME最好写死。
6、以上配置完成之后,我们可以启动HDFS
6.1、 在启动之前先要格式化HDFS hadoop namenode -format;
6.2、关闭Linux系统的防火墙:service iptables stop;该命令只是本次生效,下次启动时防火墙依然存在,要想永久关闭可以使用 chkconfig iptables off
6.3、在hadoop/sbin下有许多运行文件,使用 start-dfs.sh来启动hdfs文件系统。
[admin@tommy01 hadoop-2.7.7]$ cd sbin/
[admin@tommy01 sbin]$ start-dfs.sh
19/08/28 00:57:12 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [tommy01]
tommy01: starting namenode, logging to /home/admin/app/hadoop-2.7.7/logs/hadoop-admin-namenode-tommy01.out
localhost: starting datanode, logging to /home/admin/app/hadoop-2.7.7/logs/hadoop-admin-datanode-tommy01.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /home/admin/app/hadoop-2.7.7/logs/hadoop-admin-secondarynamenode-tommy01.out
19/08/28 00:57:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[admin@tommy01 sbin]$
因为我配置了ssh免密登录,在没有配置的时候,要输入密码。现在NameNode,DataNode.SecondryNameNode都已经启动了,我们可以来看一下进程。
至此,HDFS文件系统已经启动了,下面来启动YARN
6.4、使用start-yarn.sh命令来启动yarn,启动之后,我们来看下进程
二、图形化界面
启动完成之后,我们可以登录到管理界面查看。http://<主机名>:50070
这个是hdfs的管理界面。前提是windonws的hosts文件做了主机名和IP映射。这里的主机名也可以直接写虚拟机IP,HDFS的默认端口是50070
访问http://<主机名>:8088
这个是Yarn的管理界面,至此,我们的HDFS和Yarn已经成功启动。
如果要停止的话可以使用stop-dfs.sh和stop-yarn.sh命令。
三:设置ssh免密登录
1、在用户的home文件夹之下,使用命令ssh-keygen -t rsa来生成公钥和私钥,需要按enter来进行同意。生成的密钥保存在.ssh文件夹下,这是一个隐藏文件夹,我们可以使用 ll -a查看
进入.ssh目录
这个就是我们的公钥
其中的authorized_keys 是系统的授权列表,只有授权列表中的公钥才能进行免密登录,因此,我们需要将公钥复制到集群中的其他机器上,如果其他机器上没有authorized_keys 文件夹,我们需要自己建立并修改文件权限
2、touch authorized_keys ;
chmod 600 authorized_keys ;
3、将公钥追加到授权列表
cat ../id_rsa.pub >> ./authorized_keys ;
4、或者使用ssh-copy-id <主机名>直接复制即可,该语句操作省略2、3两步。
总结:
伪分布式环境已经搭建起来了,后面将使用shell命令和JavaAPI来进行文件的操作。