Hadoop安装与配置
安装环境:
Ubuntu 16.04 64位
hadoop 2.4.1
实验在win7、Ubuntu双系统环境下进行,伪分布式安装。
实验准备:
先安装Ubuntu双系统,常见方法有硬盘安装和U盘安装。我开始使用的是硬盘安装,安装之后进入界面没有任何图标,找了很多帖子也没有解决,后来使用了U盘安装。使用软通牒制作安装盘进行安装,我参照网上帖子安装的,这里不再赘述。
参考书:《hadoop大数据处理技术基础与实践》
参考网站:厦门大学大数据实验室
实验步骤:
1. 用户管理、记录IP
(1)用户管理
大部分教程第一步先创建hadoop用户,并赋予权限。但后续还会不断出现权限不足的问题,为便于实验进行,这里直接使用root用户。不过因为安装的时候给的空间有限,后续实验会出现空间不足的问题。当安装好虚拟机,安装好Ubuntu操作系统后,登陆的时候发现除了自己的设置的用户就是外来用户,其实Ubuntu中的root帐号默认是被禁用了的,所以登陆的时候没有这个账号,但是如果每次使用root都进行切换的话会显的很繁琐,所以要先设置root账户。
(2)更新apt
在有网络的环境下先更新一下 apt,后续使用 apt 安装软件,如果没更新可能有一些软件安装不了。
按 ctrl+alt+t 打开终端窗口,执行如下命令:sudo apt-get update
若出现如下 “Hash校验和不符” 的提示,可通过更改软件源来解决。若没有该问题,则不需要更改。
(2)使用ifconfig指令获取IP地址(实验只用一台电脑,只获得一个IP地址)
后续我在更换地点之后会出现IP地址改变的情况,再次开启hadoop就会出错,所以我后面就更改地址为本地地址127.0.0.1,就没再出错过。
2. 修改主机名、绑定IP、关闭防火墙
先用指令暂时的修改主机名,不过这里的修改在重启后会消失。
然后使用指令gedit /etc/hosts 修改hosts文件(实验只有一台电脑,所以只修改一个主机名,并将刚刚获取的IP地址与修改好的主机名绑定)。
在文件中修改主机名为node,并添加IP地址。
并关闭防火墙,避免后续出现问题。实际上我在测试的时候发现防火墙一般都是关着的,也很少人会在这里出错。不过还是用指令关闭,以防万一。
3. ssh免密码登录
集群、单节点模式都需要用到 SSH 登陆,Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:sudo apt-get install openssh-server
这里我是伪分布安装,实际上后面没怎么用这个免密码登录,但是还是安装了server,应该都是需要安装的。
不过后续我没有登录这个,并没有出现问题,只是在开启hadoop的时候会出现警告。不过并无大的影响。
4. 安装JDK、修改配置
安装jdk有两种方式,可以自己下载之后,解压安装。或者使用指令使用openjdk。
我在开始的时候使用的是自己解压的jdk,后面出现jdk与hadoop版本不兼容的问题,就又安装了openjdk。
使用指令:sudo apt-get install default-jdk 安装
编辑~/.bashrc(或者profile文件,但是后面可能会失效,要多次source)文件,添加如下内容:
export JAVA_HOME=/usr/lib/jvm/default-java
接着让环境变量生效,执行如下代码:
source ~/.bashrc(或者/etc/profile)
5. 安装Hadoop、修改配置
(1)下载hadoop文件之后使用下面指令
解压文件
sudo tar -zxf ~/下载/hadoop-2.4.1.tar.gz -C /usr/local
将文件夹名改为hadoop
sudo mv ./hadoop-2.4.1/ ./hadoop
(2)编辑~/.bashrc文件,添加如下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
接着让环境变量生效,执行如下代码:
source ~/.bashrc
6. 修改文件(这里我按照书上修改的,下面粘贴的可能有部分不全)
(1)修改配置文件(这一步很重要,大多数初次安装都在这里出错。)
修改core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
修改hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
修改mapred-site.xml(复制mapred-site.xml.template,再修改文件名)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
(3)创建文件夹
同时还要在hadoop安装文件包下面自行创建hadoop的tmp logs等文件夹
后续可能会出错,到时候可以直接在文件夹里查看。
7. 格式化并查看是否成功(前面hadoop、ssh、jdk安装顺序可有颠倒,不影响结果)
(1)使用下面命令格式化,并开启hadoop
cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh
注:格式化如果失败,修改错误之处之后,可能会出现多次格式化后,datanode启动不了的问题。
解决方法:每次格式化,name下面的VERSION的clusterID会产生一个新的ID,要去修改各个节点的VERSION的clusterID。
修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动dfs(执行start-dfs.sh)再执行jps命令可以看到datanode已正常启动。
(2)等显示格式化成功之后,输入jps,看到namenode datanode都启动,说明配置成功。
或者登入node:50070 和9000也可以看到自己的hadoop信息。