Hadoop作为一种用于分布式集成数据库的工具,也适应如今大数据处理的·发展需求,作为一个第一次接触Hadoop小白,在Hadoop安装和相关配置上不可避免地要踩坑(当然了,踩坑也是我们学习进步的一个必经之路), 笔者将这两天安装Hadoop的过程,心得和踩的坑一一记录下来,方便以后的学习总结:
第一步安装相应的虚拟机和Ubuntu
第二步配置相应的JDK环境
JDK下载官网地址 配置jdk环境首先要相应的jdk文件 笔者下载的是jdk-8u191-linux-x64.tar 。
然后将主机桌面下载的jdk文件压缩包拖拽到虚拟机Ubuntu页面上,发现无法实现主机文件到虚拟机上的拖拽,原因是VMware Tool工具没有安装,点击虚拟机左上角的 虚拟机-->安装VMware Tools
此时在Ubuntu桌面出现光盘图标,点击打开光盘文件,文件夹中有名字为VMwareTools-***** .tar.gz的压缩包。***** 指任意字符,每个虚拟机的版本可能不一样。
复制这个“VMwareTools-*****.tar.gz”文件,到“Home”目录里。(如果没有复制权限的话就在终端调用管理员权限进行,输入指令 sudo mv 文件名 文件夹名)
在终端,使用命令“tar -zxvf VMwareTools- *****.tar.gz”解压此文件在当面目录下。(可以在输入VM后按Tab键自动补全)
输入命令“cd vmware-tools-distrib”进入解压后的目录。 然后再终端输入命令“sudo ./vmware-install.pl”即可安装VMware tools。 安装过程中多次需要输入“yes",默认一直回车即可。安装完毕则手动重启虚拟机。
这样在安装完毕过后将主机界面上的jdk压缩包拖拽到虚拟机界面上,接着直接在桌面上进行解压,然后将解压后的jdk文件移动到某一文件夹下(注意要记住这个jdk的存储路径),然后在进行Java环境的配置:终端输入 sudo gedit /etc/profile,进入profile文件之后,在其文件下输入如下语句:(相关路径根据自己的jdk文件的路径自行设置。
#set java environment
export
JAVA_HOME=/home/greeneli/jdk-8u191-linux-x64/jdk1.8.0_191
export
JRE_HOME=/home/greeneli/jdk-8u191-linux-x64/jdk1.8.0_191/jre
export
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
之后在命令行输入如下指令:java -version 如下所示:
jdk环境配置完成后,接下来就进行Hadoop安装的相关事宜。
首先在官网上找Hadoop压缩包,我的是:
记住Hadoop压缩包在虚拟上的解压路径,解压成功后,我在etc/hadoop/hadoop-env.sh文件上配置JAVA_HOME的路径
# The java implementation to use.
export JAVA_HOME=/home/greeneli/jdk-8u191-linux-x64/jdk1.8.0_191
第二个要配置的文件是core-site.xml文件 我的在hadoop/etc/hadoop/core-site.xml路径上
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
如下所示:
第三个要配置的文件是:hds-site.xml (我的在hadoop/etc/hadoop/hds-site.xml路径上)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
</configuration>
如下图所示:
第四个文件配置:mapred-site.xml (文件路径 如上文件的存储路径) ,注意原先我怎么也找不到这个文件名,后面我把文件名mapred-site,xml.tempert(好像是这个)改为了mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>itcast:9001</value>
</property>
</configuration>
第五个文件yarn-site.xml(存储路径如上所示)
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
最后在etc/profile文件中添加HADOOP_HOME的配置
export
JAVA_HOME=/home/greeneli/jdk-8u191-linux-x64/jdk1.8.0_191
export
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$HADOOP_HOME/bin
如图:
然后进行Hadoop初始化:在终端输入如下指令:hadoop namenode -format
经过初始化后,输如start-all.sh指令,启动namenode和datanode节点信息。启动指令:在hadoop的sbin文件夹下输入start-all.sh
如下:
接着输入jps进行查询,如果出现如下6条信息就表示创建成功了 嘻嘻~
如图:
注意:我在这里之前还遇到了一点问题,就是我不管怎么输入jps,发现只出来一条信息,如下:
后面找了半天,查看./hadoop/logs中的日志文件发现了问题的源头,就是我的core-site.xml文件配置信息一串代码不规范(ps:当时我i在博客上搜的这串代码没想到却成了我的阻碍),然后删改之后继续运行jps,还好。这下出来了如下三条信息
接下来再查看它的日志信息,发现原来是存储datanode的文件夹处于invalid,(其本质原因是因为Hadoop初始化信息过多导致)日志信息如下图所示:
后面尝试了半天的方法总算是找到一种还算不错的解决方式:删除hadoop文件夹下的tmp权限文件夹,在此文件夹的位置下重新创建一个文件夹tmp,接着重新初始化hadoop,然后start-all.sh,接着调用jps指令就可以得到相应的6条指令信息了。
如下所示:
接着我们来进行Hadoop的hdfs测试:在网址上输入(主机名:50070)如下图所示:
解释一下我输入的网址信息 greeneli-virtual-machine:50070
greeneli-virtual-machine是指我的主机名,主机名可以在终端初始界面看到,如下:
也可以通过/etc/hosts文件下看到
然后50070是其进行访问的一个默认端口。
but我之前在访问过程中老时出现连接不到服务器的情况,在终端输入指令netstat -ant查找50070端口的信息
索嘎,原来是因为50070端口对应的ip为127.0.0.1,是个回路地址,网络上访问不进来。之后我们只需要修改hdfs-site.xml信息即可,将address栏信息做如下修改:
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
如下:
接着再次输入指令就变成如下所示了,果然50070对应着0.0.0.0IP地址。
接着在浏览器输入主机名:50070就可以顺利打开节点信息了。
(ps:由于昨天抱着玩玩的态度去尝试了一下Ubuntu的其它操作,一下子又死机了,关键是我的这个配置信息没用快照保存下来,没办法又得重新配置了,所以大家虚拟机在执行某个项目后,最好用快照保存下来,以防以后不必要的损失。