hadoop完全分布式集群搭建(Ubuntu14.04+Hadoop2.5.1)(自测成功)

来源:互联网 发布:云计算彩票分析师 编辑:程序博客网 时间:2024/06/04 18:22

一、准备工作

1、所需软件:http://pan.baidu.com/disk/home#from=share_pan_logo&path=%252Fhadoop
虚拟机 vmware workstation 11
系统:Ubuntu14.04(64位)
Java jdk:jdk1.8.5
Hadoop:hadoop-2.5.1
辅助工具:winscp
2、在windows下安装vmware,新建虚拟机,并安装ubuntu系统(主机名h1,用户名hadoop)。
3、安装jdk,配置java环境
(1)通过winscp将本地的jdk-8u25-linux-x64.tar复制h1的/home/hadoop目录下。
(2)通过快捷键ctrl+alt+t打开h1的命令窗口(出现hadoop@h1:~$ )。
(3)安装(解压)jdk sudo tar -zxf jdk-8u25-linux-x64.tar.gz
(4)重命名 sudo mv jdk1.8.0_25 jdk
(4)打开配置文件 sudo gedit /etc/profile
(5)加入以下代码(根据实际安装目录更改路径):

     export JAVA_HOME=/home/hadoop/jdk       export JRE_HOME=${JAVA_HOME}/jre      export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib      export PATH=${JAVA_HOME}/bin:$PATH

(6)使环境变量生效 source /etc/profile
(7)测试jdk是否安装成功 java -version
输出
java version “1.8.0_25”
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
表示成功!
4、安装SSH(ubuntu自带)
(1)安装ssh sudo apt-get install ssh
(2)测试 ssh localhost 输入当前用户的密码回车 没异常说明安装成功!
(3)开启SSHD服务 sudo apt-get install openssh-server
(4)确认是否启动 ps -e | grep ssh 找到sshd就是启动了!
5、通过vmware克隆出另外两个虚拟机h2和h3。通过命令 ifconfig 查看h1、h2、h3的ip地址,并且保证三者之间可以ping通。
6、配置每台虚拟机的hosts
(1)打开文件 sudo gedit /etc/hosts (如果打不开,可能是权限问题,可以通过 sudo chmod 774 /etc/hosts 使文件可读写)。
(2)将hosts中的内容替换为

192.168.58.135  h1192.168.58.136  h2192.168.58.137  h3

(前提是保证h1、h2、h3中的/etc/hostname内容分别为h1、h2、h3)

二、配置Hadoop

1、无密码登录
在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。首先设置namenode的ssh为无需密码的、自动登陆:
(1)生成公钥和私钥 ssh-keygen -t rsa 完成后会在/home/hadoop目录产生隐藏文件.ssh。
(2)将公钥追加到authorized_keys中 cp id_rsa.pub authorized_keys
(3)测试 ssh h1 第一次会提示确认继续连接,打yes,这会把该服务器添加到你的已知主机列表中。
同样在h2,h3上做以上操作。使各个节点相互访问不需要密码,将三个节点的authorized_keys文件里面的内容合成一个文件然后替换掉原来的,替换完毕后可以用 ssh XX(XX为主机名)相互测试是否连接成功。
2、安装Hadoop并配置Hadoop文件
(1)通过winscp将本地的hadoop-2.5.1-x64.tar复制h1的/home/hadoop目录下。
(2)安装(解压)hadoop sudo tar xzf hadoop-2.5.1-x64.tar.gz
(4)重命名 sudo mv hadoop-2.5.1 hadoop
(5)配置profile sudo gedit /etc/profile 尾部添加如下代码:

export HADOOP_HOME=/home/hadoop/hadoopexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_YARN_HOME=$HADOOP_HOMEexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

设置立即生效 source /etc/profile
(6)修改Hadoop配置文件core-site.xml sudo gedit hadoop/etc/hadoop/core-site.xml
添加如下代码:

<configuration>  <property>        <name>fs.default.name</name>        <value>hdfs://h1:49000</value>    </property>  <property>    <name>hadoop.tmp.dir</name>    <value>/home/hadoop/var</value>  </property></configuration>

(7)修改Hadoop配置文件hdfs-site.xml sudo gedit hadoop/etc/hadoop/hdfs-site.xml
添加如下代码:

<configuration>  <property>    <name>dfs.name.dir</name>    <value>/home/hadoop/name1,/home/hadoop/name2</value>     <description> </description>  </property>  <property>    <name>dfs.data.dir</name>    <value>/home/hadoop/data1,/home/hadoop/data2</value>    <description> </description>  </property>  <property>    <name>dfs.replication</name>    <value>2</value>  </property></configuration>

(7)默认情况下,/home/hadoop/hadoop/etc/hadoop/文件夹下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。

 cp mapred-site.xml.template mapred-site.xml 

(8)修改Hadoop配置文件mapred-site.xml sudo gedit hadoop/etc/hadoop/mapred-site.xml
添加如下代码:

<configuration>  <property>    <name>mapreduce.framework.name</name>    <value>yarn</value> </property> <property>    <name>mapreduce.jobhistory.address</name>    <value>h1:10020</value> </property> <property>  <name>mapreduce.jobhistory.webapp.address</name>  <value>h1:19888</value> </property>   <property>      <name>mapred.local.dir</name>      <value>/home/hadoop/var</value>    </property></configuration>

(9)修改Hadoop配置文件yarn-site.xml sudo gedit hadoop/etc/hadoop/yarn-site.xml
添加如下代码:

<configuration><!-- Site specific YARN configuration properties --><property>     <name>yarn.nodemanager.aux-services</name>     <value>mapreduce_shuffle</value>  </property>  <property>     <name>yarn.resourcemanager.address</name>     <value>h1:8032</value>  </property>  <property>     <name>yarn.resourcemanager.scheduler.address</name>     <value>h1:8030</value>  </property>  <property>     <name>yarn.resourcemanager.resource-tracker.address</name>     <value>h1:8031</value>  </property>  <property>     <name>yarn.resourcemanager.admin.address</name>     <value>h1:8033</value>  </property>  <property>     <name>yarn.resourcemanager.webapp.address</name>     <value>h1:8088</value>  </property>  </configuration>

(10)修改Hadoop配置文件slaves sudo gedit hadoop/etc/hadoop/slaves
添加如下代码:

h2h3

(11)修改Hadoop配置文件hadoop-env.sh sudo gedit hadoop/etc/hadoop/hadoop-env.sh
添加如下代码:

export JAVA_HOME=/home/hadoop/jdk

(11)修改Hadoop配置文件yarn-env.sh sudo gedit hadoop/etc/hadoop/yarn-env.sh
添加如下代码:

export JAVA_HOME=/home/hadoop/jdk

(12)配置完毕,把配置好的hadoop文件夹拷贝到其他集群的机器上(h2和h3)

scp -r /home/hadoop/hadoop hadoop@h2:/home/hadoopscp -r /home/hadoop/hadoop hadoop@h3:/home/hadoop

(13)在h2和h3上做步骤(5)。

三、启动hadoop

1、先格式化一个新的分布式文件系统 cd hadoop hadoop namenode -format
成功后系统输出: INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name2 has been successfully formatted. 说明格式化成功!执行完后可以到master机器上看到/home/hadoop//name1和/home/hadoop//name2两个目录。
2.启动所有节点 start-all.sh(同时启动HDFS和Map/Reduce)在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。
3、查看进程 jps 出现以下信息:
7692 ResourceManager
7348 NameNode
14874 Jps
7539 SecondaryNameNode
4、jobhistory是Hadoop自带了一个历史服务器,记录Mapreduce历史作业。默认情况下,jobhistory没有启动,可用以下命令启动: mr-jobhistory-daemon.sh start historyserver
5、查看进程 jps 出现以下信息:
7692 ResourceManager
8428 JobHistoryServer
7348 NameNode
14874 Jps
7539 SecondaryNameNode

恭喜你,hadoop集群配置成功!

0 0
原创粉丝点击