hadoop 0.23.4 下载、编译与配置(单机或集群)
来源:互联网 发布:生态科技城大数据企业 编辑:程序博客网 时间:2024/05/01 22:52
一两年前做的东西,现在放上来,一来是为了跟大家分享一下,二来可以留给自己以后参考
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/hadoopexport PATH=$PATH:$HADOOP_HOME/binexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport 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> <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/binexport PATH=$PATH:$HADOOP_FREFIX/sbinexport HADOOP_MAPRED_HOME=${HADOOP_FREFIX}export YARN_HOME=${HADOOP_FREFIX}export HADOOP_CONF_HOME=${HADOOP_FREFIX}/etc/hadoopexport 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
- hadoop 0.23.4 下载、编译与配置(单机或集群)
- hadoop单机与集群搭建
- hadoop集群搭建(一)——单机版配置
- Hadoop单机单节点集群安装配置
- Hadoop安装单机/伪分布式配置/Hadoop集群
- hadoop搭建(单机以及集群)
- hadoop详细环境配置,单机集群配置(图文并茂)
- jdbc 连接oracle单机与集群配置
- zookeeper(单机/集群)安装与配置
- Centos7下Hadoop的配置(单机,伪分布式和集群)(1)
- Spark教程-构建Spark集群-配置Hadoop单机模式并运行Wordcount(1)
- Spark教程-构建Spark集群-配置Hadoop单机模式并运行Wordcount(2)
- Ubuntu系统下的Hadoop集群(1)_Hadoop安装教程_单机/伪分布式配置
- 云计算基础(二):Hadoop单机、伪分布、集群配置
- Hadoop单机模式的配置与安装
- ubuntu上hadoop单机和集群配置学习
- zookeeper集群,单机版,伪集群搭建与配置
- Hadoop之旅(1)—单机与伪集群安装、简单经典案例
- Base64和MD5加密
- 宏观上的CMS-->内容管理系统的功能架构
- write ntfs u disk
- 浅谈以数据结构的视角去解决算法问题的步骤
- js字符串函数
- hadoop 0.23.4 下载、编译与配置(单机或集群)
- Flash Builder4.7破解方法的实践
- 兼容多浏览器Javascript实现分页功能
- sql游标事例
- 快捷键
- CSS常用属性
- iOS多播Delegate类——GCDMulticastDelegate用法小结
- android 电池(一):锂电池基本原理篇
- C# 中将自定义的structure转换为byte[] 及Stream 和 byte[] 之间的转换(文件流的应用)