一 安装hadoop
用finalshell把hadoop的安装包放到/home/hadoop路径中。Ubuntu中用我们前面建好的hadoop账号,作者把前面的java环境等在hadoop里又配置了一遍。
在Ubuntu中右键提取到当前文件夹
sudo mv ./hadoop-3.1.3/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限
打开终端,输入以下
cd /home/hadoop #可以直接进去右键终端打开,作者切换了hadoop账号,路径在/home/hadoop
./bin/hadoop version
牢记:作者的路径在/home/hadoop
二 Hadoop伪分布式配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于/home/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml (通过vim编辑会比较方便: vim /etc/hadoop/core-site.xml),将当中的
<configuration>
</configuration>
直接打开文件,修改为下面配置:
<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>
实际上直接打开文件,进文件中修改就行。
注意自己的路径
同样的,修改配置文件 hdfs-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>
</configuration>
打开文件进行代码修改就行。
配置完成后,执行 NameNode 的格式化:
- cd /home/hadoop
- ./bin/hdfs namenode -format
成功的话,会看到 “successfully formatted” 的提示,具体返回信息类似如下:
如果在这一步时提示 Error: JAVA_HOME is not set and could not be found. 的错误,则说明之前设置 JAVA_HOME 环境变量那边就没设置好,请按教程先设置好 JAVA_HOME 变量,否则后面的过程都是进行不下去的。如果已经按照前面教程在.bashrc文件中设置了JAVA_HOME,还是出现 Error: JAVA_HOME is not set and could not be found. 的错误,那么,请到hadoop的安装目录修改配置文件“/home/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export JAVA_HOME=/home/lib/jvm/default-java”,然后,再次启动Hadoop。(原理这样,作者一步通过,没尝试这个)
接着开启 NameNode 和 DataNode 守护进程。
- cd /home/hadoop #作者直接在hadoop终端打开,没输入这一步,输入下一步
- ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
成功启动后,可以访问 Web 界面 http://localhost:9870 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。(作者没做)