环境准备:
安装虚拟软件:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.0-1295980.exe
Linux操作系统:http://mirror.nsc.liu.se/centos-store/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso
安装文件以及jdk见共享:http://pan.baidu.com/s/1o67dg4i
虚拟机安装步骤略。
1.虚拟配置
1.1网络配置
a.在虚拟机中选址网络配置如下
b.设置网络自动连接
# vi/etc/sysconfig/network-scripts/ifcfg-eth0
将ONBOOT=no 改成 yes 就表示开机后默认链接etho
# /etc/init.d/network restart
c.安装ssh小工具[系统已自带ssh]
# yum -y install openssh-clients
安装后可以使用ssh-copy-i命令
d.修改虚拟机默认启动模式
#vim /etc/inittab
将5改成3,命令行模式启动
e.配置集群hosts
# vim /etc/hosts 192.168.71.128 master 192.168.71.129 slave01 192.168.71.131 slave02
f.修改hostname
# vim /etc/sysconfig/network
我这里将主机名改为slave01,或者使用命令 ,临时修改,不用重启
# hostname slave01
g.禁用SELinux
# vim /etc/selinux/config
SELINUX=disabled
或者使用命令临时修改,不用重启
# setenforce Permissive
h. 关闭防火墙
# service iptables stop
可用setup命令设置启动时禁用防火墙
1.2 创建用户
# useradd cdh42 # passwd cdh42
2.安装jdk
2.1安装
将jdk-6u45-linux-x64.bin 拷贝到/usr/local目录下
#cd /usr/local #chmod a+x jdk-6u45-linux-x64.bin #./jdk-6u45-linux-x64.bin #mv jdk1.6.0_45 jdk1.6
2.2配置jdk环境变量
root用户下:
#vim /etc/profile
加入:
export JAVA_HOME=/usr/local/jdk1.6 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
使文件生效
#source /etc/profile
在cdh42用户下:
设置ssh互信
生成密钥 ssh-keygen -t rsa
slave01到slave01的无密码访问互信:
ssh-copy-id -i ~/.ssh/id_rsa.pub cdh42@slave01 ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave01
3.安装Hadoop
3.1拷贝文件
拷贝文件到用户cdh42目录下(/home/cdh42):
#su cdh42 #tar zxvf hadoop.tar.gz #tar zxvf hadoop-mr1.tar.gz
3.2修改配置文件
设置环境变量
在cdh42用户下:
#vim ~/.bash_profile
添加:
export HADOOP_HOME=/home/cdh42/hadoop-mr1 export HADOOP_PREFIX=/home/cdh42/hadoop export PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin export HADOOP_LIBRARY_PATH=${HADOOP_HOME}/lib/native export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HADOOP_HOME}/lib/native
添加好后
# source ~/.bash_profile
使文件生效;
修改hadoop的配置文件
目录为hadoop/etc/hadoop 和 /home/cdh42/hadoop-mr1/conf
要修改的文件
hadoop-env.sh、core-site.xml、hdfs-site.xml、slaves、masters (mr1中)
hadoop/etc/hadoop中:
(红色为修改的部分)
hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.6 export HADOOP_HOME=/home/cdh42/hadoop export HADOOP_SECURE_DN_PID_DIR=/home/cdh42/tmp export HADOOP_PID_DIR=/home/cdh42/dfsdata/tmp
core-site.xml:
fs.defaultFS hdfs://slave01:9002
hadoop.tmp.dir /home/cdh42/dfsdata/tmp
hdfs-site.xml
dfs.namenode.name.dir
/home/cdh42/dfsdata/namenode
dfs.datanode.data.dir /home/ cdh42/dfsdata/datanode/data
topology.script.file.name /home/cdh42/hadoop/sbin/rackmap.sh
slaves
#master slave01
/home/cdh42/hadoop-mr1/conf 中:
hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml slaves masters
修改和hadoop/etc/hadoop中的修改项差不多,主要修改主机名 数据存放目录
hadoop-env.sh 的修改主要是环境变量,
特别注意其中的目录 test或usr01 改成cdh42
masters 现在是单机部署,修改为主机的hostname, 我这里是slave01;
4.启动hadoop服务
启动时如果出现:bash: start-dfs.sh: command not found
执行
[cdh42@slave01 ~]$ source ~/.bash_profile
再启动服务就行了
配置好后启动HDFS:
hdfs 格式化(只需第一次执行)
# hdfs namenode -format
启动NameNode和DataNode# hadoop-daemon.sh start namenode # hadoop-daemon.sh start datanode 或者 一起启动 # start-dfs.sh
启动mapreduce
#start-mapred.sh#yarn-daemon.sh start resourcemanager # yarn-daemon.sh start nodemanager或者 一起启动 # start-yarn.sh
启动过程中如果需要输入密码,输入用户的密码[最好是设置好ssh互信,就不用输入密码了] 检查一下Demo是否启动 #jps 在我的机器上输出是这样的: