Hadoop完全分布式详细说明及常见错误解决办法
来源:互联网 发布:java猜拳游戏编程代码 编辑:程序博客网 时间:2024/05/16 16:15
准备环境(以三台机器为例)
三台机器理想IP
master
169.254.19.4
Slave1
169.254.19.5
Slave2
169.254.19.6
- 准备三台Linux机器或虚拟机分别创建相同的用户名,这点很重要如果用户名不一样的话后面配置ssh以后启动hadoop,hadoop利用ssh关联时默认用启动的本机的用户来试图登录,如果用户名不一样则会失败,此处我就用root用户在三台机器上分别创建hadoop用户
- 配置网络问题(针对拷贝或者克隆的Linux虚拟机):
- 启动虚拟机在setting的network配置中选NAT,如果有固定路由可以选桥接方式bridged,但不推荐
- 配置网卡:vi /etc/udev/rules.d/70persistend-net.rules 将最后一个的name改成eth0,并将这之前的网卡加"#"注释,如图:
- 配置网卡驱动:vi /etc/sysconfig/network-scripts/ifcfg-eth0 将DRIVE和NAME 改成eth0修改BOOTPORTO为static 修改IPADDR为指定ip,如169.254.19.4,修改网关GATEWAY和NETMASK为固定值如GATEWAY=169.254.19.1,NETMASK=255.255.255.0
- 修改网卡驱动配置可以通过 service network restart 来重新加载,但是修改网卡配置需要重启机器可以切换到root执行reboot或者init 6 来重启
- 配置localhost:配置localhost就相当于给一台机器取名,也相当于给一台机器的ip取别名我们分别取master和slave1和slave2,vi /etc/sysconfig/network,,将HOSTNAME修改成指定的名称,如:
- 配置hosts:hosts就相当于一个域服务器记录一些主机名和IP的对应关系,要让三台机器运行hadoop需要他们互相通信,需要分别配置好/etc/hosts,vi /etc/hosts 分别配置好IP和各自的HOSTNAME,但是第一行的127.0.0.1的localhost的配置不能去掉,如图:
- 配置ssh:
- 用root账户登录vi /etc/ssh/sshd_config将RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys的注释去掉,如图:
,如果使用普通用户登录执行上述vi命令则看不到任何内容
- 切换到hadoop用户,执行ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa则会在/home/hadoop/.ssh下生成id_rsa(私钥)和id_rsa.pub(公钥),执行cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 将生成的公钥追加重定向到authorized_keys中,并将公钥用scp命令传到另外的机器,执行scp ~/.ssh/id_rsa.pub hadoop@slave1:~/.ssh/id_master_rsa.pub和scp ~/.ssh/id_rsa.pub hadoop@slave2:~/.ssh/id_master_rsa.pub,给authorized_keys 赋权限,此处要点:各个节点的authorized_keys文件中都有自己和其他节点的公钥,修改.ssh目录的权限为700,authorized_keys文件的权限为644,cd ~/.ssh,chmod 644 authorized_keys,执行ssh localhost 如果不需要密码就能登录说明ssh配置成功了,另外两台机器分别执行生成私钥公钥命令,将公钥重定向追加到authorized_keys里面,并将id_rsa.pub用scp命令发送到另外两台机器上重命名为id_slave1_rsa.pub 和 id_slave2_rsa.pub,每台机器分别用追加重定向将另外两台机器发过来的公钥追加到authorized_keys 中,例如:master机器中一定有id_slave1_rsa.pub和id_slave2_rsa.pub,执行cat ~/.ssh/id_slave1_rsa.pub >> ~/.ssh/authorized_keys 和 cat ~/.ssh/id_slave2_rsa.pub >> ~/.ssh/authorized_keys,上述步骤完成后任意两台机器都拥有互相的公钥,因此都能互相无密码通信
- 安装JDK:登录root用户,将jdk的Linux版通过WInscp拷贝到/usr/soft,事先在/usr下执行mkdir soft,执行chmod -u+x jdk-6u25-linux-i586.bin 给软件赋执行权限,./jdk-6u25-linux-i586.bin 执行软件进行安装,安装完后配置环境变量,vi /etc/profile 加入JAVA_HOME=/usr/soft/jdk1.6.0_25
CLASS_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASS_PATH JAVA_HOME变量,执行source /etc/profile,执行java -version 就能看到安装好的JDK版本
- 安装hadoop用Winscp将hadoop-1.0.4.tar.gz拷贝到/usr/soft并解压,执行chown -R hadoop:hadoop soft 来将soft文件夹及其下面所有文件所属改成hadoop用户
配置hadoop环境
- 一般要配置conf目录下的core-site.xml文件,hdfs-site.xml文件mapred-site.xml文件,配置如下:
core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs:// 169.254.19.4:9000</value>
</property><property>
<name>hadoop.tmp.dir</name>
<value>/usr/soft/hadoop/tmp</value>
</property>
</configuration>hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>169.254.19.4:9001</value>
</property>
</configuration>
配置好后,通过scp命令将hadoop配置给每个机器都发一份
- 配置jdk环境变量
- 配置conf中的slaves和masters,slaves中配置的是datanode的ip,每个IP占一行masters是secondnamenode的ip,从哪个机器启动hadoop则哪个是namenode,这里配置的是secondnamenode,本例子slaves配置如下:
169.254.19.5
169.254.19.6
Masters配置如下(这里和namenode同节点,实际生产不会这么配置):
169.254.19.4
- 在bin目录下先执行./hadoop namenode -format 没有问题的话执行./start-all.sh,hadoop就运行起来了,通过jps来查看运行状态
常见错误
IP配置问题,不能ping上:
可能是由于配置的网段没有和外面计算机的VMnet8保持同一网段/etc/sysconfig/network-scripts/ifcfg-etho的mac地址配置不是/etc/udev/rules.d/70-persistend-net.rules中的ATTR(address),也没注释,而是无效的Ssh配置问题:
可能是格台机器上用户名不一样,注意这里登录的用户名和配置的HOSTNAME不是同一个概念注意,一般xxx@xxx 前面的表示登录的用户名,后面的表示localhost,也可以理解为一个IP很多地方这个后面的XXX用ip代替也是可行的将私钥id_rsa追加到authorized_keys后面而没有将公钥id_rsa.pub追加到authorized_keys后面没有将authorized_keys的权限改成600或者644Hadoop启动出问题:
xml配置问题,可以从日志查看,并将错误在网上搜索,可能是slaves或者masters配置的有问题没有执行./hadoop namenode -format- 单个节点启动不了datanode进程,执行hadoop-daemon.sh start datanode 时启动后立马被stop了,此种问题可能是由于配置了单个节点的删除部署exclude文件但是没注释,应该将配置文件中的该节点注释掉或者删除,在执行hadoop-daemon.sh start datanode来解决。
- JAVA_HOME not set 时,配置conf目录下的hadoop-env.sh中的export JAVA_HOME
- dataNode节点启动后自动关了且报错No route to host则可能是防火墙没关闭或者hostname和/etc/hosts配置不一样
0 0- Hadoop完全分布式详细说明及常见错误解决办法
- Hadoop完全分布式配置及常见错误集合
- hadoop常见错误及解决办法!
- hadoop常见错误及解决办法!
- Hadoop常见错误及解决办法
- hadoop常见错误及解决办法!
- Hadoop常见错误及解决办法
- Hadoop 常见错误及解决办法
- hadoop配置常见错误及解决办法
- Hadoop常见错误及解决办法汇总
- hadoop常见错误及解决办法(二)
- hadoop常见错误及解决办法(三)
- Hadoop常见错误及解决办法汇总
- Hadoop常见错误及解决办法汇总
- Hadoop常见错误及解决办法汇总
- Hadoop常见错误及解决办法汇总
- hadoop 2.6 完全分布式安装过程及记录 (详细版)
- 常用svn命令说明 常见错误说明及解决办法
- Linux搭建yum源学习
- apache的url重写
- Eclipse连接到hadoop集群详解
- Hadoop运行时单个节点管理
- keepalived+redis高可用性实现
- Hadoop完全分布式详细说明及常见错误解决办法
- Linux搭建DNS并管理hadoop
- Linux下搭建memcached缓存
- Linux搭建nfs服务器配置无密钥登录
- Linux下搭建ntp时钟服务器
- start here!
- Linux下逻辑卷的添加与使用
- Linux下apache+tomcat+memcached
- Linux下nginx+tomcat+memcached
原创粉丝点击热门IT博客热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 去湿水果 去湿设备 怎样去湿寒 清热去湿茶 冬瓜去湿汤 艾灸去湿 中药去湿 有什么去湿汤 红豆去湿 什么食物去湿 去湿糖水 去湿颗粒 鸡蛋去湿 怎么去湿寒 去湿吃什么好 孕妇怎样祛湿 驱寒去湿 下火去湿汤 祛湿的中药 薏米去湿汤 孕妇可以喝去湿汤吗 祛湿粉 泡脚去湿 什么茶去湿 茯苓去湿 健脾去湿茶 去湿药材 去湿的水果有哪些 好湿 去湿健脾的中成药 怎样去湿邪 去湿洗液 什么汤去湿 中药祛湿 煲什么汤去湿 夏天去湿 中医如何去湿 去湿汤怎么煲 湿的 孕妇能喝去湿汤吗 冬瓜去湿