Fedora20搭建伪Hadoop集群,运行Wordcount程序
2014-01-04 13:20
471 查看
虚拟机搭建伪hadoop集群,运行wordcount程序:
2. ./jdk-6u11-linux-x64.bin 运行安装JDK1.6.0
3 修改/etc/profile的环境变量:
exportJAVA_HOME=/usr/programFiles/jvm/jdk1.6.0_11
exportCLASSPATH=".:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH"
exportPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
执行source /etc/profile
有可能要重启一下虚拟机
4. 按这些命令选择要用的jdk版本:
sudoupdate-alternatives --install /usr/bin/java java /usr/jvm/jdk1.7.0_40/bin/java 300
sudoupdate-alternatives --install /usr/bin/javac javac /usr/jvm/jdk1.7.0_40/bin/javac300
sudoupdate-alternatives --config java
5. 执行java –version查看当前jdk版本,应该为jdk1.6.0
查看是否安装:rpm –qa | grep ssh
查看ssh服务是否开启: service sshd status
若关闭则启动ssh服务:service sshd start 或systemctl start sshd.service
设置开机启动ssh服务:systemctl enable sshd.service
2. 配置ssh无密码连接:
原因:实际上,在H adoop的安装过程中,是否免密码登录是无关紧要的,但是如果不配置免密码登录,每次启动Hadoop都需要输入密码以登录到每台机器的DataNode
上,考虑到一般的Hadoop集群动辄拥有数百或上千台机器,因此一般来说都会配置SSH的免密码登录!在此我们选择配置SSH为免密码登录模式!!
方法:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
ssh-keygen代表生成秘钥; -t(注意区分大小写)表示指定生成的秘钥类型;dsa是dsa密钥认证的意思。即秘钥类型;-P用于提供密语;-f指定生成的秘钥文件。(其中~
代表当前用户文件夹,如home/wade ),这条命令会在.ssh文件夹下创建id_dsa及id_dsa.pub两个文件,这是SSH的一对私钥和秘钥,类似于锁和钥匙。
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这条命令用于把公钥加到用于认证的公钥文件中。这里的authorized_keys是用于认证的公钥文件。
3. 检验:ssh localhost,出现如下显示则说明SSH已正常运行
网址:http://archive.apache.org/dist/hadoop/common/hadoop-1.0.1/
解压 tar xzvf hadoop-1.0.1.tar.gz 得到文件夹hadoop-1.0.1
修改环境变量 vi /etc/profile
export HADOOP_HOME=/usr/programFiles/hadoop-1.0.1
export PATH=$PATH:$HADOOP_HOME/bin
1) hadoop-env.sh
找到某行:# export JAVA_HOME = ... 去掉“#”并把JAVA_HOME设置为jdk安装路径:export JAVA_HOME =/usr/programFiles/jvm/jdk1.6.0_11
2) core-site.xml
在configuration标签之间添加如下内容:
说明:hadoop分布式文件系统的两个重要的目录结构,一个是namenode上名字空间的存放地方,一个是datanode数据块的存放地方,还有一些其他的文件存放地方,这
些存放地方都是基于hadoop.tmp.dir目录的,比如namenode的名字空间存放地方就是${hadoop.tmp.dir}/dfs/name,
datanode数据块的存放地方就
是${hadoop.tmp.dir}/dfs/data,所以设置好hadoop.tmp.dir目录后,其他的重要目录都是在这个目录下面,这是一个根目录。我设置的是 /usr/programFiles/hadoop-
1.0.1/hadooptmpdir ,当然这个目录必须是存在的。
3) hdfs-site.xml 添加如下内容:
4) mapered-site.xml 添加如下内容:
2. 主机名和IP解析配置,下面三个文件中主机名要保持一致
1) /etc/hosts
在伪分布式模式下master和slave为同一个机子。这里主机名可以随便取,但是一定要和127.0.0.1的对应,所以我这里写master。
2) /etc/hostname
内容为master(主机名)
3) /etc/sysconfig/network添加如下内容:
3. Hadoop启动
1) 格式化namenode:
进入hadoop安装目录下的bin目录,此为/usr/programFiles/bin执行
Hadoop namenode -format
2)启动hadoop所有进程:
还是在bin目录下执行start-all.sh
3)执行完之后用jps查看hadoop进程
说明:
1.secondaryname是namenode的一个备份,里面同样保存了名字空间和文件到文件块的map关系。建议运行在另外一台机器上,这样master死掉之后,还可以通过
secondaryname所在的机器找回名字空间,和文件到文件块得map关系数据,恢复namenode。
2.启动之后,在/usr/local/hadoop/hadoop-1.0.1/hadooptmp下的dfs文件夹里会生成 data目录,这里面存放的是datanode上的数据块数据,因为笔者用的是单机,所以
name 和 data 都在一个机器上,如果是集群的话,namenode所在的机器上只会有name文件夹,而datanode上只会有data文件夹。
4. 在执行hadoop相关命令时候,总是出现:
Warning: $HADOOP_HOME is deprecated
解决方法如下:
在hadoop-env.sh ,添加一个环境变量:export HADOOP_HOME_WARN_SUPPRESS=true
5. 在web页面下查看hadoop运行情况
Localhost:50070
Localhost:50030
在/usr/programFiles/hadoop-1.0.1下创建test_wordCount_0103
在test_wordCount_0103文件夹下创建file0、file1文件,分别写入一些单词。
2. 在HDFS分布式文件系统中创建目录input:
bin/hadoop fs –mkdirinput
3. 离开hodoop的安全模式:#bin/hadoop dfsadmin –safemode leave
注:Hadoop的安全模式相关命令:#bin/hadoop dfsadmin –safemode enter/leave/get/wait
Hadoop的HDFS系统在安全模式下只能进行“读”操作!不能进行文件等的删除,创建和更新操作!
4. 将数据从Linux文件系统复制到HDFS分布式文件系统中
bin/hadoop fs –put /usr/programFiles/hadoop-1.0.1/test_wordCount_0103input
5. 执行wordcount例程:
bin/hadoop jarhadoop-examples-1.0.1.jar wordcount input output
6. 查看输出结果
bin/hadoopdfs -cat output/*
参考:
/article/7704892.html
http://wojiaolongyinong.iteye.com/blog/1946817
一、安装JDK1.6.0
1. 在Oracal网站上下载jdk-6u11-linux-x64.bin到/usr/programFiles/jvm2. ./jdk-6u11-linux-x64.bin 运行安装JDK1.6.0
3 修改/etc/profile的环境变量:
exportJAVA_HOME=/usr/programFiles/jvm/jdk1.6.0_11
exportCLASSPATH=".:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH"
exportPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
执行source /etc/profile
有可能要重启一下虚拟机
4. 按这些命令选择要用的jdk版本:
sudoupdate-alternatives --install /usr/bin/java java /usr/jvm/jdk1.7.0_40/bin/java 300
sudoupdate-alternatives --install /usr/bin/javac javac /usr/jvm/jdk1.7.0_40/bin/javac300
sudoupdate-alternatives --config java
5. 执行java –version查看当前jdk版本,应该为jdk1.6.0
二、安装、启动SSH,配置SSH无密码连接
1. 安装、启动SSH:查看是否安装:rpm –qa | grep ssh
查看ssh服务是否开启: service sshd status
若关闭则启动ssh服务:service sshd start 或systemctl start sshd.service
设置开机启动ssh服务:systemctl enable sshd.service
2. 配置ssh无密码连接:
原因:实际上,在H adoop的安装过程中,是否免密码登录是无关紧要的,但是如果不配置免密码登录,每次启动Hadoop都需要输入密码以登录到每台机器的DataNode
上,考虑到一般的Hadoop集群动辄拥有数百或上千台机器,因此一般来说都会配置SSH的免密码登录!在此我们选择配置SSH为免密码登录模式!!
方法:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
ssh-keygen代表生成秘钥; -t(注意区分大小写)表示指定生成的秘钥类型;dsa是dsa密钥认证的意思。即秘钥类型;-P用于提供密语;-f指定生成的秘钥文件。(其中~
代表当前用户文件夹,如home/wade ),这条命令会在.ssh文件夹下创建id_dsa及id_dsa.pub两个文件,这是SSH的一对私钥和秘钥,类似于锁和钥匙。
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这条命令用于把公钥加到用于认证的公钥文件中。这里的authorized_keys是用于认证的公钥文件。
3. 检验:ssh localhost,出现如下显示则说明SSH已正常运行
三、配置Hadoop环境
下载hadoop-1.0.1.tar.gz到/usr/programFiles中,网址:http://archive.apache.org/dist/hadoop/common/hadoop-1.0.1/
解压 tar xzvf hadoop-1.0.1.tar.gz 得到文件夹hadoop-1.0.1
修改环境变量 vi /etc/profile
export HADOOP_HOME=/usr/programFiles/hadoop-1.0.1
export PATH=$PATH:$HADOOP_HOME/bin
四、搭建Hadoop伪分布式集群
1. 进入hadoop安装目录下conf文件夹(我的是/usr/programFiles/hadoop-1.0.1/conf) 配置hadoop配置文件:1) hadoop-env.sh
找到某行:# export JAVA_HOME = ... 去掉“#”并把JAVA_HOME设置为jdk安装路径:export JAVA_HOME =/usr/programFiles/jvm/jdk1.6.0_11
2) core-site.xml
在configuration标签之间添加如下内容:
说明:hadoop分布式文件系统的两个重要的目录结构,一个是namenode上名字空间的存放地方,一个是datanode数据块的存放地方,还有一些其他的文件存放地方,这
些存放地方都是基于hadoop.tmp.dir目录的,比如namenode的名字空间存放地方就是${hadoop.tmp.dir}/dfs/name,
datanode数据块的存放地方就
是${hadoop.tmp.dir}/dfs/data,所以设置好hadoop.tmp.dir目录后,其他的重要目录都是在这个目录下面,这是一个根目录。我设置的是 /usr/programFiles/hadoop-
1.0.1/hadooptmpdir ,当然这个目录必须是存在的。
3) hdfs-site.xml 添加如下内容:
4) mapered-site.xml 添加如下内容:
2. 主机名和IP解析配置,下面三个文件中主机名要保持一致
1) /etc/hosts
在伪分布式模式下master和slave为同一个机子。这里主机名可以随便取,但是一定要和127.0.0.1的对应,所以我这里写master。
2) /etc/hostname
内容为master(主机名)
3) /etc/sysconfig/network添加如下内容:
3. Hadoop启动
1) 格式化namenode:
进入hadoop安装目录下的bin目录,此为/usr/programFiles/bin执行
Hadoop namenode -format
2)启动hadoop所有进程:
还是在bin目录下执行start-all.sh
3)执行完之后用jps查看hadoop进程
说明:
1.secondaryname是namenode的一个备份,里面同样保存了名字空间和文件到文件块的map关系。建议运行在另外一台机器上,这样master死掉之后,还可以通过
secondaryname所在的机器找回名字空间,和文件到文件块得map关系数据,恢复namenode。
2.启动之后,在/usr/local/hadoop/hadoop-1.0.1/hadooptmp下的dfs文件夹里会生成 data目录,这里面存放的是datanode上的数据块数据,因为笔者用的是单机,所以
name 和 data 都在一个机器上,如果是集群的话,namenode所在的机器上只会有name文件夹,而datanode上只会有data文件夹。
4. 在执行hadoop相关命令时候,总是出现:
Warning: $HADOOP_HOME is deprecated
解决方法如下:
在hadoop-env.sh ,添加一个环境变量:export HADOOP_HOME_WARN_SUPPRESS=true
5. 在web页面下查看hadoop运行情况
Localhost:50070
Localhost:50030
五、运行wordcount例程
1. 在hadoop安装目录下创建文件夹:在/usr/programFiles/hadoop-1.0.1下创建test_wordCount_0103
在test_wordCount_0103文件夹下创建file0、file1文件,分别写入一些单词。
2. 在HDFS分布式文件系统中创建目录input:
bin/hadoop fs –mkdirinput
3. 离开hodoop的安全模式:#bin/hadoop dfsadmin –safemode leave
注:Hadoop的安全模式相关命令:#bin/hadoop dfsadmin –safemode enter/leave/get/wait
Hadoop的HDFS系统在安全模式下只能进行“读”操作!不能进行文件等的删除,创建和更新操作!
4. 将数据从Linux文件系统复制到HDFS分布式文件系统中
bin/hadoop fs –put /usr/programFiles/hadoop-1.0.1/test_wordCount_0103input
5. 执行wordcount例程:
bin/hadoop jarhadoop-examples-1.0.1.jar wordcount input output
6. 查看输出结果
bin/hadoopdfs -cat output/*
参考:
/article/7704892.html
http://wojiaolongyinong.iteye.com/blog/1946817
相关文章推荐
- 联想ThinkPad S3-S440虚拟机安装,ubuntu安装,Hadoop(2.7.1)详解及WordCount运行,spark集群搭建
- 安装Hadoop,搭建jdk环境,运行wordcount程序
- windows下idea编写WordCount程序,并打jar包上传到hadoop集群运行
- 搭建Hadoop伪分布式环境,及运行wordcount程序总结
- hadoop集群运行小程序wordCount记录
- Hadoop的单机伪分布式搭建和运行第一个WordCount程序
- hadoop 集群运行WordCount示例程序
- spark集群搭建与集群上运行wordcount程序
- win7(64位)平台下Cygwin+Eclipse搭建Hadoop单机开发环境 (四) 导入Hadoop源码+wordcount程序+运行
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群-配置Hadoop伪分布模式并运行Wordcount(2)
- [转]Hadoop集群_WordCount运行详解--MapReduce编程模型
- Hadoop集群(第6期)_WordCount运行详解
- 运行Hadoop的示例程序WordCount-Running Hadoop Example
- Hadoop集群(第6期)_WordCount运行详解
- hadoop伪分布式运行wordcount 实例Fedora14
- Hadoop集群(第6期)_WordCount运行详解
- Hadoop eclipse插件安装和在eclipse运行wordcount程序
- 在windows上用eclipse远程运行hadoop上的wordcount程序出现的问题,求解决
- ubuntu系统下eclipse配置hadoop开发环境并运行wordcount程序