Hadoop伪分布式安装

下载地址:

http://hadoop.apache.org/releases.html

   

   

   

注意:

source表示源码

binary表示二级制包(安装包)

   

   

   

安装模式

单机模式:不能使用HDFS,只能使用MapReduce,所以单机模式最主要的目的是在本机调试mapreduce代码

伪分布式模式:用多个线程模拟多台真实机器,即模拟真实的分布式环境。

完全分布式模式:用多台机器(或启动多个虚拟机)来完成部署集群。

   

   

安装步骤:

0.关闭防火墙

执行:service iptables stop 这个指令关闭完防火墙后,如果重启,防火墙会重新建立,所以,如果想重启后防火墙还关闭,

需额外执行:chkconfig iptables off

   

1.配置主机名

执行:vim /etc/sysconfig/network

编辑主机名

注意:主机名里不能有下滑线,或者特殊字符 #$,不然会找不到主机导致无法启动

这种方式更改主机名需要重启才能永久生效,因为主机名属于内核参数。

如果不想重启,可以执行:hostname hadoop01。但是这种更改是临时的,重启后会恢复原主机名。

所以可以结合使用。先修改配置文件,然后执行:hostname hadoop01 。可以达到不重启或重启都是主机名都是同一个的目的

   

   

   

2.配置hosts文件

执行:vim /etc/hosts

   

   

   

3.配置免秘钥登录

   

   

hadoop01节点执行:

执行:ssh-keygen

然后一直回车

   

   

生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下

   

   

然后把公钥发往远程机器,比如hadoop01向hadoop01发送

执行:ssh-copy-id root@hadoop01

此时,hadoop02节点就是把收到的hadoop秘钥保存在

/root/.ssh/authorized_keys 这个文件里,这个文件相当于访问白名单,凡是在此白明白存储的秘钥对应的机器,登录时都是免密码登录的。

当hadoop01再次通过ssh远程登录hadoop01时,发现不需要输入密码了。

   

hadoop02节点执行上述上述步骤,让hadoop02节点连接hadoop01免密码登录

4.配置自己节点登录的免密码登录

如果是单机的伪分布式环境,节点需要登录自己节点,即hadoop01要登录hadoop01

但是此时是需要输入密码的,所以要在hadoop01节点上

执行:ssh-copy-id root@hadoop01

   

   

5.安装和配置jdk

执行: vi /etc/profile

2)在尾行添加

#set java environment

JAVA_HOME=/usr/local/src/java/jdk1.7.0_51

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME PATH CLASSPATH

保存退出

3)source /etc/profile 使更改的配置立即生效

4)java -version 查看JDK版本信息。如显示1.7.0证明成功。

   

6.上传和解压hadoop安装包

执行:tar -xvf hadoop……

目录说明:

bin目录:命令脚本

etc/hadoop:存放hadoop的配置文件

lib目录:hadoop运行的依赖jar包

sbin目录:启动和关闭hadoop等命令都在这里

libexec目录:存放的也是hadoop命令,但一般不常用

最常用的就是bin和etc目录

   

7.配置hadoop-env.sh


这个文件里写的是hadoop的环境变量,主要修改hadoopjava_home路径

切换到 etc/hadoop目录

执行:vim hadoop-env.sh

修改java_home路径和hadoop_conf_dir 路径

   

   

   

然后执行:source hadoop-env.sh 让配置立即生效

   

8.修改core-site.xml

etc/hadoop目录下

执行:vim core-site.xml

配置如下:

   

   

<configuration>

<!--用来指定hdfs的老大,namenode的地址-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://hadoop01:9000</value>

</property>

<!--用来指定hadoop运行时产生文件的存放目录-->

<property>

<name>hadoop.tmp.dir</name>

<value>/home/software/hadoop-2.7.1/tmp</value>

</property>

   

</configuration>

9.修改 hdfs-site .xml

配置如下:

   

   

<configuration>

<!--指定hdfs保存数据副本的数量,包括自己,默认值是3-->

<!--如果是伪分布模式,此值是1-->

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

   

<!--设置hdfs的操作权限,false表示任何用户都可以在hdfs上操作文件-->

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

   

</configuration>

   

10.修改 mapred-site.xml

这个文件初始时是没有的,有的是模板文件,mapred-site.xml.template

所以需要拷贝一份,并重命名为mapred-site.xml

执行:cp mapred-site.xml.template mapred-site.xml

配置如下:

   

   

<configuration>

<property>

<!--指定mapreduce运行在yarn-->

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

yarn是资源协调工具,

   

11.修改yarn-site.xml

配置如下:

   

   

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

<!--指定yarn的老大 resoucemanager的地址-->

<name>yarn.resourcemanager.hostname</name>

<value>hadoop01</value>

</property>

<property>

<!--NodeManager获取数据的方式-->

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

   

12.配置slaves文件

   

   

13.配置hadoop的环境变量

配置代码:

   

   

JAVA_HOME=/home/software/jdk1.8

HADOOP_HOME=/home/software/hadoop-2.7.1

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

export JAVA_HOME PATH CLASSPATH HADOOP_HOME

   

14.格式化namenode

为什么要格式化

执行:hadoop namenode -format

如果不好使,可以重启linux

当出现:successfully,证明格式化成功

   

 

15. hadoop的启动

切换到sbin目录下, 执行start-dfs.sh, 启动hadoop相关服务; 执行start-yarn.sh, 启动yarn相关服务。

 

原文地址:https://www.cnblogs.com/shuzhiwei/p/11031785.html