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 如下所示:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_Hadoop


jdk环境配置完成后,接下来就进行Hadoop安装的相关事宜。

首先在官网上找Hadoop压缩包,我的是:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_Hadoop_02


记住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>

如下所示:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_xml_03


第三个要配置的文件是: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>

如下图所示:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_xml_04


第四个文件配置: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命令失败 hadoop安装后怎么使用_hadoop_05


然后进行Hadoop初始化:在终端输入如下指令:hadoop namenode -format

经过初始化后,输如start-all.sh指令,启动namenode和datanode节点信息。启动指令:在hadoop的sbin文件夹下输入start-all.sh

如下:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_xml_06


接着输入jps进行查询,如果出现如下6条信息就表示创建成功了 嘻嘻~

如图:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_xml_07


注意:我在这里之前还遇到了一点问题,就是我不管怎么输入jps,发现只出来一条信息,如下:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_xml_08


后面找了半天,查看./hadoop/logs中的日志文件发现了问题的源头,就是我的core-site.xml文件配置信息一串代码不规范(ps:当时我i在博客上搜的这串代码没想到却成了我的阻碍),然后删改之后继续运行jps,还好。这下出来了如下三条信息

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_xml_09


接下来再查看它的日志信息,发现原来是存储datanode的文件夹处于invalid,(其本质原因是因为Hadoop初始化信息过多导致)日志信息如下图所示:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_hadoop_10


后面尝试了半天的方法总算是找到一种还算不错的解决方式:删除hadoop文件夹下的tmp权限文件夹,在此文件夹的位置下重新创建一个文件夹tmp,接着重新初始化hadoop,然后start-all.sh,接着调用jps指令就可以得到相应的6条指令信息了。

如下所示:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_Hadoop_11


接着我们来进行Hadoop的hdfs测试:在网址上输入(主机名:50070)如下图所示:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_Hadoop_12


解释一下我输入的网址信息 greeneli-virtual-machine:50070

greeneli-virtual-machine是指我的主机名,主机名可以在终端初始界面看到,如下:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_xml_13


也可以通过/etc/hosts文件下看到

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_hadoop_14


然后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>

如下:

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_hadoop_15


接着再次输入指令就变成如下所示了,果然50070对应着0.0.0.0IP地址。

hadoop安装后使用hadoop命令失败 hadoop安装后怎么使用_hadoop_16


接着在浏览器输入主机名:50070就可以顺利打开节点信息了。

(ps:由于昨天抱着玩玩的态度去尝试了一下Ubuntu的其它操作,一下子又死机了,关键是我的这个配置信息没用快照保存下来,没办法又得重新配置了,所以大家虚拟机在执行某个项目后,最好用快照保存下来,以防以后不必要的损失。