设定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改一下