Hadoop伪分布式系统配置

主机与linux服务器网络连接配置:

1.1 host-only(仅主机模式)  宿主机与客户机单独组网(不在同一网段)
    好处:网络隔离
    坏处:虚拟机与其他服务器之间不能通信
1.2 bridge  客户机与宿主机在同一个局域网中
    好处:都在同一个局域网,可以互相访问
    坏处:不安全
Hadoop伪分布式系统配置_第1张图片
桥接模式


hadoop的伪分布式安装步骤(root用户):

1、设置静态ip

在centos桌面右上角的图标上,右键修改
重启网卡:service network restart
验证:ifconfig

2、修改主机名

修改当前会话中的主机名:hostname master
重启电脑,还是会还原为localhost
修改配置中的主机名:vi /etc/sysconfig/network

NETWORKING=yes
# HOSTNAME=localhost.localdomain
HOSTNAME=master

验证:重启电脑

3、把hostname和ip绑定

执行命令:vi /etc/hosts
在后面添加ip映射:

192.168.80.100  master
192.168.80.101  slave1
192.168.80.102  slave2

验证:ping master

4、关闭防火墙

分布式结构,走网络,过端口,有防火墙麻烦
执行命令:service iptables stop
验证:service iptables status

5、关闭防火墙自动运行

执行命令: chkconfig iptables off
验证:chkconfig --list | grep iptables

6、SSH的免密码登录

实现远程安全访问linux系统
产生密钥:ssh-keygen -t rsa
什么都不要输,一直按回车到结束
执行命令:cp ~/.ssh/id.rsa.pub ~/.ssh/authorized_keys
复制产生authorized_keys文件,经授权就能免密码登录
验证: ssh localhost

7、安装jdk

(1)先清空/usr/local/ (面的东西都可以删)命令: rm -rf /usr/local/*
(2)将jdk安装文件复制到/usr/local 目录下
(3)赋予执行权限 chown 7 jdk-6u24-linux-i586.bin
(4)当前目录/usr/local下解压jdk 命令:./jdk-6u24-linux-i586.bin
(5)重命名 mv jdk1.6.0.24 jdk
(6)配置环境变量 vi /etc/profile
(7)执行命令 vi /etc/profile 设置环境变量,增加两行内容:

  export JAVA_HOME=/usr/local/jdk
  export PATH=.:$JAVA_HOME/bin:$PATH

让设置生效:source /etc/profile
验证:java -version


以上都是准备工作,下面正式安装

hadoop 的安装

(1)解压hadoop文件夹: tar -zxvf hadoop-1.1.2.tar.gz
x解压缩 z压缩格式 v显示信息 f文件
(2)改名: mv hadoop-1.1.2 hadoop
(3)设置环境变量:vi /etc/profile

  export JAVA_HOME=/usr/local/jdk
  export HADOOP_HOME=/usr/local/hadoop
  export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

重启设置: source /etc/profile
(4)修改hadoop配置文件,在$HADOOP_HOME/conf 目录下
分别是:hadoop-env.sh | core-site.xml | hdfs-site.xml | mapred-site.xml
4.1 修改 hadoop-env.sh:vi /usr/local/hadoop/conf/hadoop-env.sh

去掉注释`#`号,修改`JAVA_HOME`地址 `export JAVA_HOME=/usr/local/jdk`
硬配置,ssh远程脚本,不加载profile文件!

4.2 修改 core-site.xml:


    
        fs.default.name
        hdfs://192.168.80.100:9000
         change your own hostname 
    

    
        hadoop.tmp.dir
        /usr/local/hadoop/tmp
    

HDFS 的访问路径
hadoop 的运行临时文件的主目录

4.3 修改 hdfs-site.xml :


    
        dfs.replication
        1
    

    
        dfs.permissions
        false
    

存储副本数
dfs.permissions 默认是true有权限,如、其它用户不能删除root上传的文件
false 把权限关闭了,其它用户任意操作

4.4 修改 mapred-site.xml:


    
        mapred.job.tracker
        192.168.80.100:9001
         change your own hostname 
    

JobTracker 的访问路径 

(5)首次HDFS文件系统要格式化 :hadoop namenode -format

Warning: $HADOOP_HOME is deprecated.  
这个警告,不是错误
注意:只在第一次启动的时候格式化,不要每次启动都格式化
理解:新买了块移动硬盘,使用之前总要格式化硬盘?
如果真的有必要再次格式化,先把$HADOOP_HOME/tmp目录下的文件全部删除
可以观察目录$HADOOP_HOME/tmp 在格式化前后的变化情况
格式化操作很少有出现失败的情况。如果真出现了,请检查配置是否正确

(6)启动hadoop系统:start-all.sh

starting datanode正在启动datanode,还未启动完全成功
hadoop-daemon.sh start [进程名称]
这种启动方式适合于单独增加、 删除节点的情况,在安装集群环境的时候会看到 

(7)验证hadoop是否安装成功:
7.1 执行命令 jps ,会发现5个java进程

NameNode
SecondaryNameNode
DataNode
JobTracker
TaskTracker

7.2 在master中通过浏览器验证:

http://master:50070(或者 http://192.168.80.100:50070)
http://master:50030(或者 http://192.168.80.100:50030)
如果想在宿主机(windows)中通过浏览器验证,则用:
    http://192.168.80.100:50070
    http://192.168.80.100:50030
如果想通过 http://master:50070 ,http://master:50030 来验证,则需要
    在C:\Windows\System32\drivers\etc 的hosts文件中添加映射 192.168.80.100 master

HDFS--50070  MapReduce--50030


NameNode进程没有启动成功原因:

(1)没有格式化
(2)配置文件
(3)hostname 与ip没有绑定
(4)SSH的免密码登录没有配置成功
一步步来,光执行,不验证很容易出错;单词要正确


多次格式化hadoop也是错误的?

方法:删除/usr/local/hadoop/tmp 文件夹,重新格式化

解决 start-all.sh stop-all.sh 的警告问题Warning: $HADOOP_HOME is deprecated.

方法:在/etc/profile 中配置 export HADOOP_HOME_WARN_SUPPRESS=1(不等于空就行)

你可能感兴趣的:(Hadoop伪分布式系统配置)