注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

W_中原的博客笔记

通知:新博客日志将更新到个人站点:http://www.zhgyuan.cn/

 
 
 

日志

 
 

【笔记】Hadoop分布式系统环境搭建  

2016-09-05 21:19:30|  分类: 学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

搭建完了hadoop的伪分布式环境,现在来搭建一个真正意义上的分布式环境,由于设备限制,这里搭建一个具有两个节点的hadoop分布式系统。

 

搭建环境:

VmWare 12.0

hadoop版本:1.2.1

Linux系统:Ubuntu14.04, 32

jdk版本:1.7

 

这里两台虚拟机,一台作为主机同时作为一个节点,另一台虚拟机作为第二个节点。

主机名:wzy2015

从机1名:hadoop_slave1

用户名:都是Hadoopor

 

主机IP地址:192.168.1.100

从机1 IP地址:192.168.1.101

 

1)修改主机名:

主机名不是非要修改,但为了区分,尤其是大规模的集群时就尤为重要了。

查看主机名:$cat /etc/hostname

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

修改:$sudo vim /etc/hostname

然后退出保存,重启reboot

 

2)修改hosts

hosts里记录了主机名和ip的映射关系,默认只有主机名和localhost的映射ip,现在添加从机1的主机名和ip映射,即将hadoop_slave1192.168.1.101添加进去:

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 


现在连接好网线,ping通主机和从机:

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记 
【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

同理从机1也要做12步,从机名换成hadoop_slave1hosts修改成主机hosts一样

 

3)现在两台虚拟机都可以通信了,但主机和从机间需要通过ssh远程登录的方式互联,如果不修改使其免密码登录的话后面会总是提示需要输入密码,这样会很麻烦。

 

把主机wzy2015节点中的~/.ssh/id_rsa.pub拷贝到从机1节点中的~/.ssh目录下。

当然首先主机本身也是要免密码登录的,试试ssh localhost如果需要密码再进行下步设置:

$cd ~/.ssh

$ssh-keygen -t rsa (敲四个回车)

执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

 

拷贝id_rsa.pub到从机:

$cd ~/.ssh

$scp id_rsa.pub hadoop_slave1:./.ssh/

 

主机wzy2015 ssh到从机上去:

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

4hadoop配置:

hadoop-1.2.1.tar.gz 可从官网下载https://archive.apache.org/dist/hadoop/core/

解压到用户名目录下,防止其他文件目录权限不够的问题。这里目录是/home/hadoopor/

解压:$tar zxvf hadoop-1.2.1.tar.gz

进入目录:$ cd hadoop-1.2.1/conf/

添加JAVA_HOME路径:这里java jdk路径是/usr/lib/java/jdk1.7.0_07

jdk 从官网下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html ,解压到/usr/lib/java/目录下。

JAVA_HOME路径补充完整:

$ vim hadoop-env.sh

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

修改core-site.xml

主机wzy2015:

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://wzy2015:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/Hadoopor/hadoop-1.2.1/hadoop_tmp</value>

</property>

</configuration>

 

修改hdfs-site.xml:

<configuration>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

</configuration>

 

从机hadoop_slave1

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://wzy2015:9000</value>

</property>

</configuration>

 

修改mapred-site.xml:

主机wzy2015和从机hadoop_slave1:

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>wzy2015:9001</value>

</property>

</configuration>

 

修改mastersslaves

masters改成主机名wzy2015

slaves从机名,这里有两个,一个主机本身充当了一个伪分布节点,另一个是hadoop_slave1,主机和从机1都配置成如下:

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

最后修改环境变量,加入javahadoop

 

添加java环境变量:

$sudo vim /etc/profile

文件中加入下面两行:

export JAVA_HOME=/usr/lib/java/jdk1.7.0_07

export PATH=$PATH:$JAVA_HOME/bin

 

添加hadoop环境变量:

export HADOOP_HOME=/home/Hadoopor/hadoop-1.2.1

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

保存退出,使环境变量配置生效

$ source /etc/profile

输入java -version hadoop versoin查看环境变量配置:

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

5)运行测试

上面搭建好了hadoop的环境,现在测试下看能否正常运行

进入bin/目录下,首次使用需格式化文件系统

$./hadoop namenode -format

然后启动集群

$ ./start-all.sh

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记
 

 

 

jps查看下,有NameNodeJobTrackerTaskTracherDataNodeSecondaryNameNode

从机1jps查看有DataNodeTaskTracher

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

打开浏览器输入主机IP:50070

发现有两个节点Live Nodes,配置成功并且可以运行了。

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

首次启动如果发现只有一个Live Nodes,先停止集群:

$./stop-all.sh

进入hadoop_tmp/dfs/目录下删除data文件夹:

$cd ..

$cd hadoop_tmp/dfs/

$rm data -rf

在进入bin/目录下启动集群

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

集群正常运行后,测试下hdfs文件系统

使用的命令基本是Linux的常用命令,比如lsmkdircat

在跟目录下新建一个文件夹inpout

$hadoop fs -mkdir /input

 

查看下新建的目录:

$hadoop fs -ls /

发现确实新建了input目录

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

上传一个文件:

这里将hadoop-1.2.1.tar.gz压缩包上传到文件系统测试:

进入hadoop-1.2.1.tar.gz所在目录上传文件:

$hadooop fs -put hadoop-1.2.1.tar.gz /input

 

上传成功:

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

 

在上面的浏览器界面点击Live Nodes进入查看

有两个节点hadoop_slave1wzy2015。刚才上传的文件分别存在这两个节点上,每个节点都有一个备份,因为前面设置hdfs-site.xml中指定了value2,大规模集群中一般设为3以上,这样即使有几个节点出故障了也不会影响到文件的访问。

【笔记】Hadoop分布式系统环境搭建 - W_中原 - 汪中原的博客笔记

 

 

 

拓展:

在进行文件传输或同步环境配置时总不能拿U盘拷贝吧,除了使用NFS网络文件系统外,使用scp直接拷贝更为方便。

比如讲从机1/opt/目录下的myscp_test.c拷贝到当前主机/home/Hadoopor/mydir/目录下

 

$scp hadoop_slave1:/opt/myscp_test.c ./

 

将主机当前目录下test_dir文件夹拷贝到从机1/opt/目录下

$scp -r test_dir/ root@hadoop_slave1:/opt/

或者($scp -r test_dir/ root@192.168.1.101:/opt/)

 

  评论这张
 
阅读(26)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017