Hadoop第3周练习--Hadoop2.X编译安装和实验 1 作业题目 2  编译Hadoop2.X 64bit 3    Hadoop2.X 64bit安装 4    实验性问题解决 5    问题解决

1    作业题目... 5

2    编译Hadoop2.X 64bit. 5

2.1     运行环境说明... 5

2.1.1   硬软件环境... 5

2.1.2   集群网络环境... 6

2.2     环境搭建... 6

2.2.1   JDK安装和Java环境变量配置... 6

2.2.2   安装并设置maven. 8

2.2.3   root用户使用yum安装svn. 9

2.2.4   root用户使用yum安装autoconf automake libtool cmake. 10

2.2.5   root用户使用yum安装ncurses-devel11

2.2.6   root用户使用yum安装openssl-devel12

2.2.7   root用户使用yum安装gcc*. 13

2.2.8   安装并设置protobuf13

2.3     编译Hadoop. 16

2.3.1   下载Hadoop源代码 Release2.2.0. 16

2.3.2   编译Hadoop源代码... 16

2.3.3   验证编译是否成功... 17

3    Hadoop2.X 64bit安装... 18

3.1     运行环境说明... 18

3.1.1   硬软件环境... 18

3.1.2   集群网络环境... 18

3.1.3   安装使用工具... 19

3.2     环境搭建... 21

3.2.1   配置本地环境... 21

3.2.2   设置操作系统环境... 24

3.3     配置Hadooop设置... 32

3.3.1   下载并解压hadoop安装包... 32

3.3.2   Hadoop目录下创建子目录... 33

3.3.3   配置hadoop-env.sh. 34

3.3.4   配置yarn-env.sh. 35

3.3.5   配置core-site.xml36

3.3.6   配置hdfs-site.xml37

3.3.7   配置mapred-site.xml38

3.3.8   配置yarn-site.xml40

3.3.9   配置slaves文件... 41

3.3.10向各节点分发hadoop程序... 41

3.3.11格式化namenode. 42

3.3.12启动hdfs43

3.3.13验证当前进行... 43

3.3.14启动yarn. 43

3.3.15验证当前进行... 44

4    实验性问题解决... 44

4.1     运行环境说明... 44

4.1.1   硬软件环境... 44

4.1.2   集群网络环境... 45

4.2     问题1--web监控界面加上安全机制... 45

4.2.1   修改Core-Site.xml文件... 45

4.2.2   手动创建signature-secret文件... 46

4.2.3   把该文件分发到两个datanode... 47

4.2.4   重新启动hadoop. 47

4.2.5   验证访问... 47

4.3     问题2--模拟namenode崩溃并恢复... 48

4.3.1   删除NameNodeName目录下所有文件,模拟崩溃... 48

4.3.2   重启Hadoop. 48

4.3.3   格式化NameNode. 50

4.3.4   获取DataNodenamespaceID.. 51

4.3.5   修改NameNodenamespaceID.. 52

4.3.6   删除NameNodefsimage. 52

4.3.7   SSN中拷贝fsimageNN... 52

4.3.8   重启Hadoop. 53

4.4     问题3--改变HDFS块大小... 53

4.4.1   Hadoop中建立/input文件夹... 53

4.4.2   查看当前blocksize. 54

4.4.3   修改hdfs-site.xml配置文件... 54

4.4.4   重启Hadoop. 55

4.4.5   再次查看当前blocksize. 55

4.5     问题4--SNNNN的分离... 56

4.5.1   复制虚拟机... 56

4.5.2   设置SNN虚拟机IP地址... 56

4.5.3   设置SNN虚拟机名称... 57

4.5.4   所有节点hosts 文件加入SNN IP对应信息... 57

4.5.5   所有节点masters文件加入SNN信息... 57

4.5.6   所有节点中修改hdfs-site.xml58

4.5.7   重启所有虚拟机... 59

4.5.8   配置ssh免密码登录... 59

4.5.9   重新格式化NameNode. 61

4.5.10启动Hadoop. 61

4.5.11验证... 61

4.6     问题5--再次格式化namenode,此时datanode是否能加入... 62

4.6.1   停止Hadoop并格式化... 62

4.6.2   启动Hadoop,并查看datanode状态... 62

4.6.3   查看datanode日志... 63

4.6.4   解决办法... 63

4.6.5   重启集群,查看datanode状态... 64

4.7     问题6--控制namenode检查点发生的频率... 65

4.7.1   core-site.xml中修改检查点频率... 65

4.7.2   重启集群,查看检查点更新频率... 65

4.7.3   观察checkpoint 前后 namenode的变化... 66

4.7.4   基本原理... 66

5    问题解决... 67

5.1     安装CentOS64位虚拟机 This host supports Intel VT-x, but Intel VT-x is disabled. 67

5.2     *** is not in the sudoers file解决方法... 67

5.3     yum无法下载... 68

5.4     CentOS 64bit安装Hadoop2.2.0中出现文件编译位数异常... 69

5.5    编译Hadoop2.2.0出现代码异常... 70

 

1.  部署Hadoop 2.x,建议尝试64位系统下进行本地编译的安装方式

2.  Hadoop 1.x上进行探索性的实验研究,以下问题62

(1) 能否给web监控界面加上安全机制,怎样实现?抓图过程

(2)模拟namenode崩溃,例如将name目录的内容全部删除,然后通过secondary namenode恢复namenode,抓图实验过程

(3) 怎样改变HDFS块大小?实验验证并抓图过程

(4) secondary namenodenamenode分离,部署到单独的节点,抓图实验过程

(5) Hadoop集群实施成功后,再次格式化名称节点,请问此时datanode还能加入集群不?如果不能加入怎样解决?模拟过程并抓图

(6) 怎样控制namenode检查点发生的频率,用实验模拟检查点发生的前后过程,并抓图发生前和发生后的元数据情况进行比较,说明之

2  编译Hadoop2.X 64bit

2.1  运行环境说明

2.1.1硬软件环境

l  主机操作系统:Windows 64 bit,双核4线程,主频2.2G6G内存

l  虚拟软件:VMware® Workstation 9.0.0 build-812388

l  虚拟机操作系统:CentOS 6.5 64位,单核,1G内存

l  JDK1.7.0_55 64

l  HadoopRelease 2.3.0 source

2.1.2集群网络环境

集群只包含一个节点,设置IP地址为192.168.1.200

2.2  环境搭建

2.2.1JDK安装和Java环境变量配置

1.     下载JDK1.7 64bit安装包

打开JDK1.7 64bit安装包下载链接为:

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

打开界面之后,先选中 Accept License Agreement ,然后下载 jdk-7u55-linux-x64.tar.gz,如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

2.     赋予hadoop用户/usr/lib/java目录可读写权限,使用命令如下:

sudo chmod -R 777 /usr/lib/java

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     把下载的安装包,使用ssh工具上传到/usr/lib/java 目录下,使用如下命令进行解压

tar -zxvf jdk-7u55-linux-x64.tar.gz

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

解压后目录如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.     使用root用户配置 /etc/profile,该设置对所有用户均生效

vi /etc/profile

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

export JAVA_HOME=/usr/lib/java/jdk1.7.0_55

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

5.     重新登录并验证

logout

java -version

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.2.2安装并设置maven

1.     下载maven安装包,建议安装3.0以上版本,本次安装选择的是maven3.0.5的二进制包,下载地址如下

http://mirror.bit.edu.cn/apache/maven/maven-3/

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     使用ssh工具把maven包上传到/home/hadoop/Downloads目录

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     解压缩apache-maven-3.0.5-bin.tar.gz

tar -zxvf apache-maven-3.0.5-bin.tar.gz

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.     apache-maven-3.0.5目录移到/usr/local目录下

sudo mv apache-maven-3.0.5 /usr/local

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

5.     /etc/profile配置文件中加入如下设置

export PATH=$JAVA_HOME/bin:/usr/local/apache-maven-3.0.5/bin:$PATH

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

6.     编辑/etc/profile文件并验证配置是否成功:

source /etc/profile

mvn -version

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.2.3root用户使用yum安装svn

yum install svn

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.2.4root用户使用yum安装autoconf automake libtool cmake

yum install autoconf automake libtool cmake

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.2.5root用户使用yum安装ncurses-devel

yum install ncurses-devel

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.2.6root用户使用yum安装openssl-devel

yum install openssl-devel

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.2.7root用户使用yum安装gcc*

yum install gcc*

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.2.8安装并设置protobuf

注:该程序包需要在gcc安装完毕后才能安装,否则提示无法找到gcc编译器。

1.     下载protobuf安装包

下载链接为: https://code.google.com/p/protobuf/downloads/list

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     使用ssh工具把protobuf-2.5.0.tar.gz包上传到/home/hadoop/Downloads目录

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     解压安装包

tar -zxvf protobuf-2.5.0.tar.gz

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.     protobuf-2.5.0目录转移到/usr/local目录下

sudo mv protobuf-2.5.0 /usr/local

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

5.     进行目录运行命令

进入目录以root用户运行如下命令:

./configure

make

make check

make install

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

6.     验证是否安装成功

运行成功之后,通过如下方式来验证是否安装成功

protoc

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.3  编译Hadoop

2.3.1下载Hadoop源代码 Release2.2.0

通过SVN获取Hadoop2.2.0源代码,在/home/hadoop/Downloads目录下命令:

svn checkout http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0

获取时间较长,大小约75.3M

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.3.2编译Hadoop源代码

:) 由于hadoop2.2.0svnpom.xml有点问题,会造成编译中出错,可先参考5.5修复该问题。在Hadoop源代码的根目录执行如下命令:

mvn package -Pdist,native -DskipTests –Dtar

(注意:这行命令需要手工输入,如果复制执行会报异常!)

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

耗费的时间较长,总共花费了32分钟,在编译过程需要联网,从网络中下载所需要的资料。

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.3.3验证编译是否成功

hadoop-dist/target/hadoop-2.2.0/lib/native 目录中查看libhadoop.so.1.0.0属性:

file ./libhadoop.so.1.0.0

该文件为ELF 64-bit LSB则表示文件成功编译为64

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

hadoop-dist/target目录中已经打包好了hadoop-2.2.0.tar.gz,该文件作为Hadoop2.X 64位安装包。

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3    Hadoop2.X 64bit安装

3.1  运行环境说明

3.1.1硬软件环境

l  主机操作系统:Windows 64 bit,双核4线程,主频2.2G6G内存

l  虚拟软件:VMware® Workstation 9.0.0 build-812388

l  虚拟机操作系统:CentOS 64位,单核,1G内存

l  JDK1.7.0_55 64

l  Hadoop2.2.0

3.1.2集群网络环境

集群包含三个节点:1namenode2datanode,其中节点之间可以相互ping通。节点IP地址和主机名分布如下:

序号

IP地址

机器名

类型

用户名

1

10.88.147.226

hadoop1

名称节点

hadoop

2

10.88.147.227

hadoop2

数据节点

hadoop

3

10.88.147.228

hadoop3

数据节点

hadoop

所有节点均是CentOS6.5 64bit系统,防火墙均禁用,所有节点上均创建了一个hadoop用户,用户主目录是/usr/hadoop。所有节点上均创建了一个目录/usr/local/hadoop,并且拥有者是hadoop用户。因为该目录用于安装hadoop,用户对其必须有rwx权限。(一般做法是root用户在/usr/local下创建hadoop目录,并修改该目录拥有者为hadoop(chown R hadoop /usr/local/hadoop),否则通过SSH往其他机器分发Hadoop文件会出现权限不足的提示。

3.1.3安装使用工具

3.1.3.1Linux文件传输工具

Linux系统传输文件推荐使用SSH Secure File Transfer,该工具顶部为工具的菜单和快捷方式,中间部分左面为本地文件目录,右边为远程文件目录,可以通过拖拽等方式实现文件的下载与上传,底部为操作情况监控区,如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.1.3.2Linux命令行执行工具

l  SSH Secure Shell

SSH Secure工具的SSH Secure Shell提供了远程命令执行,如下图所示:

 

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

l  SecureCRT

SecureCRT是常用远程执行Linux命令行工具,如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

 

 

 

3.2  环境搭建

本次安装集群分为三个节点,节点设置按照2.1.2章节进行设置。环境搭建分为两部分,具体为配置本地环境和设置操作系统环境。

3.2.1配置本地环境

该部分对服务器的配置需要在服务器本地进行配置,配置完毕后需要重启服务器确认配置是否生效,特别是远程访问服务器需要设置固定IP地址。

3.2.1.1设置IP地址

1.     点击System-->Preferences-->Network Connections,如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     修改或重建网络连接,设置该连接为手工方式,设置如下网络信息:

      IP地址:    10.88.147.*

      子网掩码: 255.255.255.0

      网关:     10.88.*.*

      DNS     10. **.***.** (上网需要设置DNS服务器)

      注意:网关、DNS等根据所在网络实际情况进行设置,并设置连接方式为"Available to all users",否则通过远程连接时会在服务器重启后无法连接服务器

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     在命令行中,使用ifconfig命令查看设置IP地址信息,如果修改IP不生效,需要重启机器再进行设置(如果该机器在设置后需要通过远程访问,建议重启机器,确认机器IP是否生效):

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.2.1.2设置机器名

root用户登录,使用 vi /etc/sysconfig/network 打开配置文件,根据实际情况设置该服务器的机器名,新机器名在重启后生效

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.2.1.3设置Host映射文件

1.     使用root身份编辑/etc/hosts映射文件,设置IP地址与机器名的映射,设置信息如下:

vi /etc/hosts

l     10.88.147.226 hadoop1

l     10.88.147.227 hadoop2

l     10.88.147.228 hadoop3

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     使用如下命令对网络设置进行重启

/etc/init.d/network restart

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     验证设置是否成功

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.2.1.4上网配置

第一步   root用户使用vi /etc/profile命令打开配置文件,如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

第二步   在该文件设置如下配置:

export http_proxy=proxy.*****:8080

export no_proxy="localhost,10.88.*hadoop*"

export https_proxy=proxy.*****:8080

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.2.2设置操作系统环境

3.2.2.1关闭防火墙

Hadoop安装过程中需要关闭防火墙和SElinux,否则会出现异常

1.     service iptables status 查看防火墙状态,如下所示表示iptables已经开启

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     root用户使用如下命令关闭iptables

chkconfig iptables off

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.2.2.2关闭SElinux

1.     使用getenforce命令查看是否关闭

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     修改/etc/selinux/config 文件

SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.2.2.3JDK安装及配置

7.     下载JDK1.7 64bit安装包

打开JDK1.7 64bit安装包下载链接为:

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

打开界面之后,先选中 Accept License Agreement ,然后下载 jdk-7u55-linux-x64.tar.gz,如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

8.     赋予hadoop用户/usr/lib/java目录可读写权限,使用命令如下:

sudo chmod -R 777 /usr/lib/java

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

该步骤有可能遇到问题5.2,可参考解决办法处理

9.     把下载的安装包,使用2.1.3.1介绍的ssh工具上传到/usr/lib/java 目录下,使用如下命令进行解压

tar -zxvf jdk-7u55-linux-x64.tar.gz

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

解压后目录如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

10.  使用root用户配置 /etc/profile,该设置对所有用户均生效

vi /etc/profile

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

export JAVA_HOME=/usr/lib/java/jdk1.7.0_55

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

11.  重新登录并验证

logout

java -version

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.2.2.4更新OpenSSL

C自带的OpenSSL存在bug,如果不更新OpenSSLAmbari部署过程会出现无法通过SSH连接节点,使用如下命令进行更新:

yum update openssl

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

该步骤有可能遇到问题5.3,可参考解决办法处理

3.2.2.5SSH无密码验证配置

1.     root用户使用vi /etc/ssh/sshd_config,打开sshd_config配置文件,开放三个配置,如下图所示:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     配置后重启服务

service sshd restart

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     完成以上步骤后,复制该虚拟机两份,分别为hadoop2hadoop3数据节点,IP设置参见1.2章节

4.     使用hadoop用户登录在三个节点中使用如下命令生成私钥和公钥;

ssh-keygen -t rsa

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

5.     进入/home/hadoop/.ssh目录在三个节点中分别把公钥命名为authorized_keys_hadoop1authorized_keys_hadoop2authorized_keys_hadoop3,使用命令如下:

cp id_rsa.pub authorized_keys_hadoop1

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

6.     把两个从节点(hadoop2hadoop3)的公钥使用scp命令传送到hadoop1节点的/home/hadoop/.ssh文件夹中;

scp authorized_keys_hadoop2 hadoop@hadoop1:/home/hadoop/.ssh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

7.     把三个节点的公钥信息保存到authorized_key文件中

使用cat authorized_keys_hadoop1 >> authorized_keys 命令

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

8.     把该文件分发到其他两个从节点上

使用scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh把密码文件分发出去

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

9.     在三台机器中使用如下设置authorized_keys读写权限

chmod 400 authorized_keys

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

10.  测试ssh免密码登录是否生效

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3  配置Hadooop设置

3.3.1下载并解压hadoop安装包

 

1.     Apache网站上提供Hadoop2.X安装包只支持32位操作系统安装,在64位服务器安装会出现5.4的错误异常。我们使用上一步骤编译好的hadoop-1.1.2-bin.tar.gz文件作为安装包(也可以从网上下载native文件夹或者打包好的64hadoop安装包),使用2.1.3.1介绍的ssh工具上传到/home/hadoop/Downloads 目录下

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     在主节点上解压缩

cd /home/hadoop/Downloads/

tar -xzvf hadoop-2.2.0.tar.gz

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     hadoop-2.2.0目录移到/usr/local目录下

sudo mv hadoop-2.2.0 /usr/local

cd /usr/local

ls

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.     使用chown命令遍历修改hadoop-1.1.2目录所有者为hadoop

sudo chown -R hadoop /usr/local/hadoop-2.2.0

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

3.3.2Hadoop目录下创建子目录

使用hadoop用户在hadoop-2.2.0目录下创建tmpnamedata目录,保证目录所有者为hadoop

mkdir tmp

mkdir name

mkdir data

ls

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.3配置hadoop-env.sh

1.     打开配置文件hadoop-env.sh

cd etc/hadoop

sudo vi hadoop-env.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     加入配置内容,设置了hadoopjdkhadoop/bin路径

export JAVA_HOME=/usr/lib/java/jdk1.7.0_55

export PATH=$PATH:/usr/local/hadoop-2.2.0/bin

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     编译配置文件hadoop-env.sh,并确认生效

source hadoop-env.sh

hadoop version

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.4配置yarn-env.sh

1.     /usr/local/hadoop-2.2.0/etc/hadoop打开配置文件yarn-env.sh

cd /usr/local/hadoop-2.2.0/etc/hadoop

sudo vi yarn-env.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     加入配置内容,设置了hadoopjdkhadoop/bin路径

export JAVA_HOME=/usr/lib/java/jdk1.7.0_55

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     编译配置文件yarn-env.sh,并确认生效

source yarn-env.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.5配置core-site.xml

1.     使用如下命令打开core-site.xml配置文件

sudo vi core-site.xml

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     在配置文件中,按照如下内容进行配置

<configuration>

  <property>

    <name>fs.default.name</name>

    <value>hdfs://hadoop1:9000</value>

  </property>

  <property>

    <name>fs.defaultFS</name>

    <value>hdfs://hadoop1:9000</value>

  </property>

  <property>

    <name>io.file.buffer.size</name>

    <value>131072</value>

  </property>

  <property>

    <name>hadoop.tmp.dir</name>

    <value>file:/usr/local/hadoop-2.2.0/tmp</value>

    <description>Abase for other temporary directories.</description>

  </property>

  <property>

    <name>hadoop.proxyuser.hduser.hosts</name>

    <value>*</value>

  </property>

  <property>

    <name>hadoop.proxyuser.hduser.groups</name>

    <value>*</value>

  </property>

</configuration>

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.6配置hdfs-site.xml

1.     使用如下命令打开hdfs-site.xml配置文件

sudo vi hdfs-site.xml

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     在配置文件中,按照如下内容进行配置

<configuration>

  <property>

   <name>dfs.namenode.secondary.http-address</name>

   <value>hadoop1:9001</value>

  </property>

  <property>

   <name>dfs.namenode.name.dir</name>

   <value>file:/usr/local/hadoop-2.2.0/name</value>

  </property>

  <property>

   <name>dfs.datanode.data.dir</name>

   <value>file:/usr/local/hadoop-2.2.0/data</value>

  </property>

  <property>

   <name>dfs.replication</name>

   <value>2</value>

  </property>

  <property>

   <name>dfs.webhdfs.enabled</name>

   <value>true</value>

  </property>

</configuration>

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.7配置mapred-site.xml

1.     默认情况下不存在mapred-site.xml文件,可以从模板拷贝一份

cp mapred-site.xml.template mapred-site.xml

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     使用如下命令打开mapred-site.xml配置文件

sudo vi mapred-site.xml

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     在配置文件中,按照如下内容进行配置

<configuration>

  <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

  </property>

  <property>

    <name>mapreduce.jobhistory.address</name>

    <value>hadoop1:10020</value>

  </property>

  <property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>hadoop1:19888</value>

  </property>

</configuration>

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.8配置yarn-site.xml

1.     使用如下命令打开yarn-site.xml配置文件

sudo vi yarn-site.xml

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     在配置文件中,按照如下内容进行配置

<configuration>

  <property>

    <name>yarn.nodemanager.aux-services</name>

    <value>mapreduce_shuffle</value>

  </property>

  <property>

    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

    <value>org.apache.hadoop.mapred.ShuffleHandler</value>

  </property>

  <property>

    <name>yarn.resourcemanager.address</name>

    <value>hadoop1:8032</value>

  </property>

  <property>

    <name>yarn.resourcemanager.scheduler.address</name>

    <value>hadoop1:8030</value>

  </property>

  <property>

    <name>yarn.resourcemanager.resource-tracker.address</name>

    <value>hadoop1:8031</value>

  </property>

  <property>

    <name>yarn.resourcemanager.admin.address</name>

    <value>hadoop1:8033</value>

  </property>

  <property>

    <name>yarn.resourcemanager.webapp.address</name>

    <value>hadoop1:8088</value>

  </property>

</configuration>

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.9配置slaves文件

1.     设置从节点

sudo vi slaves

hadoop2

hadoop3

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决 

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.10   向各节点分发hadoop程序

1.     hadoop2hadoop3机器中创建/usr/local/hadoop-2.2.0目录,然后修改该目录所有权限

sudo mkdir /usr/local/hadoop-2.2.0

sudo chown R hadoop /usr/local/hadoop-2.2.0

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     hadoop1机器上进入/usr/local/hadoop-2.2.0目录,使用如下命令把hadoop文件夹复制到hadoop2hadoop3机器

使用命令scp -r * hadoop@hadoop2:/usr/local/hadoop-2.2.0

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

3.     在从节点查看是否复制成功

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.11   格式化namenode

./bin/hdfs namenode -format

 

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.12   启动hdfs

cd hadoop-2.2.0/sbin

./start-dfs.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

如果服务器操作系统为32位时,出现问题5.4异常,可以参考解决

3.3.13   验证当前进行

此时在hadoop1上面运行的进程有:namenodesecondarynamenode

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

hadoop2hadoop3上面运行的进程有:datanode

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.14   启动yarn

./start-yarn.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.3.15   验证当前进行

此时在hadoop1上运行的进程有:namenodesecondarynamenoderesourcemanager

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

hadoop2hadoop3上面运行的进程有:datanodenodemanager

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4    实验性问题解决

4.1  运行环境说明

以下实验性问题解决是在第1~2周搭建的环境下进行解决,即在Hadoop1.1.2版本下模拟问题的发生和解决。

4.1.1硬软件环境

l  主机操作系统:Windows 64 bit,双核4线程,主频2.2G6G内存

l  虚拟软件:VMware® Workstation 9.0.0 build-812388

l  虚拟机操作系统:三个节点均为CentOS6.5 64位,单核,1G内存

l  JDK1.7.0_55 64

l  Hadoop1.1.2

4.1.2集群网络环境

集群包含三个节点:1namenode2datanode,其中节点之间可以相互ping通。节点IP地址和主机名分布如下:

序号

IP地址

机器名

类型

用户名

运行进程

1

10.88.147.221

hadoop1

名称节点

hadoop

NNSNNJobTracer

2

10.88.147.222

hadoop2

数据节点

hadoop

DNTaskTracer

3

10.88.147.223

hadoop3

数据节点

hadoop

DNTaskTracer

所有节点均是CentOS系统,防火墙均禁用,所有节点上均创建了一个hadoop用户,用户主目录是/usr/hadoop。所有节点上均创建了一个目录/usr/local/hadoop,并且拥有者是hadoop用户。

4.2  问题1--web监控界面加上安全机制

4.2.1修改Core-Site.xml文件

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

以下为配置添加部分:

  <property>

    <name>hadoop.http.filter.initializers</name>

    <value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>

    <description>HTTP Authentication document in hadoop tar file</description>

  </property>

  <property>

    <name>hadoop.http.authentication.type</name>

    <value>simple</value>

    <description>authentication type for web UI</description>

  </property>

  <property>

    <name>hadoop.http.authentication.token.validity</name>

    <value>36000</value>

    <description>how long authentication token is valid before it needs to be renewed</description>

  </property>

  <property>

    <name>hadoop.http.authentication.signature.secret.file</name>

    <value>/usr/local/hadoop-1.1.2/signature-secret</value>

    <description>signature secret for signing authentication tokens</description>

  </property>

  <property>

    <name>hadoop.http.authentication.cookie.domain</name>

    <value></value>

    <description>domain to use for the http cookie that stores authentication token</description>

  </property>

  <property>

    <name>hadoop.http.authentication.simple.anonymous.allowed</name>

    <value>false</value>

    <description>anonymous web UI requests enabled or disabled</description>

  </property>

4.2.2手动创建signature-secret文件

/usr/local/hadoop-1.1.2目录下创建signature-secret文件,使用如下命令:

echo hadoop >signature-secret

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

4.2.3把该文件分发到两个datanode

namenode创建需要把这个文件分发到各个datanode,使用如下命令:

scp signature-secret hadoop@hadoop2:/usr/local/hadoop-1.1.2

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.2.4重新启动hadoop

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.2.5验证访问

使用http://10.88.147.221:50030/jobtracker.jsp访问jobtracker页面出现如下错误:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

http访问地址加入?user.name=hadoop就能够访问了,不过存在问题是user.name是可以随意输入,在http中明码传递,还是不安全!

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.3  问题2--模拟namenode崩溃并恢复

4.3.1删除NameNodeName目录下所有文件,模拟崩溃

NameNode节点中name目录为 /usr/local/hadoop-1.1.2/hdfs/name,使用如下命令删除该文件夹下所有文件:

cd /usr/local/hadoop-1.1.2/hdfs/name

rm -R *

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.3.2重启Hadoop

使用./stop-all.sh停止Hadoop,然后使用./start-all.sh启动Hadoop,通过jps命令可以看到namenode进程无法启动

cd /usr/local/hadoop-1.1.2/bin

./stop-all.sh

./start-all.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

通过hadoop命令查看hdfs文件时无法连接,如下图所示:

hadoop fs -ls

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

查看logs文件夹下NameNode对应日志文件hadoop-hadoop-jobtracker-hadoop1.log,出现如下错误:

INFO org.apache.hadoop.mapred.JobTracker: Problem connecting to HDFS Namenode... re-trying

java.net.ConnectException: Call to hadoop1/10.88.147.221:9000 failed on connection exception: java.net.ConnectException: Connection refused

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.3.3格式化NameNode

停止Hadoop后,通过如下命令格式化Hadoop

./stop-all.sh

./hadoop namenode -format

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.3.4获取DataNodenamespaceID

通过ssh连接到hadoop2节点,进入DataNode存放数据的文件夹 /usr/local/hadoop-1.1.2/hdfs/data/current,通过如下命令查看VERSION文件内容:

ssh hadoop2

cd /usr/local/hadoop-1.1.2/hdfs/data/current

ls

cat VERSION

获取namespaceID

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.3.5修改NameNodenamespaceID

修改hadoop1机器NameNode目录/usr/local/hadoop-1.1.2/hdfs/name/currentVERSION文件中namespaceID值为上一步骤DataNode所对应的值,结果如下图所示:

cd /usr/local/hadoop-1.1.2/hdfs/name/current

vi VERSION

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.3.6删除NameNodefsimage

通过如下命令删除NameNodefsimage

cd /usr/local/hadoop-1.1.2/hdfs/name/current

rm fsimage

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.3.7SSN中拷贝fsimageNN

NameNodeSSN路径为/usr/local/hadoop-1.1.2/tmp/dfs/namesecondary,把current文件夹下得fsimage拷贝到NN所在路径中,命令如下:

cd /usr/local/hadoop-1.1.2/tmp/dfs/namesecondary

cp fsimage /usr/local/hadoop-1.1.2/hdfs/name/current/

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.3.8重启Hadoop

启动Hadoop,使用jps命令查看,namenode进程正常启动

cd /usr/local/hadoop-1.1.2/bin

./start-all.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.4  问题3--改变HDFS块大小

4.4.1Hadoop中建立/input文件夹

使用如下命令在Hadoop中创建/input文件夹,把start开始的sh脚本文件放到该文件中:

cd /usr/local/hadoop-1.1.2/bin

./hadoop fs -mkdir /input

./hadoop fs -put *.sh /input

./hadoop fs -ls /input

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.4.2查看当前blocksize

查看hadoop2节点数据块大小情况,如下图所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.4.3修改hdfs-site.xml配置文件

NameNode节点hadoop1中修改hdfs-site.xml配置文件,加入如下配置:

  <property>

    <name>dfs.block.size</name>

      <value>134217728</value>

  </property>

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.4.4重启Hadoop

重新启动Hadoop程序

./stop-all.sh

./start-all.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.4.5再次查看当前blocksize

使用如下命令在Hadoop中创建/input1文件夹并复制文件到该文件夹覆盖之前操作的文件:

./hadoop fs -mkdir /input1

./hadoop fs -put *.sh /input1

再次在查看block size,如下图所示

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5  问题4--SNNNN的分离

4.5.1复制虚拟机

复制NameNode节点所在虚拟机作为SecondaryNameNode运行虚拟机

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.2设置SNN虚拟机IP地址

设置该虚拟机IP地址为:10.88.147.224

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.3设置SNN虚拟机名称

设置SNN虚拟机名称为:hadoop4

sudo vi /etc/sysconfig/network

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.4所有节点hosts 文件加入SNN IP对应信息

在所有节点/etc/hosts文件中加入SNNIP地址10.88.147.224对应hadoop4

sudo vi /etc/hosts

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.5所有节点masters文件加入SNN信息

在所有节点masters文件中加入SNN机器名信息,使用如下命令:

sudo vi /usr/local/hadoop-1.1.2/conf/masters

master文件中加入SNN机器名

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.6所有节点中修改hdfs-site.xml

使用如下命令编辑hdfs-site.xml配置文件:

sudo vi /usr/local/hadoop-1.1.2/conf/hdfs-site.xml

hdfs-site.xml文件中加入如下信息:

  <property>

    <name>dfs.secondary.http.address</name>

      <value>hadoop4:50090</value>

  </property>

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.7重启所有虚拟机

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.8配置ssh免密码登录

1.     hadoop410.88.147.244)节点中使用ssh-keygen -t rsa生成私钥和公钥;

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     hadoop410.88.147.244)节点中公钥信息加入到authorized_keys文件中;

ll

chmod 400 -R /home/hadoop/.ssh

cat id_rsa.pub >> authorized_keys

cat authorized_keys

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     authorized_keys分发到各个节点上;

scp authorized_keys hadoop@hadoop1:/home/hadoop/.ssh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.     验证是否能够免登录到各个节点;

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.9重新格式化NameNode

/usr/local/hadoop-1.1.2/bin目录下使用如下命令进行格式化:

./hadoop namenode -format

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.10   启动Hadoop

使用如下命令启动Hadoop

cd /usr/local/hadoop-1.1.2/bin

./start-all.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.5.11   验证

1.     hadoop1NN)查看进程情况,启动了NameNodeJobTracker两个进程:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     hadoop2hadoop3查看进程情况,启动了TraskTracker进程:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

(注意这个节点上DataNode并没有启动,这个问题是由于NameNodeDataNode之间的namespaceID不一致造成的,该问题的解决方法如4.6所描述)

3.     hadoop4SNN)查看进程情况,启动了SecondaryNameNode进程:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.6  问题5--再次格式化namenode,此时datanode是否能加入

4.6.1停止Hadoop并格式化

使用如下命令停止Hadoop并格式化:

./stop-all.sh

./hadoop namenode -format

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.6.2启动Hadoop,并查看datanode状态

使用./start-all.sh启动Hadoop

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

datanode中使用jps查看启动状态:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.6.3查看datanode日志

查看datanode节点hadoop2日志文件夹下日志内容:

cd /usr/local/hadoop-1.1.2/logs

cat hadoop-hadoop-datanode-hadoop2.log

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

报错信息为namenodedatanode之间的namespaceID不一致:

2014-09-30 10:04:41,890 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /usr/local/hadoop-1.1.2/hdfs/data: namenode namespaceID = 87263132; datanode namespaceID = 1318122769

        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:232)

        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:147)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:399)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:309)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1651)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1590)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734)

        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751)

4.6.4解决办法

有两个解决办法:

Ø  修改所有datanode/usr/local/hadoop-1.1.2/tmp/dfs/data/current/VERSION 文件的namespaceID namenodenamespaceID(采用该方法)

Ø  删除datanode /usr/local/hadoop-1.1.2/tmp/dfs/data 目录

 

登录到hadoop1节点上,获取该节点NameNodenamespaceID

cd /usr/local/hadoop-1.1.2/hdfs/name/current

cat VERSION

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

登录到hadoop2hadoop3节点上,修改DataNodenamespaceIDNameNodenamespaceID的值:

cd /usr/local/hadoop-1.1.2/hdfs/data/current

vi VERSION

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.6.5重启集群,查看datanode状态

namenode节点hadoop1使用./start-all.sh启动Hadoop

./start-all.sh

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

datanode节点hadoop2中使用jps查看启动状态:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

datanode进程已经启动

4.7  问题6--控制namenode检查点发生的频率

4.7.1core-site.xml中修改检查点频率

系统默认为1个小时即3600秒,在namenode节点中修改core-site.xml文件,加入如下配置内容:

  <property>

    <name>fs.checkpoint.period</name>

      <value>180</value>

  </property>

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.7.2重启集群,查看检查点更新频率

namenode节点的目录 /usr/local/hadoop-1.1.2/hdfs/name/current fsimageedits等的更新频率。每隔4分钟查看,发现namenode 每隔 180 checkpoint 进行更新一次:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

4.7.3观察checkpoint 前后 namenode的变化

1.     检查点发生前:

l  namenodefsimageedits 最后修改时间为1639

l  16:40 hdfs系统加入 input 文件,namenode 中的edits 记录这次操作,其修改时间为16:40

2.     检查点发生后

l  namenode 中的fsimagefsimagefstimeVERSION等文件在16:42进行了检查点更新

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

4.7.4基本原理

当距离上个checkpoint 时间 为${fs.checkpoint.period} 时:

1. SSN请求NN滚动edits文件,使新的edits log 放到另一个新生成的edits文件。

2. SSN通过 HTTP GET 获取NNfsimageedits文件

3. SSNfsimage文件载入内存,并应用edits 文件中的每一项操作,这样就创建了一个新的合成的fsimage 文件。

4. SSN采用 HTTP POST 方式 将刚合成的fsimage 发送回NN

5. NN用刚从SSN收到的fsimage代替老一版本的fsimage, 并用第一步中产生的edits 代替原先的edits,同时将fctime文件更新到checkpoint发生的时间

最终,名称节点就有了一份最新的fsimage文件和一个更短的edits文件(该edits文件不一定空,当SSN在执行checkpoint操作时,edits 可能已经记录下了一些hdfs系统的操作)

5    问题解决

5.1  安装CentOS64位虚拟机 This host supports Intel VT-x, but Intel VT-x is disabled

在进行Hadoop2.X 64bit编译安装中由于使用到64位虚拟机,安装过程中出现下图错误:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

F1 键进入BIOS 设置实用程序 使用箭头键security面板下找virtualizationEnter 键 进去Intel  VirtualizationTechnology改成EnabledF10 键保存并退出 选择YesEnter 键 完全关机(关闭电源)等待几秒钟重新启动计算机此Intel虚拟化技术开启成功

5.2  *** is not in the sudoers file解决方法

当使用hadoop用户需要对文件夹进行赋权,使用chmod命令出现hadoop is not in the sudoers file.  This incident will be reported错误,如下所示:

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

 

1.     使用su命令进入root用户

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     添加文件的写权限,操作命令为:chmod u+w /etc/sudoers

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     编辑/etc/sudoers文件,使用命令"vi /etc/sudoers"进入编辑模式,找到:"root ALL=(ALL) ALL"在起下面添加"hadoop ALL=(ALL) ALL",然后保存退出。

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

5.3  yum无法下载

1.     /etc/yum.conf中加入proxy=htt://XX.XXX.XX:PORT

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

2.     重启网络

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

3.     再次运行yum install ambari-server则能够正常下载

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

5.4  CentOS 64bit安装Hadoop2.2.0中出现文件编译位数异常

在安装hadoop2.2.0过程中出现如下异常:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

通过分析是由于lib/native目录中有些文件是在32位编译,无法适应CentOS 64位环境造成

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

有两种办法解决:

l  重新编译hadoop,然后重新部署

l  暂时办法是修改配置,忽略有问题的文件

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

5.5  编译Hadoop2.2.0出现代码异常

目前的2.2.0 Source Code 压缩包解压出来的code有个bug 需要patch后才能编译。否则编译hadoop-auth 会提示下面错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure:

[ERROR] /home/hadoop/Downloads/release-2.2.0/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[88,11] error: cannot access AbstractLifeCycle

[ERROR] class file for org.mortbay.component.AbstractLifeCycle not found

[ERROR] /home/hadoop/Downloads/release-2.2.0/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[96,29] error: cannot access LifeCycle

[ERROR] class file for org.mortbay.component.LifeCycle not found

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决

直接修改hadoop-common-project/hadoop-auth/pom.xml,其实就是少了一个包,添加一个dependency

<dependency>

      <groupId>org.mortbay.jetty</groupId>

      <artifactId>jetty-util</artifactId>

      <scope>test</scope>

</dependency>

Hadoop第3周练习--Hadoop2.X编译安装和实验
1 作业题目
2  编译Hadoop2.X 64bit
3    Hadoop2.X 64bit安装
4    实验性问题解决
5    问题解决