1.下载Hadoop
下载地址:北京信息学院镜像http://mirror.bit.edu.cn/apache/hadoop/common/ 2. 安装Hadoop
创建Hadoop用户
sudo useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash作为shell
sudo passwd hadoop #为hadoop用户设置密码
sudo adduser hadoop sudo #为hadoop用户增加管理员权限
su - hadoop #切换当前用户为用户hadoop
sudo apt-get update #更新hadoop用户
安装ssh
sudo apt-get install openssh-server #安装SSH server
ssh localhost #登陆SSH,第一次登陆输入yes
exit #退出登录的ssh localhost
cd ~/.ssh/ #如果没法进入该目录,执行一次ssh localhost
ssh-keygen -t rsa
在输入完 $ ssh-keygen -t rsa 命令时,需要连续敲击回车三次
其中,第一次回车是让KEY存于默认位置,以方便后续的命令输入。第二次和第三次是确定passphrase,相关性不大
之后输入
cd .ssh
#创建authorized_keys文件并修改权限为600
touch authorized_keys
chmod 600 authorized_keys
cat ./id_rsa.pub >> ./authorized_keys #加入授权
ssh localhost #此时已不需密码即可登录localhost,并可见下图。如果失败则可以搜索SSH免密码登录来寻求答案
原文链接:
安装Hadoop
1.切换到下载的Hadoop的地址目录下
2.将Hadoop解压到指定目录下
sudo tar -zxvf hadoop-3.2.1.tar.gz -C /usr/local
cd /usr/local
#sudo mv hadoop-3.2.1 hadoop #重命名为hadoop,可改可不改,如果修改下边的名字也要对应
sudo chown -R hadoop ./hadoop #修改文件权限
3.给Hadoop配置环境,将下面代码添加到.bashrc文件中
#Hadoop Environment
export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source ~./bashrc
使配置文件生效
查看Hadoop版本,查看是否安装成功hadoop version
启动Hadoop时遇到的问题
JAVA_HOME is not set and could not be found 解决办法
该问题表明Java的路径设置有问题,其实就是Hadoop里面的hadoop-env.sh文件里面的java路径设置不对,hadoop-env.sh在hadoop/etc/hadoop目录下,具体的修改办法如下:
sudo vim hadoop/etc/hadoop/hdoop-env.sh
将语句export JAVA_HOME=$JAVA_HOME
修改为export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_291
保存后退出
再次输入start-dfs.sh
启动Hadoop
修改配置文件
sudo gedit ./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>
修改hdfs-site.xml文件:sudo gedit ./etc/hadoop/hdfs-site.xml
<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>
配置完成后执行NameNode 格式化
cd /usr/local/hadoop/bin
hdfs namenode -format
启动namenode和datanode进程,并查看启动结果
cd /usr/local/hadoop/sbin
start-dfs.sh
启动时有可能报的错误:
-bash: start-dfs.sh: command not found
主要原因是start-dfs.sh的命令在hadoop安装目录的sbin目录下,如果在etc/profile里面只配置了HADOOP_HOME/bin的话,那在启动的时候就会报没有找到命令的错误了,所以,在HADOOP_HOME/bin后面再加上:HADOOP_HOME/sbin就可以了。
原文链接:
解决办法:
sudo vi /etc/profile
在最下面添加:
export PATH=/usr/local/hadoop/bin:$PATH
然后使配置生效即可
export PATH=/usr/local/hadoop/bin:$PATH
安装完成后使用jps命令查看是否安装成功
jps
Hadoop中jps命令出现Command not found
which java
/usr/bin/java
删掉这个软连接
sudo rm /usr/bin/java
将正确的地址指向这个软连接
sudo ln -s /usr/java/jdk1.8.0_291/bin/java /usr/bin/java
查看
java -version
将此信息录入环境变量中去
sudo vi /etc/profile
source /etc/profile
export PATH=$PATH:/usr/java/jdk1.8.0_291/bin
查看安装是否成功
在浏览器中输入localhost:50070会出现以下页面