这学期开了门大数据的课,实验要求安装好hadoop。经过十几二十个小时的百度和实践终于把hadoop安装完成,wordcount实例也成功运行。综合网上的一些方法,写下这篇文章,记忆与分享
首先就是安装Java:
自行在网上搜索jdk包,这里也有链接:点我点我
下载jdk。
使用tar命令解压:
tar -zxvf jdk-8u191-linux-x64.tar.gz
在/usr/目录下创建一个文件夹:
sudo mkdir /usr/java
把解压的jdk移到/usr/java/中:
mv jdk1.8.0_191 /usr/java/
然后配置环境变量
sudo vim /etc/environment
如果vim没有安装 使用nano vi编辑都行 或者安装vim : sudo apt install vim(在此之前先将所有软件包更新到最新:sudo apt update && sudo apt upgrade)
编辑内容:
打开environment文件里面应该是只有这样的一行
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
编辑后文件里面的内容应该是:
JAVA_HOME="/usr/java/jdk1.8.0_191"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/java/jdk1.8.0_191/bin:"
保存退出 接着输入命令 source /etc/environment 刷新环境变量
输入命令 java -version 如果显示出jdk版本的信息jdk就配置完成。
接下来安装ssh:
输入命令:
sudo apt update && sudo apt upgrade
更新软件包
sudo apt-get install ssh
安装ssh
sudo apt-get install openssh-server
安装完成之后设置ssh免密登录:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
尝试免密登录:
ssh localhost
如果没有提示输入密码直接登陆成功则设置成功
下载hadoop:
下载链接:下载hadoop点我
笔者下载安装的是3.1.1版本
在/usr/目录下创建一个hadoop目录
sudo mkdir /usr/hadoop
将下载的包解压到/usr/hadoop目录下
sudo tar -zxvf hadoop-3.1.1-src.tar.gz -C /usr/hadoop/
配置文件:
需要配置5个文件 在hadoop/etc/hadoop目录下
sudo vim hadoop-env.sh
将下面几行写入:
export JAVA_HOME=/usr/java/jdk1.8.0_191
export HADOOP_HOME=/usr/hadoop/hadoop-3.1.1
export PATH=$PATH:/usr/hadoop/hadoop-3.1.1/bin
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
其中路径都是你安装的hadoop和jdk路径
sudo vim core-site.xml
写入内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop-3.1.1/tmp</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/hdfs/name</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop3/hadoop_tmp</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
sudo vim hdfs-site.xml
写入内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/hadoop-3.1.1/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>mapreduce.job.ubertask.enable</name>
<value>true</value>
</property>
</configuration>
sudo vim mapred-site.xml
写入内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>/usr/hadoop/hadoop-3.1.1/share/hadoop/mapreduce/*, /usr/hadoop/hadoop-3.1.1/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
sudo vim yarn-site.xml
写入内容:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>localhost:8088</value>
</property>
<property>
<name>yarn.nodemanager.webapp.address</name>
<value>localhost:50070</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>localhost:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:8032</value>
</property>
<property>
<name>yarn.resourcemanager.resource-traker.address</name>
<value>localhost:8031</value>
</property>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2000</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>1600</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>500</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>500</value>
</property>
</configuration>
保存完后,编辑/etc/environment配置环境变量 编辑后为:
JAVA_HOME="/usr/java/jdk1.8.0_191"
HADOOP_INSTALL="/usr/hadoop/hadoop-3.1.1"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/java/jdk1.8.0_191/bin:/usr/hadoop/hadoop-3.1.1/bin:/usr/hadoop/hadoop-3.1.1/sbin"
输入命令 source /etc/environment
配置 ~/.bashrc:
sudo vim ~/.bashrc
在最后面加上
#HADOOP VARIABLES START
export HADOOP_INSTALL=/usr/hadoop/hadoop-3.1.1
export HADOOP_MAPRED_HOME=/usr/hadoop/hadoop-3.1.1
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_MOME=$HADOOP_INSTALL
export YARE_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
export PATH=$PATH:$HADOOP_INSTALL/sbin
export PATH=$PATH:$HADOOP_INSTALL/bin
#HADOOP VARIABLES END
输入命令
source ~/.bashrc
刷新环境变量
输入命令hadoop version 显示出hadoop版本信息就配好了环境变量
格式化hadoop:
进入hadoop/bin目录下 输入命令:
hadoop namenode -format
接着会出现一堆信息 在靠后面有......format successful(不是在最后一行)即格式化成功。
接着可以启动 进入/hadoop/sbin/目录
输入命令 : start-all.sh
输入命令: jps查看是否启动成功
完全启动成功应该是出现六项:
然后可以打开浏览器
进入 localhost:8088
进入 localhost:50070
网页显示没问题,hadoop基本上安装好了。
现在可以试试wordcount实例:
输入命令:
hadoop fs -ls /
查看hadoop根目录文件 第一次肯定什么也没有
创建一个文件夹
hadoop fs -mkdir /input
将hadoop/README.txt移入:
hadoop fs -put /usr/hadoop/hadoop/README.txt /input
运行wordcount实例
hadoop jar /usr/hadoop/share/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount /input /output
运行成功图:
运行成功的情况下会在hadoop目录下生成/output目录 里面有两个文件