Hadoop3.1在虚拟机VMware上部署
前言
本文主要是解决自己部署hadoop时遇到的问题以及如何解决
一、Hadoop用户的创建
sudo useradd -m hadoop -s /bin/bash
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
完成这些后,点击右上角的小此轮,切换用户为hadoop
二、更新apt,安装VIM
sudo apt-get update
sudo apt-get install vim
三、安装SSH、配置SSH无密码登陆
1.检查ssh安装与否,不知道什么意思就直接执行下面两句
rpm -qa | grep ssh
yum -y install openssh openssh-server openssh-clients
2.授予hadoop权限
useradd -m hadoop -G root -s /bin/bash
passwd
找到:root ALL=(ALL) ALL
在下面添加:hadoop ALL=(ALL) ALL
记住中间的空格用Tab来
改完后就保存退出:Ctrl+O 然后Ctrl+X
3.无密登录
cd ~/.ssh/
# 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa
# 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys
# 加入授权
ssh localhost
#此时看下还要输密码不
四、更新apt,安装VIM
这里需要改下Downloads的权限,如果没这个文件,需要创建下
sudo chmod 777 /Downloads
此时再往Downloads中传文件,看成功不
cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd ~ #进入hadoop用户的主目录
cd Downloads #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u162-linux-x64.tar.gz上传到该目录下
sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下
cd /usr/lib/jvm
cd ~
vim ~/.bashrc
在这个文件开头加上如下内容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
改好后,按下insert 然后按下esc,最后输入 :wq 回车即可
最后查看下安装java的版本号
java -version
五、安装 Hadoop3.1.3
将压缩包保存到Downloads中,用上面安装Java的命令解压
sudo tar -zxvf ./hadoop-3.1.3.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.1.3/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限
查看安装好了没
cd /usr/local/hadoop
./bin/hadoop version
1.单击配置
cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/* # 查看运行结果
rm -r ./output
2.集群配置(一定注意切到该目录下,看有没有改文件)
/usr/local/hadoop/etc/hadoop/
gedit ./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>
开启守护进程
cd /usr/local/hadoop
./bin/hdfs namenode -format
cd /usr/local/hadoop
./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
运行实例
./bin/hdfs dfs -mkdir -p /user/hadoop
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
./bin/hdfs dfs -ls input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'
./bin/hdfs dfs -cat output/*
rm -r ./output # 先删除本地的 output 文件夹(如果存在)
./bin/hdfs dfs -get output ./output # 将 HDFS 上的 output 文件夹拷贝到本机
cat ./output/*
./bin/hdfs dfs -rm -r output # 删除 output 文件夹
./sbin/stop-dfs.sh
参考:
Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)_厦大数据库实验室博客
http://dblab.xmu.edu.cn/blog/2441-2/
(1条消息) hadoop配置ssh无密码登录_qq_42493452的博客-CSDN博客
https://blog.csdn.net/qq_42493452/article/details/86214090
(1条消息) sudo visudo 退出保存_weiyi556的博客-CSDN博客
https://blog.csdn.net/weiyi556/article/details/78980139?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1-78980139.nonecase&utm_term=visudo%E6%9B%B4%E6%94%B9%E5%90%8E%E6%80%8E%E4%B9%88%E9%80%80%E5%87%BA
(1条消息) ubuntu下使用filezilla上传文件权限问题(open for write: permission denied)_程序员欧阳思海-CSDN博客
https://blog.csdn.net/sihai12345/article/details/79370405