Hadoop伪分布式系统配置
主机与linux服务器网络连接配置:
1.1 host-only(仅主机模式) 宿主机与客户机单独组网(不在同一网段)
好处:网络隔离
坏处:虚拟机与其他服务器之间不能通信
1.2 bridge 客户机与宿主机在同一个局域网中
好处:都在同一个局域网,可以互相访问
坏处:不安全
桥接模式
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:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.80.100:9000</value>
<description> change your own hostname </description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
<description>HDFS 的访问路径</description>
<description>hadoop 的运行临时文件的主目录</description>
4.3 修改 hdfs-site.xml :
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
<description>存储副本数</description>
dfs.permissions 默认是true有权限,如、其它用户不能删除root上传的文件
false 把权限关闭了,其它用户任意操作
4.4 修改 mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.80.100:9001</value>
<description> change your own hostname </description>
</property>
</configuration>
<description>JobTracker 的访问路径 </description>
(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
(不等于空就行)