从0开始搭建一套伪分布式环境,然后跑一个程序验证一下环境是否搭建成功。
1.hostname
首先第一步查看自己的linux的houstname。
如果没有的请设置一下vi /etc/hosts
注意修改完host文件只后需要重启,然后也要改一下hostname
hostname aliyeye
2.下载解压hadoop
我这里下载的是hadoop2.5最好是下载2.X左右的,然后上传到自己的linux文件夹里面
tar -zxf hadoop-2.5.0.tar.gz -C /opt/mudules/
没有下载JDK和配置环境变量的自己先去配置下
3.建议:删除rm -rf doc/ 里面是英文文档,没有作用。然后ls查看一下文件目录
4.修改配置文件
这里要把配置文件一个一个的修改过来。配置文件都在etc/hadoop里面。
hadoop-env.sh、mapred、yarn指定Java的安装路径。打开文件我们发现里面有
这一行代码,这里给他指定路径,或者变量都可以。
slaves,指定从节点位置,包括datanode和nodemanager
这里直接输入自己的hostname名称就好 比如我的是aliyeye
core-site.xml,指定namenode所在机器位置及交互端口号,另外也是指定使用的是HDFS文件系统
<property>
<name>fs.defaultFS</name>
<value>hdfs://aliyeye:8020</value>
</property>
注意了这里的aliyeye是我们刚才配置的hostname,后面也会用到,
不是必须用hostname的,用ip也是可以的,但是最好使用hostname,因为hadoop底层代码中,有一些数据的访问获取什么的都是需要通过hostname的
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
core-site.xml,更改Hadoop默认的临时目录位置,用于存放块文件和元数据文件
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0/data/tmp</value>
</property>
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services
</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-senior01.ibeifeng.com</value>
</property>
格式化一下
bin/hdfs namenode -format
sbin/start-all.sh
或者可以一个一个的启动
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start namenode
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
这个是HDFS的管理界面,再输入端口好8088可以看到yarn的管理界面。
wordcount
最后跑一个hadoop的经典入门级案例wordcount
先创建一个文件vi opt/datas/wc.input
这里我们需要统计一下每个单词出现的次数
创建完成之后我需要把这个文件上传到hdfs服务器里面让他能够进行处理,这里先打开管理界面然后找到browse
这里面都是我们hdfs的文件路径;我们可以创建一个路径表明这是我们放的原始数据
bin/hdfs dfs -mkdir -p /user/input
这个时候刷新我们的管理界面会发现创建了一个user文件夹,点进去里面还有一个input文件,接下来就把我们的文件上传到input里面。
bin/hdfs dfs -put /opt/datas/wc.input /user/input
再刷新一下我们的界面找到input.txt这个文件就正确了。
mapReduce有个特点是输出路径不能事先存在,所以我们不需要事先创建输出路径。
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar
wordcount
/user/input/
/user/output
第一段表示执行mapreduce架包,第二段表示执行的是wordcount命令,第三段和第四段分别是输入和输出路径。
我们会发现他跑的比较慢在小数据处理小确实不需要用到。
这里我们进入到管理界面发现output生成了两个文件
第一个文件0KB,就表示成功而已,关键在于第二个文件,我们可以点击下载到我们windows电脑里面。
当然你可以执行linux查看命令bin/hdfs dfs -text /user/output/part-r-00000