设为首页 收藏本站
查看: 1091|回复: 3

[经验分享] hadoop集群配置和测试

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-12-27 09:21:52 | 显示全部楼层 |阅读模式
刚接触Hadoop三天,今天终于成功用三台机跑起测试,记录一下。



一、准备(所有节点都需要做):

系统:Ubuntu12.04

java版本:JDK1.7(安装步骤看上一篇文章)

SSH(ubuntu自带)

确保三台机在同一个ip段,最好设置为静态IP,重启后就不用纠结IP变化了

机器分配:一台master,两台slave



我的主机信息是(hosts文件添加如下信息):

192.168.88.123    h1

192.168.88.124    h2

192.168.88.125    h3

其中第一项是内网IP ,第二项是主机名



各节点作用:

h1:NameNode、JobTracker

h2:DataNode、TaskTracker

h3:DataNode、TaskTracker



安装SSH:

sudo apt-get install ssh

测试:ssh localhost

输入当前用户的密码回车 没异常说明安装成功



开启SSHD服务:

安装:sudo apt-get install openssh-server

确认是否启动:

ps  -e | grep  ssh

找到到sshd,有即启动了。



创建Hadoop用户(名为grid)

adduser grid

信息随便填,以后运行操作Hadoop都是用这个用户(注意看清命令行别用了其他用户)



二、配置Hadoop

  1.无密码登陆

  在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。

 首先设置namenode的ssh为无需密码的、自动登陆。

  换切到grid用户

  su grid

  cd

  ssh-keygen -t rsa

  完成后会在grid目录产生隐藏文件.ssh,通过ls查看,然后

  cp id_rsa.pub authorized_keys

  测试

  ssh h1

  第一次会提示确认继续连接,打yes,这会把该服务器添加到你的已知主机列表中

  同样在h2,h3上做以上操作

  最后,如何使各个节点相互访问不需要密码,将三个节点的authorized_keys文件里面的内容合成一个文件然后替换掉原来的,替换完毕后可以用

  ssh XX(XX为主机名)

  相互测试是否连接成功。



  2.配置Hadoop文件:

在hadoop/conf目录下修改文件有hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,master,slaves

hadoop-env.sh

修改JAVA_HOME路径

1
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
记得去掉前面的#



core-site.xml:


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

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



1)fs.default.name是NameNode的URI。hdfs://主机名:端口/
2)hadoop.tmp.dir :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。





hdfs-site.xml:


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

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



1) dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
2) dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。 当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。
3)dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。

注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。

mapred-site.xml


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>h1:49001</value>   
    </property>
    <property>
        <name>mapred.local.dir</name>
        <value>/home/grid/var</value>
    </property>
</configuration>



1)mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。



配置masters和slaves主从结点

master

1

slaves

1
2
h2
h3


配置完毕,把配置好的hadoop文件夹拷贝到其他集群的机器上,并保证其他机器的JDK 安装路径一致(如果不一致就另外再修改配置文件conf/hadoop-env.sh憋)

scp -r /home/grid/hadoop-0.20.2 grid@h2:/home/grid

scp -r /home/grid/hadoop-0.20.2 grid@h2:/home/grid



三、启动Hadoop

1、先格式化一个新的分布式文件系统

cd

bin/hadoop namenode -format

成功后系统输出:

INFO common.Storage: Storagedirectory /opt/hadoop/hadoopfs/name2 has been successfully formatted.

这一行,看到successfully单词木有,格式化成功。



执行完后可以到master机器上看到/home/hadoop//name1和/home/hadoop//name2两个目录。



2.启动所有节点

在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。

cd

bin/start-all.sh(同时启动HDFS和Map/Reduce)

输出:


grid@h1:~/hadoop-0.20.2$ bin/start-all.sh
starting namenode, logging to /home/grid/hadoop-0.20.2/bin/../logs/hadoop-grid-namenode-h1.out
h2: starting datanode, logging to /home/grid/hadoop-0.20.2/bin/../logs/hadoop-grid-datanode-h2.out
h3: starting datanode, logging to /home/grid/hadoop-0.20.2/bin/../logs/hadoop-grid-datanode-h3.out
h1: starting secondarynamenode, logging to /home/grid/hadoop-0.20.2/bin/../logs/hadoop-grid-secondarynamenode-h1.out
starting jobtracker, logging to /home/grid/hadoop-0.20.2/bin/../logs/hadoop-grid-jobtracker-h1.out
h2: starting tasktracker, logging to /home/grid/hadoop-0.20.2/bin/../logs/hadoop-grid-tasktracker-h2.out
h3: starting tasktracker, logging to /home/grid/hadoop-0.20.2/bin/../logs/hadoop-grid-tasktracker-h3.out



没有出现什么Error或Warming之类的就表示运行成功了

运行成功后看看程序是否正常

/usr/lib/jvm/jdk1.7.0_45/bin//jps

可以看到在h1结点上有进程

2928 NameNode
3319 Jps
3105 SecondaryNameNode
3184 JobTracker

很熟悉的字眼我就不多说了,在slaves结点上也检测下是否正常,会有

TaskTracker,DataNode



若没缺少以上进程即配置有问题。



四、测试

建一个目录,里面建两个txt文件,用hadoop项目现有的hadoop-0.20.2-examples.jar例子测试txt里面单词的出现次数。

cd

mkdir input

cd input

echo "hello world" > test1.txt

echo "hello hadoop" > test2.txt

建完文件后,将文件放到HDFS系统的in目录上

cd ../hadoop-0.20.2

bin/hadoop dfs -put ../input in



测试了,运行

bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out

会出现一系列的运行信息


grid@h1:~/hadoop-0.20.2$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out
13/12/26 14:04:05 INFO input.FileInputFormat: Total input paths to process : 2
13/12/26 14:04:06 INFO mapred.JobClient: Running job: job_201312261337_0006
13/12/26 14:04:07 INFO mapred.JobClient:  map 0% reduce 0%
13/12/26 14:04:14 INFO mapred.JobClient:  map 50% reduce 0%
13/12/26 14:04:15 INFO mapred.JobClient:  map 100% reduce 0%
13/12/26 14:04:23 INFO mapred.JobClient:  map 100% reduce 100%
13/12/26 14:04:25 INFO mapred.JobClient: Job complete: job_201312261337_0006
13/12/26 14:04:25 INFO mapred.JobClient: Counters: 17
13/12/26 14:04:25 INFO mapred.JobClient:   Job Counters
13/12/26 14:04:25 INFO mapred.JobClient:     Launched reduce tasks=1
13/12/26 14:04:25 INFO mapred.JobClient:     Launched map tasks=2
13/12/26 14:04:25 INFO mapred.JobClient:     Data-local map tasks=2
13/12/26 14:04:25 INFO mapred.JobClient:   FileSystemCounters
13/12/26 14:04:25 INFO mapred.JobClient:     FILE_BYTES_READ=55
13/12/26 14:04:25 INFO mapred.JobClient:     HDFS_BYTES_READ=25
13/12/26 14:04:25 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=180
13/12/26 14:04:25 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=25
13/12/26 14:04:25 INFO mapred.JobClient:   Map-Reduce Framework
13/12/26 14:04:25 INFO mapred.JobClient:     Reduce input groups=3
13/12/26 14:04:25 INFO mapred.JobClient:     Combine output records=4
13/12/26 14:04:25 INFO mapred.JobClient:     Map input records=2
13/12/26 14:04:25 INFO mapred.JobClient:     Reduce shuffle bytes=61
13/12/26 14:04:25 INFO mapred.JobClient:     Reduce output records=3
13/12/26 14:04:25 INFO mapred.JobClient:     Spilled Records=8
13/12/26 14:04:25 INFO mapred.JobClient:     Map output bytes=41
13/12/26 14:04:25 INFO mapred.JobClient:     Combine input records=4
13/12/26 14:04:25 INFO mapred.JobClient:     Map output records=4
13/12/26 14:04:25 INFO mapred.JobClient:     Reduce input records=4





没有什么Error或Warming之类的字眼特别是有

1
map 100% reduce 100%
表示成功运行了,结果可一输入

bin/hadoop dfs -cat out/*

看到结果

hadoop 1
hello        2
world        1




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-12495-1-1.html 上篇帖子: CentOS6.4下搭建hadoop2.2(64bit)注意事项 下篇帖子: Hadoop 管理监控工具:Apache Ambari

尚未签到

发表于 2013-12-30 17:44:17 | 显示全部楼层
我也许是个脆弱的-Man╮经不起打击。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-31 04:43:01 | 显示全部楼层
眼泪是记得。而不哭是懂得、我们都会幸福的

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-31 05:23:39 | 显示全部楼层
我不想理的人,便不理,我想理的人,却不理我。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表