hadoop 0.23.4 下载、编译与配置(单机或集群)
2014-05-14 16:29
267 查看
一两年前做的东西,现在放上来,一来是为了跟大家分享一下,二来可以留给自己以后参考
1.下载
指导老师要求大家统一用hadoop0.23.4,现在很难下到了,我提供个下载链接先:
http://pan.baidu.com/s/1i37i36P
这个包里面只有源码,编译通过后才能得到hadoop-0.23.4.tar.gz这个二进制文件
我的系统版本为CentOS release 6.4 (Final),装机时已经自带装好了一些其他软件,例如maven,未自带的可以到apache官网下载maven。
mvn package -Pdist -DskipTests -Dtar
第一次要联网下很多包,时间比较长,大家耐心点。
如果在编译HADOOP-AUTH时候报错,就更改hadoop-common-project/hadoop-auth/pom.xml
在
即可
之后编译Apache Hadoop HDFS时如果报protoc: command not found
可以到网上下载一个google的protobuf
最后将显示[INFO] BUILD SUCCESS
然后你就可以看到在hadoop-dist下面多出了target文件夹,编译的结果都在里面
hadoop-0.23.4.tar.gz是打好的包,未修改的话与官方的二进制文件无异
下一步执行
mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
就可以在Eclipse环境下修改hadoop了
3.1准备工作
新建一个用户组与用户,本人hadoop用root用户无法运行,必须新建
[root@arionvm1 ~]# groupadd hadoop
[root@arionvm1 ~]# useradd -g hadoop hadoop
[root@arionvm1 ~]# passwd hadoop
配置ssh免密码登录
使用hadoop用户,不同用户公钥不同
[root@arionvm1 ~]# # su hadoop
[hadoop@arionvm1 root]$ ssh-keygen -t rsa -P ""
[hadoop@arionvm1 root]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果是单机这样就可以了,如果是集群的话,我是三台机器,每台机器上都执行前六条指令,然后通过scp命令将生成三个的id_rsa.pub汇聚成一个文件,放入authorized_keys中
最后得到的authorized_keys文件类似
ssh-rsa == ??...hadoop@thangool-test1
ssh-rsa == ??...hadoop@thangool-test2
ssh-rsa == ??...hadoop@arionvm1
如果权限不对还要执行chmod 644 authorized_keys
可以通过测试ssh远程登录,如果可以不要密码的话就是成功了
[root@arionvm1 opt]# ln -s hadoop-0.23.4 hadoop
[root@arionvm1 opt]# chown -R hadoop:hadoop hadoop
[hadoop@arionvm1 opt]$ vi ~/.bashrc
增加
修改core-site.xml
修改hdfs-site.xml
修改yarn-site.xml
修改yarn-env.sh,在末尾增加
单机版就这样设置完毕了,集群版继续下面步骤
我有三台机器,分别是arionvm1、thangool-test1、thangool-test2
其中arionvm1当namenode,剩余两个当datanode
在masters中写下arionvm1,在slaves中写下thangool-test1和thangool-test2
上面的host名字都是自己定义的,我们需要将之与ip对应,
[root@arionvm1 opt]# vi /etc/hosts
在该文件下加类似下面几行,集群的按自己的写,单机的如果用的localhost就不用加了,用了别的名字可以把ip设置为127.0.0.1
10.10.96.88 arionvm1
10.10.96.89 thangool-test1
10.10.96.90 thangool-test2
这样就配置完毕
此外集群建议关掉防火墙,否则可能无法连接,运行如下指令
[root@arionvm1 ~]# service iptables stop
然后集群与单机后面都一样的部分
[hadoop@arionvm1 opt]$ /opt/hadoop/bin/hadoop namenode -format
[hadoop@arionvm1 opt]$ cd /opt/hadoop/sbin/
[hadoop@arionvm1 opt]$ ./start-dfs.sh
[hadoop@arionvm1 opt]$ ./start-yarn.sh
大功告成了,我可以露出本文的唯一一个笑脸了
最后说一下,可以通过jps查看是否正常运行,还有wordcount测试部分,网上有很多,我略微提一下
新建几个文件,里面包含要统计的字符,放在一个文件夹内,这里我放在word文件夹内
查看结果可以通过
1.下载
指导老师要求大家统一用hadoop0.23.4,现在很难下到了,我提供个下载链接先:http://pan.baidu.com/s/1i37i36P
这个包里面只有源码,编译通过后才能得到hadoop-0.23.4.tar.gz这个二进制文件
我的系统版本为CentOS release 6.4 (Final),装机时已经自带装好了一些其他软件,例如maven,未自带的可以到apache官网下载maven。
2.编译
解压包后进入包目录首先执行mvn package -Pdist -DskipTests -Dtar
第一次要联网下很多包,时间比较长,大家耐心点。
如果在编译HADOOP-AUTH时候报错,就更改hadoop-common-project/hadoop-auth/pom.xml
在
<dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <scope>test</scope> </dependency>前面增加
<dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-util</artifactId> <scope>test</scope> </dependency>
即可
之后编译Apache Hadoop HDFS时如果报protoc: command not found
可以到网上下载一个google的protobuf
最后将显示[INFO] BUILD SUCCESS
然后你就可以看到在hadoop-dist下面多出了target文件夹,编译的结果都在里面
hadoop-0.23.4.tar.gz是打好的包,未修改的话与官方的二进制文件无异
下一步执行
mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
就可以在Eclipse环境下修改hadoop了
3.配置
3.1准备工作
新建一个用户组与用户,本人hadoop用root用户无法运行,必须新建[root@arionvm1 ~]# groupadd hadoop
[root@arionvm1 ~]# useradd -g hadoop hadoop
[root@arionvm1 ~]# passwd hadoop
配置ssh免密码登录
使用hadoop用户,不同用户公钥不同
[root@arionvm1 ~]# # su hadoop
[hadoop@arionvm1 root]$ ssh-keygen -t rsa -P ""
[hadoop@arionvm1 root]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果是单机这样就可以了,如果是集群的话,我是三台机器,每台机器上都执行前六条指令,然后通过scp命令将生成三个的id_rsa.pub汇聚成一个文件,放入authorized_keys中
最后得到的authorized_keys文件类似
ssh-rsa == ??...hadoop@thangool-test1
ssh-rsa == ??...hadoop@thangool-test2
ssh-rsa == ??...hadoop@arionvm1
如果权限不对还要执行chmod 644 authorized_keys
可以通过测试ssh远程登录,如果可以不要密码的话就是成功了
3.2安装hadoop
[root@arionvm1 opt]# tar xzf hadoop-0.23.4.tar.gz[root@arionvm1 opt]# ln -s hadoop-0.23.4 hadoop
[root@arionvm1 opt]# chown -R hadoop:hadoop hadoop
3.3配置环境变量
[root@arionvm1 opt]# su hadoop[hadoop@arionvm1 opt]$ vi ~/.bashrc
增加
export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$HADOOP_HOME/bin export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
3.4配置hadoop
[hadoop@arionvm1 opt]$ cd /opt/hadoop/etc/hadoop修改core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://arionvm1:49000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/hadoop-root</value> </property> </configuration>
修改hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/workspace/hadoop_space/dfs/name</value> <final>true</final> </property> <property> <name>dfs.namenode.data.dir</name> <value>file:/opt/hadoop/workspace/hadoop_space/dfs/data</value> <final>true</final> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permission</name> <value>false</value> </property> </configuration>修改mapred-stie.xml(没有就创建)
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.job.tracker</name> <value>hdfs://arionvm1:9001</value> <final>true</final> </property> <property> <name>mapred.job.history.server.embedded</name> <value>true</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>0.0.0.0:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>0.0.0.0:19888</value> </property> <property> <name>mapreduce.map.memory.mb</name> <value>1800</value> </property> <property> <name>mapreduce.map.java.opts</name> <value>-Xmx1700M</value> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>1800</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx1700M</value> </property> <property> <name>mapreduce.task.io.sort.mb</name> <value>512</value> </property> <property> <name>mapreduce.task.io.sort.factor</name> <value>100</value> </property> <property> <name>mapreduce.reduce.shuffle.parallelcopies</name> <value>50</value> </property> <property> <name>mapreduce.system.dir</name> <value>file:/opt/hadoop/workspace/hadoop_space/mapred/system</value> </property> <property> <name>mapreduce.local.dir</name> <value>file:/opt/hadoop/workspace/hadoop_space/mapred/local</value> <final>true</final> </property> </configuration>
修改yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce.shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> &l 4000 t;name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>user.name</name> <value>hadoop</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>10.10.96.88:54311</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>10.10.96.88:54312</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>10.10.96.88:54313</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>10.10.96.88:54314</value> </property> <property> <name>yarn.web-proxy.address</name> <value>10.10.96.88:54315</value> </property> <property> <name>mapred.job.tracker</name> <value>10.10.96.88</value> </property> <property> <name>yarn.nodemanager.local-dirs</name> <value>file:/opt/hadoop/workspace/hadoop_space/nmdata/local</value> <description>the local directories used by thenodemanager</description> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>file:/opt/hadoop/workspace/hadoop_space/nmdata/log</value> <description>the directories used by Nodemanagers as logdirectories</description> </property> </configuration>
修改yarn-env.sh,在末尾增加
export HADOOP_FREFIX=/opt/hadoop export HADOOP_COMMON_HOME=${HADOOP_FREFIX} export HADOOP_HDFS_HOME=${HADOOP_FREFIX} export PATH=$PATH:$HADOOP_FREFIX/bin export PATH=$PATH:$HADOOP_FREFIX/sbin export HADOOP_MAPRED_HOME=${HADOOP_FREFIX} export YARN_HOME=${HADOOP_FREFIX} export HADOOP_CONF_HOME=${HADOOP_FREFIX}/etc/hadoop export YARN_CONF_DIR=${HADOOP_FREFIX}/etc/hadoop
单机版就这样设置完毕了,集群版继续下面步骤
我有三台机器,分别是arionvm1、thangool-test1、thangool-test2
其中arionvm1当namenode,剩余两个当datanode
在masters中写下arionvm1,在slaves中写下thangool-test1和thangool-test2
上面的host名字都是自己定义的,我们需要将之与ip对应,
[root@arionvm1 opt]# vi /etc/hosts
在该文件下加类似下面几行,集群的按自己的写,单机的如果用的localhost就不用加了,用了别的名字可以把ip设置为127.0.0.1
10.10.96.88 arionvm1
10.10.96.89 thangool-test1
10.10.96.90 thangool-test2
这样就配置完毕
3.5运行hadoop
集群的话通过scp -r将改好的hadoop文件夹整个拷贝到所有的其他机器上即可,此外集群建议关掉防火墙,否则可能无法连接,运行如下指令
[root@arionvm1 ~]# service iptables stop
然后集群与单机后面都一样的部分
[hadoop@arionvm1 opt]$ /opt/hadoop/bin/hadoop namenode -format
[hadoop@arionvm1 opt]$ cd /opt/hadoop/sbin/
[hadoop@arionvm1 opt]$ ./start-dfs.sh
[hadoop@arionvm1 opt]$ ./start-yarn.sh
大功告成了,我可以露出本文的唯一一个笑脸了
最后说一下,可以通过jps查看是否正常运行,还有wordcount测试部分,网上有很多,我略微提一下
[hadoop@arionvm1 hadoop]$ find . -name *examples*.jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-0.23.4.jar
新建几个文件,里面包含要统计的字符,放在一个文件夹内,这里我放在word文件夹内
[hadoop@arionvm1 for_test]$ hadoop dfs -copyFromLocal word /tmp/test [hadoop@arionvm1 hadoop]$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-0.23.4.jar wordcount /tmp/test/ /tmp/output如果报FileAlreadyExistsException可以运行
[hadoop@arionvm1 hadoop]$ hadoop dfs -rm -r /tmp/output
查看结果可以通过
[hadoop@arionvm1 hadoop]$ hadoop dfs -ls /tmp/output [hadoop@arionvm1 hadoop]$ hadoop dfs -cat /tmp/output/part-r-00000
相关文章推荐
- Spark教程-构建Spark集群-配置Hadoop单机模式并运行Wordcount(1)
- Win7(64位)上编译、安装、配置、运行hadoop-Ver2.5.2---单机版配置运行
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群-配置Hadoop单机模式并运行Wordcount(1)
- Ubuntu与Centos的Hadoop安装以及编译运行MapReduce,Hadoop集群安装配置教程
- hadoop 单机/伪分布式/集群、分布式/Ha高可用搭建环境配置
- Spark教程-构建Spark集群-配置Hadoop单机模式并运行Wordcount(2)
- Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误
- hbase单机及集群安装配置,整合到hadoop
- Hadoop单机单节点集群安装配置
- hadoop2.6.0 - eclipse插件下载、编译、安装、配置
- 云计算基础(二):Hadoop单机、伪分布、集群配置
- hadoop详细环境配置,单机集群配置(图文并茂)
- Hadoop3.0: 单机(伪集群)配置
- Hadoop安装单机/伪分布式配置/Hadoop集群
- Ubuntu系统下的Hadoop集群(1)_Hadoop安装教程_单机/伪分布式配置
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群-配置Hadoop单机模式并运行Wordcount(2)
- hbase单机和分布式安装配置并整合到hadoop集群上
- Centos7下Hadoop的配置(单机,伪分布式和集群)
- ubuntu上hadoop单机和集群配置学习
- Hbase入门笔记( 二 )-- Hadoop单机环境配置