Hadoop三种安装模式:单机模式,伪分布式,真正分布式
一 单机模式standalone
单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。
二 伪分布模式安装
tar xzvf hadoop-0.20.2.tar.gz
Hadoop的配置文件:
conf/hadoop-env.sh 配置JAVA_HOME
core-site.xml 配置HDFS节点名称和地址
hdfs-site.xml 配置HDFS存储目录,复制数量
mapred-site.xml 配置mapreduce的jobtracker地址
配置ssh,生成密匙,使到ssh可以免密码连接
(RSA算法,基于因数不对称加密:公钥加密私钥才能解密,私钥加密公钥才能解密)
cd /root
ssh -keygen -t rsa
cd .ssh
cp id_rsa.pub authorized_keys覆盖公钥,就能免密码连接
启动Hadoop bin/start-all.sh
停止Hadoop bin/stop-all.sh
二 完全分布式模式
1. 配置etc/hosts文件,使主机名解析为IP 或者使用DNS服务解析主机名
2. 建立hadoop运行用户: useradd grid>passwd grid
3. 配置ssh密码连入: 每个节点用grid登录,进入主工作目录,ssh -keygen -t rsa生产公钥,然后将每个节点的公钥复制到同一个文件中,再将这个包含所有节点公钥的文件复制到每个节点authorized_keys目录,这个每个节点之间彼此可以免密码连接
4. 下载并解压hadoop安装包
5. 配置namenode,修改site文件
6. 配置hadoop-env.sh
7. 配置masters和slaves文件
8. 向各个节点复制hadoop
9. 格式化namenode
10.启动hadoop
11.用jps检验各后台进程是否成功启动
vim /etc/hosts
vim /etc/sysconfig/network
vim /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
service NetworkManager stop
chkconfig NetworkManager off
service iptables stop
chkconfig iptables off
service ip6tables stop
chkconfig ip6tables off
vim /etc/sysconfig/selinux enforce–>disabled
setenforce 0
getenforce
useradd hadoop
passwd hadoop
secureCRT生产公钥,将公钥拷贝到/home/hadoop/.ssh下:
chmod 700 .ssh
ssh-keygen -i -f PubKey_Master_Hadoop.pub >> authorized_key
chmod 600 authorized_keys
vim /etc/ssh/sshd-config 如下:
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
PasswordAuthentication no # 禁止密码验证登陆(根据需要,不过一般启用了密钥,就不用密码了)
service sshd restart
secureCRT使用PublicKey(PubKey_Master_Hadoop.pub)连接测试
Master 使用ssh公钥连接Slave:
挂载光盘,创建yum源:
vim /etc/fstab
vim /etc/yum.repos.d/rhel-source.repo
yum -y install ssh
yum -y install rsync
Master host:
mkdir .ssh
ssh-keygen –t rsa –P ‘’
cat id_rsa.pub >> authorized_keys
chmod 700 .ssh
chmod 600 authorized_keys
ssh localhost
scp id_rsa.pub hadoop@192.168.175.12:~/,ssh
ssh 192.168.175.12
Slave host:
mkdir .ssh
cat id_rsa.pub >> authorized_keys
chmod 700 .ssh
chmod 600 authorized_keys
vim /etc/ssh/sshd-config 如上
service sshd restart
安装java:拷贝到/usr/hava
chmod +x jdk-6u37-linux-x64.bin
vim /etc/profile 添加JAVA_HOME
source /etc profile
=================================
安装hadoop-1.2.0:拷贝到/usr/hadoop-1.2.0,所以者和组修改为hadoop
vim /etc/profile:
export JAVA_HOME=/usr/java/jdk1.6.0_37
export HADOOP_HOME=/usr/hadoop-1.2.0
export PATH=
P
A
T
H
:
PATH:
PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
配置hadoop-env.sh: 目录:/usr/hadoop/conf
#export HADOOP_ROOT_LOGGER=DEBUG,console
export JAVA_HOME=/usr/java/jdk1.6.0_37
export HADOOP_HOME_WARN_SUPPRESS=1
配置core-site.xml文件:
hadoop.tmp.dir
/usr/hadoop-1.2.0/tmp
A base for other temporary directories.
配置hdfs-site.xml文件:
dfs.replication
1
dfs.datanode.max.xcievers //同时处理文件上限,hbase并发比较大,至少要4096
4096
dfs.support.append //如不指定,在使用HDFS存储的时候,HBase可能会遗失数据
true
配置mapred-site.xml文件:
mapred.job.tracker
http://192.168.175.11:9001
配置masters文件:
master.hadoop或者192.168.175.11
配置slave文件:
slave1.hadoop或者192.168.175.12
slave2.hadoop或者192.168.175.13
slave3.hadoop或者192.168.175.14
=================================
安装hadoop-2.0.5:拷贝到/usr
tar -zxvf hadoop-2.0.5-alpha.tar.gz
mv hadoop-2.0.5-alpha /usr/hadoop
chown -R hadoop:hadoop hadoop
vim /etc/profile:
# set hadoop path
export HADOOP_HOME=/usr/hadoop
export PATH=
P
A
T
H
:
PATH:
PATH:HADOOP_HOME:$HADOOP_HOME/bin
source /etc/profile
配置hadoop-env.sh: 目录:/usr/hadoop/etc/hadoop
在末尾添加:export JAVA_HOME=/usr/java/jdk1.6.0_37
配置yarn-env.sh和 .bash_profile:
export HADOOP_PREFIX=/usr/hadoop
export PATH=
P
A
T
H
:
PATH:
PATH:HADOOP_PREFIX/bin
export PATH=
P
A
T
H
:
PATH:
PATH:HADOOP_PREFIX/sbin
export HADOOP_MAPRED_HOME=
H
A
D
O
O
P
_
P
R
E
F
I
X
e
x
p
o
r
t
H
A
D
O
O
P
_
C
O
M
M
O
N
_
H
O
M
E
=
{HADOOP\_PREFIX} export HADOOP\_COMMON\_HOME=
HADOOP_PREFIXexportHADOOP_COMMON_HOME={HADOOP_PREFIX}
export HADOOP_HDFS_HOME=
H
A
D
O
O
P
_
P
R
E
F
I
X
e
x
p
o
r
t
Y
A
R
N
_
H
O
M
E
=
{HADOOP\_PREFIX} export YARN\_HOME=
HADOOP_PREFIXexportYARN_HOME={HADOOP_PREFIX}
export HADOOP_CONF_DIR=
H
A
D
O
O
P
_
F
R
E
F
I
X
/
e
t
c
/
h
a
d
o
o
p
e
x
p
o
r
t
Y
A
R
N
_
C
O
N
F
_
D
I
R
=
{HADOOP\_FREFIX}/etc/hadoop export YARN\_CONF\_DIR=
HADOOP_FREFIX/etc/hadoopexportYARN_CONF_DIR={HADOOP_FREFIX}/etc/hadoop
配置core-site.xml文件:
hadoop.tmp.dir
/usr/hadoop/tmp (备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹)
A base for other temporary directories.
配置masters文件:
master.hadoop或者192.168.175.11
配置slave文件:
slave1.hadoop或者192.168.175.12
slave2.hadoop或者192.168.175.13
slave3.hadoop或者192.168.175.14
mkdir -p /usr/hadoop/tmp
mkdir -p /home/hadoop/dfs/data
mkdir -p /home/hadoop/dfs/name
mkdir -p /home/hadoop/mapred/system
mkdir -p /home/hadoop/mapred/local
格式化HDFS文件系统:使用hadoop用户,只需格式一次:hadoop namenode -format
开始守护进程
# hadoop-daemon.sh start namenode
# hadoop-daemon.sh start datanode
可以同时启动:start-dfs.sh
开始 Yarn 守护进程
# yarn-daemon.sh start resourcemanager
# yarn-daemon.sh start nodemanager
或同时启动:start-yarn.sh
检查守护进程是否启动
# jps
将hadoop日志级别改为debug,并且在控制台输出:export HADOOP_ROOT_LOGGER=DEBUG,console