1、创建hadoop用户
在每个机器上新建hadoop用户:
useradd -m hadoop
passwd hadoop
2、ssh免登陆设置
首先保证集群内每台datanode和namenode都能相互ping通
在每台机器
vi /etc/hosts
在namenode添加每台机器的ip+主机名
如:
192.168.1.211 namenode
192.168.1.212 datanode1
192.168.1.213 datanode2
。。。。
在datanode添加namenode的ip+主机名
如:
192.168.1.211 namenode
使配置生效
source
/etc/hosts
在所有机器新建~/.ssh目录
mkdir ~/.ssh
在namenode
cd ~/.ssh
ssh-keygen -t rsa
一路回车执行默认设置
结束后在~/.ssh目录下会生成id_rsa.pub(公钥) 和id_rsa(私钥)两个文件
cp id_rsa.pub
authorized_keys
把authorized_keys复制到每个datanode的~/.ssh目录
scp authorized_keys
datanode1:/home/hadoop/.ssh/
scp authorized_keys
datanode2:/home/hadoop/.ssh/
。。。。
在每台机器
chmod 755 ../.ssh/
chmod 644 authorized_keys
在namenode上
ssh datanode1
ssh datanode2
。。。。
之后ssh登录datanode就可以不用输入密码直接登录(hadoop namenode需要此功能)
3、hadoop安装:
在所有机器
su -
hadoop
在namenode上
tar -zxvf
hadoop-1.0.2.tar.gz
ln -s hadoop-1.0.2 hadoop
vi vi
hadoop/conf/hadoop-env.sh
修改JAVA_HOME为本机jdk位置
vi
hadoop/conf/core-site.xml
添加以下内容:
fs.default.name
hdfs://localhost:9000
vi
hadoop/conf/mapred-site.xml
添加以下内容:
mapred.job.tracker
localhost:9001
vi
hadoop/conf/hdfs-site.xml
添加以下内容:
hdfs.replication
3
把hadoop文件夹复制到各个datanode上
scp -r hadoop-1.0.2/
datanode1:/home/hadoop/
scp -r hadoop-1.0.2/
datanode2:/home/hadoop/
。。。。
在每台datanode
cd ~
ln -s hadoop-1.0.2 hadoop
安装完毕
4、启动 hadoop
进入hadoop/bin,首先格式化文件系统:
hadoop namenode
–format
在namenode
~/hadoop/bin/start-all.sh
启动日志如下:
[hadoop@test ~]$
hadoop/bin/start-all.sh
starting namenode, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-namenode-test.out
/usr/local/jdk6/bin/java
datanode1: starting datanode, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-datanode-test2.out
datanode3: starting datanode, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-datanode-jiuzhou4.out
datanode2: starting datanode, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-datanode-jiuzhou3.out
datanode4: starting datanode, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-datanode-jiuzhou1.out
datanode1: /usr/local/jdk6/bin/java
datanode3: /usr/local/jdk6/bin/java
datanode2: /usr/local/jdk6/bin/java
datanode4: /usr/local/jdk6/bin/java
hadoop@namenode's password:
namenode: secondarynamenode running as process 18954. Stop it
first.
starting jobtracker, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-jobtracker-test.out
/usr/local/jdk6/bin/java
datanode3: starting tasktracker, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-tasktracker-jiuzhou4.out
datanode2: starting tasktracker, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-tasktracker-jiuzhou3.out
datanode4: starting tasktracker, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-tasktracker-jiuzhou1.out
datanode1: starting tasktracker, logging to
/home/hadoop/hadoop-1.0.2/libexec/../logs/hadoop-hadoop-tasktracker-test2.out
datanode3: /usr/local/jdk6/bin/java
datanode2: /usr/local/jdk6/bin/java
datanode4: /usr/local/jdk6/bin/java
datanode1: /usr/local/jdk6/bin/java
[hadoop@test ~]$
集群配置完毕