基于Ubuntu 14的hadoop全分布集群搭建

来源:互联网 发布:程序员岗位职责说明书 编辑:程序博客网 时间:2024/06/06 09:21

1、安装前的准备

安装环境:3台一样的虚拟机Ubuntu 14+hadoop2.6.0+java1.8.0

虚拟机:VMware

虚拟机ip地址以及hostname主机名:

<span style="white-space:pre"></span>192.168.238.128     slaver1192.168.238.129     slaver2192.168.238.130    master</span>

1.1主机hosname的设置

快捷方式ALt+Ctrl+T打开命令行,输入hostname可以查看主机的hostname。

修改hostname可以通过命令sudo gedit /etc/hostname,然后在打开的文件里面输入主机名即可

1.2修改hosts

命令行键入:sudo gedit /etc/hosts ,然后在打开的文件后面添加如何代码。
192.168.238.128     slaver1192.168.238.129     slaver2192.168.238.130    master
保存文件后重启电脑。可以通过ping+hostname测试机器之间能否通信。

2、三台虚拟机上安装同样版本的java

到Oracle网站上面下载jdk1.8.0_20 安装包。文件后缀名是tar.gz .java 的安装路径是/usr/local/java,首先在
usr/local路径下面通过命令:sudo mkdir java 新建java文件夹。然后去到安装文件保存的路径通过命令:
cp jdk1.8.0_20.tar.gz /usr/local/java/ 把安装复制到java 文件夹,然后通过sudo tar -zxvf jdk1.8.0_20.tar.gz 解压安装包。
最后是配置环境变量:sudo gedit /etc/profile 打开文件在后面添加如下代码;
export JAVA_HOME=/usr/local/java/jdk1.8.0_20 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
键入source /etc/profile 命令更新环境变量。
可以通过键入java -version查看java是否安装成功,输入如下信息就成功了.
java version "1.8.0_20"Java(TM) SE Runtime Environment (build 1.8.0_20-b26)Java HotSpot(TM) Client VM (build 25.20-b23, mixed mode)

3、创建集群专用的用户hadoop(所以虚拟机一样)

3.1创建用户组
sudo addgroup hadoop 会要求输入用户密码。
3.2创建用户hadoop,并归到hadoop用户组
sudo adduser -ingoup hadoop hadoop
3.3给hadoop用户加权限
sudo gedit /etc/sudoers 打开文件后,找到root ALL=(ALL:ALL) ALL 语句,在语句下面添加如下语句
hadoop ALL=(ALL:ALL) ALL
可以键入id hadoop 查看是否创建成功,会输出以下信息:
uid=1002(hadoop) gid=1002(hadoop) groups=1002(hadoop)

4.ssh免密码安装和配置

4.1 ssh命令行安装
sudo apt-get install ssh openssh-server 可能要先update一下
4.2 生成公私密钥对
ssh-kengen -t rsa -P ''(单引号) enter后即可在~/.ssh下生成id_rsa和id_rsa.pub密钥对
4.3 将id_rsa.pub复制给authorized_keys授权文件
先进入~/.ssh
然后 cat id_rsa.pub >> authorized_keys
给予文件权限 chmod 644 authorized_keys
4.4 验证ssh是否配置成功
ssh localhost
若不需要输入密码则本地(本机)成功配置
4.5 把另外两台机器的公钥发到master主机
scp ~/.ssh id_rsa.pub hadoop@master:/home/hadoop/id_rsa_01.pub(slaver1上操作)
scp ~/.ssh id_rsa.pub hadoop@master:/home/hadoop/id_rsa_02.pub(slaver2上操作)
4.6 在master上合并公钥(在master上操作)
cat id_rsa_01.pub >> ~/.ssh/authorized_keys
cat id_rsa_01.pub >> ~/.ssh/authorized_keys
4.7 把master上授权文件发到slaver1和slaver2
scp ~./ssh/authorized_keys hadoop@slaver1:/home/hadoop/.ssh/
scp ~./ssh/authorized_keys hadoop@slaver2:/home/hadoop/.ssh/
4.8 赋予文件权限
chmod 644 authorized_keys (slaver1)
chmod 644 authorized_keys (slaver2)
4.9测试
这时ssh slaver1,ssh slaver2 ,ssh master都应该可以免密码登陆

5、正式安装hadoop 2.6.0

5.1 注意!!!

在master虚拟机上下载hadoop-2.6.0.tar.gz可以到官网上面去下载。hadoop是分32位和64位的,我的是32位
的虚拟机,所以示安装32位的hadoop。32位的机子如果装了64位的hadoop会出现运行错误。所以安装之前一定
要看清楚安装的hadoop是多少位的。具体查看方法如:
把hadoop-2.6.0.tar.gz放到/home/hadoop目录下,解压得到文件夹hadoop-2.6.0.
cd 到/hadoop-2.6.0/lib/native路径里面,通过file libhadoop.so.1.0.0 命令可以知道hadoop是32bit还是64bit

5.2配置hadoop

配置文件的路径:/home/hadoop/hadoop-2.6.0/etc/hadoop/
配置的文件:hadoop-env.sh,yarn-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml,slaves

5.2.1 配置hadoop-env.sh 和yarn-env.sh

在这两个文件里面添加java的路径。在文件里面找到export JAVA_HOME语句。
若是没有就直接添加export JAVA_HOME=/usr/local/java/jdk1.8.0_20
5.2.2 配置core-site.xml
<configuration>  <property>    <name>fs.defaultFS</name>    <value>hdfs://master:9000</value>  </property>  <property>    <name>hadoop.tmp.dir</name>    <value>/home/hadoop/tmp</value>    <description>Abase for other temporary directories.</description>  </property></configuration>

5.2.3 配置hdfs-site.xml

<configuration>  <property>    <name>dfs.namenode.name.dir</name>    <value>file:/home/hadoop/tmp/dfs/name</value>  </property>  <property>    <name>dfs.datanode.data.dir</name>    <value>file:/home/hadoop/tmp/dfs/data</value>  </property>  <property>    <name>dfs.datanode.ipc.address</name>    <value>0.0.0.0:50020</value>  </property>  <property>    <name>dfs.datanode.http.address</name>    <value>0.0.0.0:50075</value>  </property>  <property>    <name>dfs.replication</name>    <value>2</value>  </property></configuration>

5.2.4 配置mapred-site.xml

如果文件不存在,可以通过命令生成:
cp mapred-site.xml.template mapred-site.xml
<configuration>  <property>    <name>mapreduce.framework.name</name>    <value>yarn</value>  </property></configuration>

5.2.5 配置yarn-site.xml

<configuration>  <property>    <name>yarn.resourcemanager.hostname</name>    <value>master</value>  </property>  <property>    <name>yarn.nodemanager.aux-services</name>    <value>mapreduce_shuffle</value>  </property></configuration>

5.2.6 配置slaves

修改slaves为:
slaver1
slaver2

5.3配置hadoop环境变量

sudo gedit /etc/profile 打开配置文件,在后面添加以下语句:
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0export PATH=${HADOOP_HOME}/bin:$PATHexport PATH=${HADOOP_HOME}/sbin:$PATH
保存关闭后执行source /etc/profile使之生效
5.4 格式化集群
格式化命令:$/home/hadoop/hadoop-2.6.0/bin/hdfs namenode -forma

15/02/12 21:29:53 INFO namenode.FSImage: Allocated new BlockPoolId: BP-85825581-192.168.187.102-142374779378415/02/12 21:29:53 INFO common.Storage: Storage directory /home/hadoop/tmp/dfs/name has been successfully formatted.等看到这个时,表示格式化ok
5.5 开启集群
开启hdfs:$/home/hadoop/hadoop-2.6.0/sbin/start-dfs.sh
开启yarn:$/home/hadoop/hadoop-2.6.0/sbin/start-yarn.sh
master上输入jps应该可以看到以下4个进程
ResourceManagerSecondaryNameNodeNameNodejps

slaver1和slaver2上输入jps应该可以看到以下3个进程

DataNodeNodeManagerjps</span>

可以通过http://master:50070/,http://master:8080/ 查看集群的状态
也可以通过命令行$/home/hadoop/hadoop-2.6.0/bin hdfs dfsadmin -report 查看
hdfs的状态报告

6 注意事项

hdfs的tmp和data文件夹最好事先创建,namenode重新格式化前要先清空tmp和data里面的东西

参考文档:http://www.cnblogs.com/yjmyzz/p/4280069.html
http://blog.csdn.net/swuteresa/article/details/9446483
















0 0
原创粉丝点击