在Linux系统设置共享文件夹、Hadoop单机/伪分布部署,运行Hadoop Wordcount单词统计实例

1 篇文章 0 订阅
1 篇文章 0 订阅

Hadoop是在Linux系统上运行的,在安装Hadoop之前需要先安装Linux系统,Windows系统可以选择在Vmware Workstation虚拟机上安装Linux系统,安装步骤可以看之前写的博文:在虚拟机安装Linux系统

安装完Linux系统,接下来就是开始准备安装Hadoop需要的安装包:
hadoop下载
Linux JDK下载:点击此处下载JDK
这里写图片描述
这里写图片描述
下载好后需要将下载好的安装包从Windows传到Linux,可以设置共享文件夹

设置虚拟机共享文件夹:

①安装VMware Tools:
这里写图片描述

②双击桌面VMware Tools,右击压缩包解压到:文件系统/tmp文件夹内
这里写图片描述
这里写图片描述

③右击桌面-在终端中打开(E)
这里写图片描述

④输入su - root进入root管理员,输入/tmp/vmware-tools-distrib/vmware-install.pl
然后一直按Enter键直到出现下图的Enjoy–the VMware team
这里写图片描述

⑤Ctrl+D进入VM Settings
这里写图片描述

⑥点击Options
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

⑦在E盘新建一个shared文件夹,然后添加为共享文件夹点击确定
这里写图片描述

这是本地E盘shared文件内的文件:
这里写图片描述

虚拟机共享文件夹默认放在/mnt/hgfs下,进入该路径查看是否共享成功:
这里写图片描述
文件共享成功

配置Hadoop环境

①安装openssh-server , ant , subversion
运行安装命令yum -y install openssh-server , ant , subversion
这里写图片描述

②配置JAVA环境:
下载JDK到共享文件并解压
这里写图片描述
配置java环境变量
输入命令vim /etc/profile
这里写图片描述

按i进入编辑模式,在profile文件末尾添加JAVA_HOME
这里写图片描述

按esc退出编辑模式,输入(:wq!)w代表保存并q代表退出!代表强制执行

输入 source /etc/profile使配置文件生效
这里写图片描述

输入java -version如果提示找不到文件(如下图),则可能是缺少libc库glibc
这里写图片描述

解决办法为:安装libc库glibc
这里写图片描述
再次测试java环境是否配置成功:
这里写图片描述
没有提示找不到文件,并且显示了jdk版本信息,表示java环境配置成功

③先进入hadoop安装目录:/usr/local/hadoop-2.6.5
再输入svn下载代码命令:
svn co http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.5.0-rc1/
这里写图片描述

直接在命令行输入命令ant进行代码编译
ant
ant jar
ant examples
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

SSH免密登录

生成ssh免登陆密钥
#进入到我的home目录
cd ~/.ssh
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
ssh-copy-id localhost
这里写图片描述

产生一对固定的公私钥 ssh-keygen -t dsa -p ‘’ -f ~/.ssh/id_dsa命令:
并生成在.ssh文件夹下
这里写图片描述

进入.ssh文件夹查看公私钥:
这里写图片描述
id_dsa为私钥,id_dsa.pub为公钥
把公钥复制成authorized_key即把这个公钥固定为ssh登陆所用:
这里写图片描述
进入hadoop目录: $cd Hadoop-2.6.5
首次运行,需要对namenode进行格式化:bin/hadoop namenode -format
启动hadoop:bin/start-all.sh
关闭hadoop可以用:bin/stop-all.sh
查看jdk路径命令:echo $JAVA_HOME
这里写图片描述
在修改hadoop-env.sh文件中把注释符号#去掉就可以解决JAVA_HOME is not set的错误
解决办法:查看hadoop-env.sh是否添加JAVA_HOME,如果已经添加则查看绝对路径是否正确,如果正确则查看JAVA_HOME前面的注释符号#是否已经去掉,如果没有去掉则必须去掉注释符号#才能使JAVA_HOME配置生效。

配置Hadoop文件:

注意:hadoop2.x配置文件位置:$HADOOP_PREFIX/etc/hadoop,伪分布式需要修改5个配置文件
第一个:hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.7.0_80
这里需要改成自己的JDK安装目录的绝对路径
第二个:core-site.xml


fs.default.name

hdfs://localhost:9000


hadoop.tmp.dir

/usr/local/hadoop-2.6.5/tmpPath


第三个:hdfs-site.xml

dfs.replication

1


第四个:mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

fs.default.name

hdfs://localhost:9000

mapred.job.tracker

hdfs://localhost:9001


第五个:yarn-site.xml
vim yarn-site.xml


yarn.resourcemanager.hostname
hadoop01



yarn.nodemanager.aux-services
mapreduce_shuffle

进入hadoop安装目录:cd /usr/local/hadoop-2.6.5
首次运行,需要对namenode进行格式化:bin/hadoop namenode -format
这里写图片描述
启动hadoop:sbin/start-all.sh
关闭hadoop可以使用:sbin/stop-all.sh
这里写图片描述

两种方法验证Hadoop是否启动成功:

①输入ifconfig查看虚拟机ip地址:
这里写图片描述
打开虚拟机浏览器
这里写图片描述
复制黏贴进入该网页http://你的ip地址:50070 (HDFS管理界面)
http://你的ip地址:8088 (MR管理界面)
这里写图片描述
这里写图片描述
②输入命令jps:
这里写图片描述
wordcount测试程序
在本地创建文件夹input放置要处理的数据,通过命令./bin/hadoop fs -put input in
这里写图片描述
将本地文件传到hdfs分布式存储系统的文件夹in内
可以用echo “str”>test.txt将str字符串写进test.txt文件内,如果test不存在则新建一个,如估计test已经存在则覆盖并替换test文件内的内容,也可以用vim test.txt编辑test.txt文本内容
如果用echo编辑文本并且不想覆盖文本test.txt内原有的内容则可以使用echo “str”>>test.txt
注意此时有两个大于号(>)表示对文本先换行然后追加字符串str,不覆盖文本内容
使用命令./bin/hadoop fs -put input/* in将本地文件夹input内的所有文件复制到hdfs内的in文件夹,其中-put等同于-copyFromLocal,而如果换成参数-moveFromLocal则是移动到hdfs相当于剪切
这里写图片描述
使用命令./bin/hadoop jar build/hadoop-0.20.2-examples.jar wordcount in out对in文件夹内的数据用wordcount单词统计程序进行处理并将结果放在out文件夹内
这里写图片描述
输出wordcount运行结果,
命令./bin/hadoop jar build/hadoop-0.20.2-examples.jar wordcount in out2将运行结果存储在hdfs分布式存储系统的out2文件夹内,可以通过./bin/hadoop fs -ls out2查看hdfs中out2文件夹的内容
这里写图片描述
运行结果为out2文件夹内的part-r-00000文件,通过./bin/hadoop fs -cat out2/part-r-00000读取运行结果
这里写图片描述
最后统计结果以[key,value]的形式输出。

Hadoop Wordcount单词统计实例运行成功。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值