hadoop安装真的到处是坑啊。下面分享一下我个人安装的过程与心得。也是为了做个笔记。
一、首先说一下要准备的东西
1.需要有一个系统,linux也好还是windows也好只要有一个就行,但是推荐用linux
2.准备对应版本的jdk
3.对应版本的hadoop
开始
首先我们来说一下你的安装机。你采用在本机上在虚拟一个出来借助虚拟及软件。一个也去租用一个云主机。也可以自己准备一台机器。
下载ceonts6.5
下载地址:https://www.centos.org/download/
下载jdk
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载hadoop
下载地址:http://hadoop.apache.org/#Download+Hadoop
好了我们准备的差不多了,好那么我们下面可以开始披荆斩棘了。
由于Neon比较穷,所以我才用的是虚拟一个主机的方式。当然这样会影响效率的。
那么我们还需要准备两个软件 一个虚拟机软件一个ssh连接工具,我这里才用的是 VMware Xshell 6
下面我们开始虚拟一个系统吧。我这里不做详细讲解,因为这里不是主要的,而且身为这个圈子里的人这东西都不会,我还有和脸面面对江东父老呢?
1.打开vmware
2.创建一个新的虚拟机
3.选择典型 下一步
选择你的镜像文件就好了,之后就是起起名字配置等。我就不啰嗦了。
安装好应该是如下界面了。
下面我们给虚拟主机配置IP地址
打开命令终端
输入以下命令: cd /etc/sysconfig/network-scripts/
我们就看到了如下界面
接下来我们要修改ip
使用 vi ifcfg-eth0
好看到如上图界面我们就可以修改IP地址了。
按 i 键进入编辑模式 修改 IPADDR=192.168.1.50 这部分就好当然子网掩码和网关也要对应修改。
修完完成后 按 Esc 键 输入: 在输入 wq 保存即可。
我们还需要下一步就完成修改了那就是 重启网卡 命令如下
service network restart
这样我们修改就完成喽!
下面我们使用 ifconfig 查看一下我们的IP地址
如果看到和我这个这样的说明你的匹配好了。
下面我们来关闭一下 防火墙
命令如下 :service iptables stop
chkconfig iptables off
OK我们下面使用xshell连接我们的虚拟主机当然远程的主机也可以。
在连接之前我们要想ping一下虚拟主机 ping不通的话一切都是扯淡
如果你的不能ping通的话就查查防火墙看看虚拟机网络连接的模式等等这里我不细说。
打开软件点击红框内的图标
名称给他起个名字 协议不变 主机输入虚拟机或远程主机的IP地址 点击确定即可
连接成功如下
下面我们要安装jdk了
加油哦!
首先我们要将之前下载好的jdk传到虚拟机内。
找到对应的文件拖过去就好了。
将jdk解压 tar -zxvf jdk-8u171-linux-x64.gz
解压后如图
解压后配置环境变量 vi /etc/profile
将
#set java
export JAVA_HOME=/home/softwares/jdkexport PATH=$PATH:$JAVA_HOME/bin
插入到这个配置文件中。vim 的知识前面说过了 也很简单 i编辑模式 esc命令模式 wq 保存退出
保存退出之后 使用 source /etc/profile 让环境变量立即生效
下面检查 jdk 安装情况 输入 java -version
如果你也如上图的话那么你配置成功了。
下面是 hadoop的安装
那么我们下面 把下载好的hadoop传到虚拟机中 并解压 解压使用 tar 命令 解压好就如下图
下面我们根据官网文档开始安装喽
好了按如上操作就可以看到我们的安装教程的文档了如下图
ps:大家一定要好好学习英语,Neon在这方面踩了好多坑啊。都怪那时年少啊 ......... 哈哈 悔啊!
好了废话不多说开始吧,我们安装伪分布式用来学习
看看我的配置吧!
第一个标签按照官方填写
第二个是自己配置的 当然也是根据官方喽 如下图
依次按官方配置即可。
看一下Neon几个修改过文件的截图吧
下面说一下 有可能遇到的问题。
1.安装 jdk后并配置好环境变量
使用java 提示:
-bash: /home/softwares/jdk/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory原因是64位的系统安装了32位的程序,
解决办法:
1.yum install glibc.i6862.从新下载jdk下载对应系统的版本
2.如果启动HDFS时出现以下错误:
Starting namenodes on [hadoop000]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop000]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-04-13 07:37:05,439 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解决办法:
一定要在文档的最前面添加参数!!!
[html] view plain copy
$ vim start-dfs.sh
$ vim stop-dfs.sh
#分别在文档的最前面,添加如下参数:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
3.异常 WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER.
解决方案,在$ vim sbin/start-dfs.sh $ vim sbin/stop-dfs.sh 将
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
改为
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
4.警告 2018-05-30 04:56:30,561 WARN util.NativeCodeLoader: Unable to load native-haplatform... using builtin-java classes where applicable
You have new mail in /var/spool/mail/root
现在有两个办法,重新编译glibc.2.14版本,安装后专门给hadoop使用,这个有点危险。
第二个办法直接在log4j日志中去除告警信息。在//usr/local/hadoop-2.5.2/etc/hadoop/log4j.properties文件中添加
这里面Neon参考了几个大博主的文章。推荐个大家。
https://blog.youkuaiyun.com/l1028386804/article/details/51538611
此地址解决问题;Hadoop之—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform..