设定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是否能登陆成功。

·        将hadoop和jdk上传到虚拟机

·        安装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份

分别修改虚拟机的ip和hostname,确认互相能够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

 

 

 

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

检查每台机器上的/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免密码登陆远程服务器


执行


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.dll和winutile.exe放到hadoop的bin文件夹里需要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改一下