如果你安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。
一、创建Hadoop用户
1.创建Hadoop用户,并使用并使用 /bin/bash 作为 shell
$ sudo useradd -m hadoop -s /bin/bash
2.为Hadoop用户设置密码
$ sudo passwd hadoop
3.增加Hadoop用户管理权限,方便部署
$ sudo adduser hadoop sudo
4.切换当前用户为Hadoop
$ su - hadoop
二、更新apt
更新apt,后续我们需要使用apt安装软件
$ sudo apt-get update
安装vim
$ sudo apt-get install vim
三、安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server
$ sudo apt-get install openssh-server
登陆SSH,第一次登陆输入yes,然后按提示输入密码,这样就登陆到本机了
$ ssh localhost
为了方便,配置SSH无密码登录,首先退出SSH
$ exit # 退出刚才的 ssh localhost
$ cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
$ ssh-keygen -t rsa # 会有提示,都按回车就可以
$ cat ./id_rsa.pub >> ./authorized_keys # 加入授权
此时用ssh localhost
不用密码就能登录
四、安装Java环境
有多种方式安装JDK,我采取手动安装
1.在Oracle官方网站的dowmloads下载JDK(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html),下载在电脑中Downloads下
2.在Linux命令行界面中,执行如下Shell命令(注意:当前登录用户名是hadoop)
cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd ~ #进入hadoop用户的主目录
cd Downloads #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u231-linux-x64.tar.gz上传到该目录下
sudo tar -zxvf ./jdk-8u231-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下
JDK文件解压缩以后,可以执行如下命令到/usr/lib/jvm目录查看一下
cd /usr/lib/jvm
ls
可以看到,在/usr/lib/jvm目录下有个jdk1.8.0_231目录
3.设置环境变量
cd ~
vim ~/.bashrc
使用vim打开了hadoop这个用户的环境变量配置文件,在文件中添加:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_231
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存.bashrc文件并退出vim编辑器.
4.使.bashrc文件的配置立即生效,然后查看是否安装成功
source ~/.bashrc
java -version
安装成功反馈
hadoop@duduna-XPS-15-9570:~$ java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
五、Hadoop安装
在Hadoop官网下载Hadoop安装包hadoop-2.10.0.tar.gz,下载完之后,将 Hadoop 安装至 /usr/local/ 中
sudo tar -zxf ~/Downloads/hadoop-2.10.0.tar.gz -C /usr/local #解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.10.0/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限
Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息
cd /usr/local/hadoop
./bin/hadoop version
成功显示界面
hadoop@duduna-XPS-15-9570:/usr/local/hadoop$ ./bin/hadoop version
Hadoop 2.10.0
Subversion ssh://git.corp.linkedin.com:29418/hadoop/hadoop.git -r e2f1f118e465e787d8567dfa6e2f3b72a0eb9194
Compiled by jhung on 2019-10-22T19:10Z
Compiled with protoc 2.5.0
From source with checksum 7b2d8877c5ce8c9a2cca5c7e81aa4026
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.10.0.jar
六、Hadoop单机配置(非分布式)
Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
现在可以执行Hadoop的例子来感受一下Hadoop运行,Hadoop附带了丰富的例子(包括 wordcount、terasort、join、grep 等。),以grep为例,来运行一下。
$ cd /usr/local/hadoop
$ mkdir ./input
$ cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入文件
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
$ cat ./output/* # 查看运行结果
执行成功后的运行结果:
注意,Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除。
$ rm -r ./output
七、Hadoop为分布式配置
伪分布式需要修改两个配置文件: core-site.xml 和 hdfs-site.xml
1、修改配置文件core-site.xml :
$ gedit ./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>
2、修改配置文件 hdfs-site.xml:
$ gedit ./etc/hadoop/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 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。
3、配置完成后进行NameNode格式化
$ ./bin/hdfs namenode -format
(注意:如果在这一步时提示 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的安装目录修改配置文件“/usr/local/hadoop/etc/hadoop/hadoop-env.sh”,在里面找到“export JAVA_HOME=${JAVA_HOME}”这行,然后,把它修改成JAVA安装路径的具体地址,比如,“export JAVA_HOME=/usr/lib/jvm/default-java”,然后,再次启动Hadoop。)
4、开启 NameNode 和 DataNode 守护进程。
./sbin/start-dfs.sh
#start-dfs.sh是个完整的可执行文件,中间没有空格
遇到SSH提示,输入yes即可
确认是否成功启动:
$ jps
这四项缺一不可,检查没有启动的原因,如果是NameNode和DataNode,一般是配置不成功,检查配置;如果是SecondaryNameNode则是启动不成功,重新启动。
5、启动成功
成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
6、如果要关闭Hadoop,则
$ ./sbin/stop-dfs.sh
再次打开Hadoop
$ ./sbin/start-dfs.sh
网友评论