今天主要讲的就是hadoop的内容,讲一个空白环境的虚拟机搭建成一个hadoop伪分布式的环境,其中也遇到了很多的问题,在这里面也遇到了很多的问题,也对hadoop环境的搭配更加熟练和掌握了不少,hadoop就是用来处理庞大数据的一门技术,当然用底层的语言也可以将我们想要的结果实现出来,但是,其中的过程就不一样了,就是相差很多,这样就是体现大数据技术的优点的时候,就比如在淘宝上,尿布和啤酒会一起出现,这绝对不是偶然,这是经过大数据分析之后得到的结果,我们可以通过这些数据,对我们的生活也产生着很大的影响,可以分析很多我们用常识无法想象到的问题的真实本质。 在搭建我们的环境的时候,我们需要安装jdk,需要安装hadoop,这期间也对很多的liunx的命令又重新温习了一遍,比如创建文件的mkdir 删除文件的rmdir,还有就是解压完文件之后,假如文件的名称很长,我们可以给文件创建一个类似快捷方式的形式,然后通过重命名,这样在我们需要用到这个文件的时候,就可以通过很短的重命名方式进行访问,具体的命令为:ln -s filename1 filename2。这样我们就可以通过filename的方式进行访问。在安装jdk的时候,需要在/etc/profile中进行相应的配置,然后在我将我的信息穿进去以后,就一直再给我报错,后来通过查询,原来是里面的“if”和“fi”没有对应上导致的, 这是需要在里面进行的配置:(粘在最后面就可以了) export JAVA_HOME=/home/zch/app/jdk1.8 export JAVA_JRE=JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_JRE/lib export PATH=$PATH:$JAVA_HOME/bin
然后就是通过Java –version的命令,查看java的版本信息,能查看就说明配置已经配置好了,然后就是对hadoop的解压安装和配置了,在配置的时候,也是同样的出现了,需要对很多的文件进行配置。 core-site.xml: <property> <name>hadoop.tmp.dir</name> <value>file:/home/zch/data/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> //这里的localhost可以改成虚拟机的ip,如果想在主机的eclipse操作虚拟机里面的hadoop就需要ip的设置 </property> hdfs-site.xml <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/zch/data/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/zch/data/dfs/data</value> </property> hadoop-env.sh 在这个里面,需要将JAVA_HOME改成我们的本机的环境就行 mapred-site.xml.template: |
<property>
<name>mapreduce.frameword.name</name>
<value>yarn</value>
</property>
yarn-site.xml: |
<property>
<name>yarn.nodemanager.aux-servies</name>
<value>mapreduce_shuffle</value>
</property>
然后就是hadoop的环境配置: export JAVA_HOME=/home/zch/app/jdk export PATH=/home/zch/app/hadoop/bin/:/home/zch/app/hadoop/sbin/:$PATH export HADOOP_HOME=/home/zch/app/hadoop export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 需要配置这些信息对我们的hadoop进行配置,在配置完成之后,可以通过hadoop version的命令,查看hadoop的版本以及就能确定是不是安装成功了。然后在hadoop的sbin文件夹下执行./start-all.sh的命令,可以进行hadoop的启动,然后通过jps命令进行查看hadoop进程的方式,查看是不是都已经启动成功了 然后就是在环境里面安装了编译器idea,然后在里面编写了wordcount的程序,通过自己编写的wordcount程序对文档进行字词的统计,然后将结果进行打印输出 我们可以将我们的文件上传到我们的dfs服务器上,命令就是: hdfs dfs -put ~/app/filename1 /filename2,这样就可以将我们指定文件夹下的指定文件上传到dfs上,然后通过localhost:50070进行查看是不是将我们的东西上传上去了,这样我们就可以将我们的东西配置好。 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar wordcount /inputfilename outputfilename |
这样在我们的程序中就是相当于将我们的结果输出了出来,也是存在hdfs的服务器上