Hadoop伪分布式安装与配置

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向hadoop02发送

执行:ssh-copy-id -i ~/.ssh/id_rsa.pub  root@hadoop02

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

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

如果是单机的伪分布式环境,节点需要登录自己节点,即hadoop01要登录hadoop01,但是此时是需要输入密码的,所以要在hadoop01节点上

执行:ssh-copy-id –i ~/.ssh/id_rsa.pub root@hadoop01

5.安装和配置jdk

这里以jdk1.8.0_111为例

1)

rpm –e jdk1.8.0_111

tar –zxvf jdk-8u65-linux-x64.tar.gz

执行:  vim  /etc/profile

2)

在尾行添加

export JAVA_HOME=/usr/soft/jdk1.8.0_65

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

export PATH=$JAVA_HOME/bin:$PATH

保存退出

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

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

6.上传和解压hadoop安装包

执行:tar -zxvf  hadoop……

目录说明:

bin目录:命令脚本

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

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

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

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

最常用的就是sbin,bin和etc目录

7.配置hadoop-env.sh

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

切换到  etc/hadoop目录

执行:vim hadoop-env.sh

修改java_home路径和hadoop_conf_dir 路径

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

如果export JAVA_HOME=${JAVA_HOME}不改,将来出现:

localhost: Error: JAVA_HOME is not set and could not be found.

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运行时产生临时文件的存放目录,如果不配置默认使用/tmp目录存在安全隐患 -->

<property>

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

<value>/usr/soft/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文件

 [root@hadoop1 hadoop]# vim slaves

13.配置hadoop的环境变量

配置代码:

export JAVA_HOME=/usr/soft/jdk1.8.0_65

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

export HADOOP_HOME=/usr/soft/hadoop-2.7.1

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

14.格式化namenode

为什么要格式化

执行:hadoop namenode -format

如果不好使,可以重启linx

 或者将/usr/soft/hadoop-2.7.1/tmp的tmp目录删掉,重新格式化namenode

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

注意,不能在生产环境中这么做。在生产环境里,做法是一般是:第一执行完格式化之后,在配置文件,配置禁止格式化。

启动hadoop

在sbin目录下 执行 ./start-all.sh,即可启动

警告的处理:

17/11/16 20:43:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决版本参考:http://blog.csdn.net/young_kim1/article/details/50324345

简易解决版本:

/usr/soft/hadoop-2.7.1/etc/hadoop/log4j.properties文件的尾部添加

   log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR 

 通过浏览器查看管理hadoop

http://ip:50070

 

这样我们的伪分布式Hadoop就安装完成了,希望给各位小伙伴带来帮助!

posted @ 2018-11-27 13:22  丶Biu~  阅读(18)  评论(0)    收藏  举报