Hadoop学习(一)Hadoop2.6.0伪分布式安装与配置

环境

准备Ubuntu 14.04 LTS 并更新apt

  1. 执行
1
sudo apt-get update
  1. 可更改数据源进行update

设置静态IP地址

必须设置静态IP,为以后的集群,分布式等做铺垫

  1. 编辑interfaces文件
1
sudo vi /etc/network/interfaces
  1. 写入如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#如果做集群,则192.168.1.100此IP为主节点
auto eth0
iface eth0 inet static
address 192.168.1.100 #IP地址
gateway 192.168.1.1 #网关
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

#如果做集群,则192.168.1.101此IP为从节点
auto eth0
iface eth0 inet static
address 192.168.1.101 #IP地址
gateway 192.168.1.1 #网关
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

修改HostName

  1. 编辑hostname文件
1
sudo vi /etc/hostname
  1. 写入ubuntu
  2. 那么ubuntu就是本机器的主机名,可以hostname进行查看

IP与HostName绑定

  1. 执行
1
sudo vi /etc/hosts
  1. 写入如下:
1
2
3
4
5
#如果做集群,则192.168.1.101此IP为从节点
192.168.1.100 hadoop-yarn.jasonsoso.com hadoop-yarn master

#如果做集群,则192.168.1.101此IP为从节点
192.168.1.101 slave1.jasonsoso.com slave1
  1. 那么访问hadoop-yarn.jasonsoso.com则访问IP为192.168.1.100的机器

创建hadoop系统用户

如果你安装 Ubuntu 的时候不是用的 hadoop 用户,那么最好增加一个名为 hadoop 的用户,密码可设置为 123456 (密码随意指定)。

  1. 创建新用户
1
sudo useradd -m hadoop -s /bin/bash
  1. 修改密码
1
sudo passwd hadoop
  1. 为 hadoop 用户增加管理员权限,方便部署
1
sudo adduser hadoop sudo

Sun JDK 7

详情请参考 ubuntu下配置java环境HOW TO INSTALL ORACLE JAVA 7 IN DEBIAN VIA REPOSITORY

安装SSH server、配置SSH无密码登陆

  1. 执行安装
1
sudo apt-get install openssh-server
  1. 登陆本机
1
ssh localhost
  1. 配置SSH无密码登陆
1
2
3
sudo ssh-keygen -t rsa		# 生成密钥	
sudo ssh-copy-id ubuntu@localhost # 拷贝密钥到某台机器
sudo ssh localhost #进行无密码登陆
  1. 如果做集群,则配置SSH无密码登陆,实现多机器互通

hadoop2.6.0安装

  1. 下载hadoop2.6.0
    官网hadoop下载http://hadoop.apache.org/releases.html
  2. 解压tar包
1
sudo tar -zxvf ./hadoop-2.6.0.tar.gz -C /opt/hadoop  # 解压到/opt/hadoop中
则hadoop的安装根目录为:`/opt/hadoop/hadoop-2.6.0`
  1. 修改文件权限
1
sudo chown -R hadoop:hadoop ./hadoop-2.6.0

配置

  1. 配置环境变量
    下面#set Hadoop才是真正的hadoop配置,而#set java environment是必须的java环境变量,#set findbugs#set ant#PROTOBUF#set maven environment是编译hadoop代码必须的,现在没有编译hadoop源码,只需要java环境和hadoop环境足矣。

执行sudo vi /etc/profile修改profile文件
添加如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#set java environment
JAVA_HOME=/usr/java/jdk1.7.0_60
export JRE_HOME=/usr/java/jdk1.7.0_60/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH


#set findbugs
export LD_LIBRARY_PATH=/usr/local/lib/
export FINDBUGS_HOME=/usr/local/findbugs-3.0.0
export PATH=$PATH:$FINDBUGS_HOME/bin

#set ant
ANT_HOME=/usr/local/apache-ant-1.9.4
export PATH=$PATH:$ANT_HOME/bin

#PROTOBUF
export PROTOC_HOME=/usr/local/protobuf-2.5.0
export PATH=$PATH:$PROTOC_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PROTOC_HOME/lib`

#set maven environment
M2_HOME=/usr/maven/apache-maven-3.0.5
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$M2_HOME/bin:$PATH

#set Hadoop
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.0
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
  1. hadoop-env.sh
1
2
export JAVA_HOME=/usr/java/jdk1.7.0_60		
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.0
  1. yarn-env.sh
1
2
export JAVA_HOME=/usr/java/jdk1.7.0_60		
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.0
  1. mapred-env.sh
1
2
export JAVA_HOME=/usr/java/jdk1.7.0_60		
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.0
  1. core-site.xml
1
2
3
4
5
6
7
8
9
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop-yarn.dragon.org:8020</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.2.0/data/tmp</value>
</property>
  1. hdfs-site.xml
1
2
3
4
5
6
7
8
<property>		
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
  1. yarn-site.xml
1
2
3
4
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
  1. mapred-site.xml
1
2
3
4
<property>	 	        		
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

启动

  1. 启动HDFS(NameNode、DataNode、SecondaryNameNode)

    • NameNode 格式化
1
bin/hdfs namenode -format
- 启动NameNode
1
sbin/hadoop-daemon.sh start namenode
- 启动DataNode
1
sbin/hadoop-daemon.sh start datanode
- 启动SecondaryNameNode
1
sbin/hadoop-daemon.sh start secondarynamenode
  1. 启动YARN(ResourceManager、NodeManager)
    • 启动ResourceManger
1
sbin/yarn-daemon.sh start resourcemanager
- 启动NodeManager
1
sbin/yarn-daemon.sh start nodemanager
  1. 启动历史服务器
1
sbin/mr-jobhistory-daemon.sh start historyserver
  1. 启动方式
1
2
3
sbin/start-dfs.sh
sbin/start-yarn.sh
sbin/start-all.sh

实例与测试

启动后,用命令jps检查是否启动

访问HDFD的NameNode url http://hadoop-yarn.jasonsoso.com:50070/

访问HDFD的Secondary NameNode url http://hadoop-yarn.jasonsoso.com:50090/

本文配置主要是为伪布式,那么Hadoop 集群的安装配置大致为如下:

  1. 选定一台机器作为 Master 主节点

  2. 在 Master 主机上配置hadoop用户、安装SSH server、安装Java环境

  3. 在 Master 主机上安装Hadoop,并完成配置

  4. 在其他主机上配置hadoop用户、安装SSH server、安装Java环境

  5. 将 Master 主机上的Hadoop目录复制到其他主机上

  6. 开启、使用 Hadoop

  7. 需要特别注意的是:

    • 网络配置hosts
    • SSH无密码登陆各节点
    • 部分配置