1 下载hadoop
下载hadoop的时候直接去apache官网进行下载,这个地址下可以下载apache的所有项目。我这里使用的是最新的稳定版2.9.1。然后解压。
2 配置
根据hadoop官网介绍进行配置
2.1 hadoop的jdk配置
需要修改hadoop配置文件hadoop-env.sh。执行命令vim hadoop-env.sh之后进入编辑页面。主要是修改将配置文件中的JAVA_HOME修改为自己的jdk安装目录。
export JAVA_HOME=/usr/java/jdk1.7.0_80
配置完之后可以执行下bin/hadoop命令,查看时候会出现命令提示如下图
bin/hadoop命令执行结果
2.2 单机模式
该模式下只需要配置了jdk就可以了,不需要进行其他操作。如需要进行测试可以参考hadoop官网介绍进行测试
2.3 伪分布式配置
这里需要修改两个配置文件
2.3.1 etc/hadoop/core-site.xml
这里的etc不是根目录下的etc,是hadoop下的配置文件路径etc,请不要搞混。
该配置文件是hadoop的核心配置文件,修改后如图:
配置内容为
<!-- 制定HDFS的NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://itcast01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/itcast/hadoop-2.9.1/tmp</value>
</property>
2.3.2 etc/hadoop/hdfs-site.xml
这个配置文件是hdfs的配置文件,修改后如图:
hdfs配置文件
配置内容为:
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
到这里hadoop的伪分布已经配置完毕,但是呢hadoop的yarn还没有进行配置,没有了yarn感觉hadoop失色很多。
2.4 yarn的单机配置
2.4.1 etc/hadoop/mapred-site.xml
mapreduce的配置文件,该文件是不存在的,需要将模板文件重命名,执行命令mv mapred-site.xml.template mapred-site.xml,修改后如图:
mapreduce配置文件
配置内容:
<!-- 指定mapreduce运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
2.4.2 etc/hadoop/yarn-site.xml
yarn配置文件,这里只是单节点的配置。修改后如图
yarn配置文件
配置内容:
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>itcast01</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3 启动
3.1 将hadoop命令加入环境变量
为了执行命令方便,将hadoop命令加入环境变量
export HADOOP_HOME=/itcast/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source /etc/profile 是配置起作用
3.2 格式化namenode
第一次运行的时候需要进行格式化,这个格式化就是将一般的磁盘,格式化成hdfs可运行的磁盘,会清空已有数据,所以只能初次使用的时候执行。执行命令hdfs namenode -format
3.3 启动hadoop
3.3.1 启动hdfs
执行命令start-dfs.sh ,会启动三个应用namenode,datanode,secondaryNamenode。namenode主要是管理datanode并监控客户端对当前hdfs的链接。datanode是实际存储数据的服务节点。secondaryNamenode主要协助namenode工作的,他并不是备用节点。
启动过程如图:
图中可以看出共启动三个应用,但是每次都需要进行密码的输入。这里因为是单机所以无所谓,但是如果是成百上千台的服务器集群进行启动,那么可想而知这是个非常可怕的事情。
所以这里需要进行免密登录。参考ssh免密设置。如果需要深入了解请自行收集资料。
3.3.2 启动yarn
执行命令start-yarn.sh,这里会启动两个应用,resourceManager和NodeManager。通过resourceManger可以获取到yarn集群的信息,如状态、指标、调度信息、节点信息等。nodeManager可以获取到节点的信息和节点上运行的应用程序的信息,如storm、spark等。
这里已经设置了免密登录,不需要再输入两次密码了,运行如图:
免密启动yarn
3.4 验证启动成功
3.4.1 根据jps查看进程
需要用到java 的jps命令查看结果:
查看hadoop进程
可以看出,hdfs和yarn都已经成功启动了。
3.4.2 访问管理页面
http://192.168.121.136:50070 (HDFS管理界面)效果如图:
HDFS管理界面
http://192.168.121.136:8088 (MR管理界面)效果如图:
MR管理界面
*需要注意的是,如果没有开启端口50070和8088的需要使用命令
firewall-cmd --zone=public --add-port=50070/tcp --permanent
firewall-cmd --zone=public --add-port=8088/tcp --permanent
firewall-cmd --reload
进行端口的解封*,我这里因为是自己本机进行测试,同时由于这两个页面中还有其他的点击页面出现其他端口。所以采用了直接关闭防火墙的策略(不推荐)。命令如下:
systemctl stop firewalld
网友评论