玄学hadoop(一)之配置环境踩的坑

背景:
win10 + vmware14 + centos7 + jdk1.8 + hadoop2.7.3
前期的配置过程不说了,网上有很多对应的教程,建议别下载太新的jdk和hadoop,以后跑实例的时候可能会不方便,因此这里采用jdk1.8和hadoop2.7.3,版本在配置环境的时候应该都大同小异
这篇日志的过程很详细,我基本是按照这里配的:

https://blog.csdn.net/wl0909/article/details/53354999

本人三个节点配置分别为:

master  192.168.1.128
slaver1 192.168.1.129
slaver2 192.168.1.130

接下来介绍自己踩到的坑,若有朋友遇到相似的,或许可以实践一下:

坑1

我先安装了master节点,然后通过克隆得到slaver1和slaver2两个子节点,但是在设置ip地址时,网上都是对ifcfg-eth0文件进行修改,但我发现没有这个文件,只有ifcfg-ens33,而自己新建ifcfg-eth0文件后,当进行

service network restart

会报错,无法重置
其实直接在ifcfg-ens33上进行修改即可,反正我现在都OK,没有问题(注意要把dhcp改成static,静态ip)。
每个子节点都要进行上述操作。

坑2

设置SSH免密码登录时,发现sshd_config中没有RSAAuthentication 这一注释,手动编辑
倒是在ssh_config中有这一注释,但要注意,ssh_config是针对客户端的配置文件,而sshd_config是针对服务端

坑3

按照教程配完ssh免密码登录,可是输入

ssh root@slaver1

依旧需要登录密码,后来发现进入管理员模式即可直接免密码登录
(我不知道这个免密码登录除了上述博客中用secure CRT连接虚拟机外,还有什么时候是必须要做的,但我并没有用上述软件传输文件)

坑4

关于本地PC与虚拟机直接的文件传输
上述教程用了secure CRT这一软件,但我下载登录之后(已确定可以免密登录),一直连接不上
后来发现安装了virtual tools之后可以直接从本地PC复制粘贴文件过去(注意如果直接用鼠标拖拉,会导致文件不全,tar -xzvf解压的时候会报错)
这里我先把文件粘贴到home的目录下(这个目录的操作不需要管理员权限),然后在终端的su用户通过mv指令将该文件移动到usr/java文件夹内
(我的所有文件都放在usr下的文件夹内,如usr/java何usr/hadoop)

坑5

hadoop文件下载我就不说了,官网目前有2.7.6的,这里下载的时候千万别下错了,我一开始下成了source源文件,一直没找到etc目录,后来发现自己傻了。当然如果是2.7.3或者其他的,一般都是OK的

坑6

在安装hadoop时,配置文件的编辑需要注意自己的路径和教程中路径的不同,如core-site.xml中:

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master.hadoop:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
</configuration>

上述代码中master.hadoop 和 /home/hadoop/tmp 都要替换成自己的,比如我是master 和 /usr/hadoop/tmp
包括后面的hdfs-site.xml 、yarn-site.xml和 mapred-site.xml都一样
上述修改完成后,可以通过

scp -r /usr/hadoop  192.168.1.129:/usr/
scp -r /usr/hadoop  192.168.1.130:/usr/

直接复制到另外两个节点上,直接复制即可,不需要把其中的master修改成slaver

坑7

之前配置了java环境,相信输入

java  -version
javac -version

都有了对应版本的输出,为了方便,可以把hadoop也加入到PATH中。hadoop指令位于hadoop-2.7.3/bin目录下。编辑profile:

vim /etc/profile

增加hadoop的环境变量:

export HADOOP_HOME=XXX(上述安装路径,如我是/usr/hadoop/hadoop-2.7.3
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

这样以后也可以直接用hadoop来操作

坑8

环境配置完毕,浏览器输入master:50070也有了对应的页面,输入jps也有了输出,但想运行实例wordcount却老是出错,一会儿说:

/input file exists

而想要

hadoop fs -mkdir /input

又说

mkdir: no such file or directory

仔细检查了下路径没错,后来发现需要使用-p,并且添加完整的路径才行,如:

hadoop fs -mkdir -p /usr/hadoop/hadoop-2.7.3/input

以及

hadoop fs -put /usr/hadoop/file/file1.txt /usr/hadoop/hadoop-2.7.3/input
hadoop fs -put /usr/hadoop/file/file2.txt /usr/hadoop/hadoop-2.7.3/input

我不知道是哪里出了问题还是怎么样,网上的教程都是可以直接进行mkdir和put操作,我却需要输入完整路径
最终,还是成功运行了wordcount示例
加起来也差不多配了一天,主要一开始在ifcfg-eth0上花了很多时间,钻牛角尖一定要用这个网卡。
最后注意一点:
修改完ifcfg-ens33后,要运行如下指令使其生效

service network restart

修改了profile后,也要运行下面的指令:

source /etc/profile

以上是我配置hadoop时踩到的坑以及解决方法,若有什么更好的方法欢迎大家留言,或者遇到什么别的问题也可以评论,多多交流啦~~

That’s all, thank you!

猜你喜欢

转载自blog.csdn.net/u013700358/article/details/80579621
今日推荐