hadoop安装笔记
(以下内容为我个人的安装过程,大家可根据自身需要修改安装路径等内容,如有疑问欢迎交流)
一、JDK安装:
1、获得程序包 jdk-6u16-dlj-linux-i586.bin
http://java.sun.com/javase/downloads/index.jsp
2、解压安装
$./jdk-6u16-dlj-linux-i586.bin
读完协议最后输入yes,程序包开始解压。
3、移到目标目录
$mv jdk-6u16 /usr/local/src/jdk
4、设置环境变量
vi /etc/profile
//在profile文件最后添加
#set Java environment
export JAVA_HOME=/usr/local/src/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
5、可能出现的错误
安装好以后,为了检测JDK是否已经安装正确,可以使用
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
Java HotSpot(TM) Server VM (build 20.8-b03, mixed mode)
(注:一般来说可能要让环境变量更新,需要先退出终端,再进入一次就可以了)
二、安装SSH
- 验证SSH安装
检查节点上是否安装了SSH
$ which ssh
/usr/bin/ssh
$ which sshd
/usr/sbin/sshd
$ which ssh-keygen
/usr/bin/ssh-keygen
如果接收到的类似这样的一个错误消息:
/usr/bin/which: no ssh in (/usr/bin:/bin/usr/sbin…)
你可以通过Linux安装包管理器安装OpenSSH或者直接下载其源码安装。
- 生成SSH密钥对
在生成密钥对的过程中,务必避免输入口令,否则,主节点每次试图访问其他节点时,你都要手动地输入这个口令。
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/aho/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/aho/.ssh/id_rsa.
Your public key has been saved in /home/aho/.ssh/id_rsa.pub.
The key fingerprint is:….
- 将公钥分布并登陆验证
首先将主节点的公钥改名,并修改权限
$ chmod 700 ~/.ssh
$ cd .ssh
$ mv id_rsa.pub authorized_keys
$ chmod 744 authorized_keys
再将authorized_keys文件scp到其他每个从节点
此时尝试从主节点登陆到目标节点来验证它的正确性
$ ssh target
如果此时不需要你输入密码即可登陆代表你已经安装成功
三、Hadoop基础篇(安装完成单节点Hadoop)
- 源代码下载
1.1 下载Hadoop 源码压缩包至服务器
wget
http://mirror.bjtu.edu.cn/apache/hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz
1.2 解压源码压缩包 tar HadoopInstall
Tar –zvxf hadoop-0.20.2.tar.gz –C HadoopInstall
HadoopInstall即为Hadoop安装目录
2. 环境变量配置 : (hadoop_env.sh )
目录/home/YOURDictionary/HadoopInstall/ hadoop-0.20.2 /conf
2.1 JAVA_HOME:必选变量。
除了设置系统的JAVA_HOME变量外,还需要设置hadoop中的conf目录下hadoop-env.sh 文件
比如我的就是增加一条:
export JAVA_HOME=/usr/local/src/jdk
2.2 HADOOP_HOME:可选变量(最好将这句增加到/etc/profile文件中,以避免每次登陆都要设置)
HADOOP_HOME默认的是bin目录的父目录,即/home/usr/HadoopInstall/ hadoop-0.20.2。
设置export HADOOP_HOME=/home/usr/HadoopInstall/ hadoop-0.20.2
3. 环境配置文件配置
主要有三个配置文件:core-site.xml, hdfs-site.xml, mapred-site.xml
3.1 conf/core-site.xml
<configuration> |
<property> |
<name>fs.default.name</name> —-文件系统的默认名称 |
<value>hdfs://(master ip):9000</value> |
</property> |
</configuration> |
同理配置其他参数: a. Hadoop运行的临时目录 hadoop.tmp.dir=/home/ads/data(自己设定自己虚拟机上的文件夹路径) |
3.2 conf/hdfs-site.xml:
<configuration> |
<property> |
<name>dfs.replication</name> |
<value>1</value> |
</property> |
</configuration> 同理配置其他参数: a. DFS的数据保存目录:dfs.data.dir=/home/data,/home1/data(自己设定自己虚拟机上的文件夹路径 b. DFS Namenode保存的位置:dfs.name.dir=${hadoop.tmp.dir}/dfs/name,/home/ads/data1/dfs/name(自己设定自己虚拟机上的文件夹路径) |
3.3 conf/mapred-site.xml:
<configuration> |
<property> |
<name>mapred.job.tracker</name> — Jobtracker的位置 |
<value>(master ip):9001</value> |
</property> |
</configuration> 同理配置其他参数: a. 单节点同时运行的最大map数:mapred.tasktracker.map.tasks.maximum=8 b. 单节点同时运行的最大reduce数:mapred.tasktracker.reduce.tasks.maximum=6 |
4 启动
进入~/HadoopInstall/ hadoop-0.20.2目录
4.1 格式化namenode
执行下面的命令$bin/hadoop namenode –format
4.2 简单启动所有守护
$ bin/start-all.sh
4.3 停止守护
$bin/stop-all.sh
5 验证测试
启动成功后,可浏览器查看以下地址:
5.1 Job tracker
http://master名称:50030,能查看此页面,页面状态(Stated)显式为RUNNing(页面左上角)。
5.2 NameNode
http://master名称:50070,能看到Live Datanodes。
四、 Hadoop高级篇(安装完成多点Hadoop)
- 设置hosts,在主机和从机上设置hosts,比如我的三台机器都在/etc/hosts上添加
159.xxx.xxx.01 master
159.xxx.xxx.02 slaver1
159.xxx.xxx.03 slaver2
- 修改hadoop的conf目录下的(内容必须跟你在hosts中设置的一致)
masters文件增加:
master
slaves文件增加:
slave1
slave2
- 部署Hadoop集群 (必须放在最后一步哦 )
前面讲的这么多Hadoop的环境变量和配置文件都是在dbrg-1这台master主机上的,将上述配置好的hadoop分发至各个slave的相同位置,注意要保证目录结构一致,
$scp -r /home/ YOURDictionary /HadoopInstall slaver1:/home/ YOURDictionary / HadoopInstall
$scp -r /home/ YOURDictionary /HadoopInstall slaver2:/home/ YOURDictionary / HadoopInstall
- 启动和验证(同基础篇一致)
参考文献:
《Hadoop实战》 【美】Chuck Lam 人们教育出版社
“Hadoop超级安装手册” 淘宝—士诚 量子恒道官方博客