创建Hadoop用户
- 创建新用户
用户名为hadoop,使用/bin/bash作为shell
sudo useradd -m hadoop -s /bin/bash
- 修改密码
$ sudo passwd hadoop
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
- 为hadoop用户添加管理员权限
sudo adduser hadoop sudo
安装jdk1.7
首先在oracle官网下载,接下来进行安装与环境变量配置,根据个人电脑系统选择对应版本,我选的是jdk-8u211-linux-x64.tar.gz
$ mkdir /usr/lib/jvm #创建jvm文件夹
$ sudo tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/lib/jvm #/ 解压到/usr/lib/jvm目录下
$ cd /usr/lib/jvm #进入该目录
$ mv jdk1.8.0_211 java #重命名为java
$ vim ~/.bashrc #给JDK配置环境变量
在.bashrc文件添加如下指令:
export JAVA_HOME=/usr/lib/jvm/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
在文件修改完毕以后,输入代码:
$ source ~/.bashrc #使新配置的环境变量生效
$ java -version #检测是否安装成功,查看java版本
安装SSH服务端
- 安装
$ sudo apt-get install openssh-server
- 登录localhost
$ ssh localhost
之后会在~/文件夹下发现一个.ssh文件 - 设置为无密码登录
$ cd ~/.ssh/
$ ssh-keygen -t rsa #出现提示直接按enter
$ cat ./id_rsa.pub >> ./authorized_keys #加入授权
此时就直接使用$ ssh localhost,无密码登录了。
安装Hadoop
本文采用伪分布式模式:存储采用分布式文件系统HDFS,但是HDFS的节点和数据节点都在同一节点。
- 下载安装
下载安装包后解压即可使用:
$ sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local
$ cd /usr/local/
$ sudo mv ./hadoop-2.7.1/ ./hadoop # 将文件夹名改为hadoop
$ sudo chown -R hadoop ./hadoop # 修改文件权限
查看Hadoop版本信息:
$ cd /usr/local/hadoop/bin
$ ./hadoop version
- 伪分布式模式配置
修改配置文件:
需要修改/usr/local/hadoop/etc/hadoop/文件夹下的core-site.xml和hdfs-site.xml文件。
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>
将/hadoop/etc/hadoop/hadoop-env.sh文件的JAVA_HOME改为绝对路径。将export JAVA_HOME=$JAVA_HOME改为
export JAVA_HOME=/usr/lib/jvm/default-java
注意:Hadoop的运行方式是由配置文件决定的,如果想从伪分布式模式切换回单机模式,只需删除core-site.xml文件中的配置项即可
- 执行名称节点格式化
执行如下命令:
$ cd /usr/local/hadoop
$ ./bin/hdfs namenode -format
出现如下错误
原因应该是权限不够无法再目录内新建文件。
解决方案是:先输入命令:sudo su转为root身份
输入命令:
sudo chmod -R a+w /opt/hadoop-1.2.1/
注意修改自己的安装路径。
输入命令exit回到用户身份
再执行格式化成功。
如果出现/usr/local/hadoop/tmp/dfs/name has been successfully formatted.和 Exiting with status 0,表示格式化成功。
启动Hadoop
$ cd /usr/local/hadoop
$ ./sbin/start-dfs.sh
用jps命令查看Hadoop是否启动成功,如果出现DataNode、NameNode、SecondaryNameNode的进程说明启动成功。
使用浏览器查看HDFS信息
在浏览器中打开链接:http://localhost:50070/dfshealth.html#tab-overview
即可查看
关闭Hadoop
使用命令:
./sbin/stop-dfs.sh
下次启动时不需要再执行节点格式化命令(否则会报错),只需要直接运行start-dfs.sh命令即可。