hadoop在虚拟机中的配置

设定VirtualBox虚拟网卡的IP地址

·        设置虚拟机中的网络设置

1.     在虚拟机中选用host-only网络

2.     vi /etc/sysconfig/network 
NETWORKING=yes
GATEWAY=192.168.56.1

3.     vi/etc/sysconfig/network-sripts/ifcfg-enp0s3 TYPE=Ethernet IPADDR=192.168.56.100NETMASK=255.255.255.0

4.     修改主机名hostnamectl set-hostnamemaster (主机名千万不能有下划线!)

5.     如果需要虚拟机上网还需要配置/etc/resolv.conf

6.     重启网络service network restart

7.     检查ssh服务的状态service network restart

8.     互相ping,看是否测试成功,若不成功,注意防火墙的影响。关闭windows或虚拟机的防火墙。systemctl stop firewalld systemdisable firewalld

·        使用XShell登陆

检查ssh服务状态systemctl status sshd (servicesshd status),验证使用XShell是否能登陆成功。

·        hadoopjdk上传到虚拟机

·        安装JDK rpm -ivh ./xxxxx.jdk,验证rpm-qa | grep jdk,在命令行中敲java命令,确认jdk已经安装完成

jdk默认安装在/usr/java目录下

·        安装hadoop

cd/usr/local
tar –xvf ./hadoop-2.7.2.tar.gz
把目录修改为hadoopmv hadoop-2... hadoop
修改hadoop-env.sh
vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改exportJAVA_HOME 语句为export JAVA_HOME=/usr/java/default
/usr/hadoop/bin/usr/hadoop/sbin设到PATH
vi /etc/profile
追加 exportPATH=$PATH:/usr/hadoop/bin:/usr/hadoop/sbin
source etc/profile
测试hadoop命令是否可以直接执行,任意目录下敲hadoop

·        关闭虚拟机,复制3

分别修改虚拟机的iphostname,确认互相能够ping通,用ssh登陆,同时修改所有虚拟机的/etc/hosts,确认使用名字可以ping

·        关闭各个机器上的防火墙 (master / slaves)

systemctlstop firewalld service

systemctldisable firewalld service

 

Linux系统下如何修改主机名

http://jingyan.baidu.com/article/574c52192a1d8d6c8d9dc1ce.html

 格式化master

hdfs namenode -format

master上启动hadoop-daemon.sh start namenode

 

hadoop-daemon.sh stop namenode

启动后会告诉你的日志位置

 

starting namenode, logging to/usr/local/hadoop/logs/hadoop-root-namenode-master.out

 

 

[root@master hadoop]# jps

9492 NameNode

9564 Jps

[root@master hadoop]#

 

 

slave上启动hadoop-daemon.sh start datanode

hadoop-daemon.sh stop datanode

 

 

 

Hadoop在master查看live nodes为0解决方案

不过上述方法都用过了,依然没有解决问题,下面一点是我如何解决了该问题的操作。

检查每台机器上的/etc/hosts文件,将没有用或不清楚作何用的ip:name对删除,最后只留下了

127.0.0.1           localhsot

192.168.192.128     master

192.168.192.130     slave1

192.168.192.131     slave2

 

 

 

菜鸟Linux系列:[4]SSH免密码登陆远程服务器

 

http://jingyan.baidu.com/article/2fb0ba4043124a00f2ec5f0f.html

 

执行

hadoop-daemon.sh start namonode

后报错

Error: Could not find or load main classnamonode

运行jps后再运行就好了

 

 

 

hadoop fs -put ./test.txt /

这个才是正确的命令

 

 

 

 

保存进去的只有一个datanode

 

 

 

17/09/05 00:33:04 INFO hdfs.DFSClient:Exception in createBlockOutputStream

java.io.IOException: Got error, statusmessage , ack with firstBadLink as 192.168.192.136:50010

         atorg.apache.hadoop.hdfs.protocol.datatransfer.DataTransferProtoUtil.checkBlockOpStatus(DataTransferProtoUtil.java:140)

         atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1359)

         atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1262)

         atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:448)

 

 

将slave2

service network stop

然后再

 service networkrestart

或许是下面的解决方法

IP换成主机名,datanode 挂不上
解决方法:
1、先运行stop-all.sh

2、格式化namdenode,不过在这之前要先删除原目录,即core-site.xml下配置的<name>hadoop.tmp.dir</name>所指向的目录,删除后切记要重新建立配置的空目录,然后运行hadoop namenode -format

3、运行start-all.sh

 

 

 

由于重新配置了hadoop.tmp.dir 目录,意味着,必须重新格式hdfs

#bin/hadoop namenode -format

 

 

hdfs://master:9000/user/hadoop/input

hdfs://master:9000/user/hadoop/output

 

 

 

Exception in thread "main" java.io.IOException: (null) entry in command string:null chmod 0700 D:\tmp\hadoop-Administrator\mapred\staging\root1663373669\.staging

    atorg.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:769)

Xuyao

hadoop.dllwinutile.exe放到hadoopbin文件夹里需要32

 

 

 

重启network的错误:

Restartingnetwork (via systemctl): Job for network.service failed. See *systemctl statusnetwork.service* and *journalctl -xn* for details.
[FAILED]

$ sudo systemctl status network.service
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: failed (Result: exit-code) since Fri2014-08-15 22:31:20 EDT; 43s ago
Process: 2641 ExecStart=/etc/rc.d/init.d/networkstart (code=exited, status=1/FAILURE)

 

 

vi/etc/sysconfig/network-scripts/ifcfg-eno16777736

配置改为:

bootproto=static

 

 

最近尝试在windows开发MR程序并且提交Job,在解压缩好hadoop,配置好环境变量后,

打开cmd 输入hadoop version 的时候出现以下错误:

 

Error: JAVA_HOMEis incorrectly set.

      Please update F:\hadoop\conf\hadoop-env.cmd

1.用路径替代符

C:\PROGRA~1\Java\jdk1.8.0_91

PROGRA~1 ===== C:\Program Files 目录的dos文件名模式下的缩写
长于8个字符的文件名和文件夹名,都被简化成前面6个有效字符,后面~1,有重名的就 ~2,~3,

2.用引号括起来

"C:\ProgramFiles"\Java\jdk1.8.0_91

 

 

atorg.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:557)

 

这个主要是hadoop.dll的位数要跟系统一样;64位的。


需改ip地址可能遇到的问题

vi /etc/sysconfig/network


#编辑内容如下
NETWORKING=yes
GATEWAY=192.168.137.1




vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件] 
比如
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 
不同机器后面名字不同
cd /etc/sysconfig/network-scripts
去查看


输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,进入编辑模式,输入以下内容:


注意虚拟机的端口开放范围
IPADDR=192.168.137.130
NETMASK=255.255.255.0
GATEWAY=192.168.137.1


vi /etc/hosts
192.168.137.128 master
192.168.137.129 slave1
192.168.137.131 slave2

重启master虚拟机网络
service network restart

关闭windows或虚拟机防火墙。

systemctl stop firewalld.service

如果是克隆的话记得把uuid改一下

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值