Hadoop伪分布式环境搭建—Ubuntu16.04

Pseudo-Distributed Operation

搭建准备

本次搭建在ubuntu16.04.6 LTS上进行,使用java-jdk8u_191进行。

  • 链接: https://pan.baidu.com/s/1Br6jpJWkvXb5xp-D3jnNWA 提取码: tz2m

上面链接中包括了java的jdk压缩包和xshell,其他的就是一些配置文件。

http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation

上面这个内容为官方搭建文档。

而我们本次搭建的hadoop版本为:2.6.5

  • 链接: https://pan.baidu.com/s/1-cHnnMteSCsUs3n9HXkrXg 提取码: 4qwe

搭建工作

JAVA

安装JAVA在/usr/java目录下:

image.png

tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/java/

于是解压到本地。

之后环境变量我们同hadoop一起配置。

SSH

a) 下载ssh-server
sudo apt-get install openssh-server

b) 启动ssh
sudo /etc/init.d/ssh start

c) 查看ssh服务是否启动,如果显示相关ssh字样则表示成功。
ps -ef|grep ssh

d) 设置免密码登录
使用如下命令,一直回车,直到生成了rsa。
ssh-keygen -t rsa

  • 导入authorized_keys
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  • 测试是否免密码登录localhost
    ssh localhost

此时我们能用ssh登录本机。

e)关闭防火墙
ufw disable

Hadoop安装

使用我们的Hadoop安装包(首节有链接)。

进入 /usr/local/目录,并调用sudo tar zxvf hadoop-2.6.5.tar.gz -C /usr/local

切换到/usr/local下,将hadoop-2.6.5重命名为hadoop,并给/usr/local/hadoop设置访问权限。(-R为递归的给目录权限,必须)

cd /usr/local
sudo mv hadoop-2.7.4 hadoop 
sudo chmod 777 -R /usr/local/Hadoop
image.png

配置.bashsc文件

sudo vim ~/.bashrc

将以下内容复制到该文件的末尾,包括了java的配置与Hadoop的配置信息。

export JAVA_HOME=/usr/java/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH


#HADOOP VARIABLES START 
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
#HADOOP VARIABLES END
image.png

之后我们需要调用source ~/.bashrc

并进行检验:

  • 对Java进行检验
image.png
  • 对Hadoop检验
image.png

这里经常会有错误,只有出现了版本号才算真正的搞定,如果这里不行,那么我们可以将下面的hadoop配置文件写完后在尝试一下。

Hadoop配置

  • 配置hadoop-env.sh

sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh

末尾添加:

# The java implementation to use. 
export JAVA_HOME=/usr/java/jdk1.8.0_191
export HADOOP=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin
export HADOOP_COMMON_HOME=/usr/local/hadoop
  • 配置yarn-env.sh

sudo vim /usr/local/hadoop/etc/hadoop/yarn-env.sh

末尾添加:

JAVA_HOME=/usr/java/jdk1.8.0_191
  • 配置core-site.xml

sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml



        
             hadoop.tmp.dir
             file:/usr/local/hadoop/tmp
             Abase for other temporary directories.
        
        
             fs.defaultFS
             hdfs://localhost:9000
        

image.png
  • 同样修改配置文件 hdfs-site.xml:

sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml


        
             dfs.replication
             1
        
        
             dfs.namenode.name.dir
             file:/usr/local/hadoop/tmp/dfs/name
        
        
             dfs.datanode.data.dir
             file:/usr/local/hadoop/tmp/dfs/data
        

image.png
  • 配置yarn-site.xml

sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml

 

     
        yarn.nodemanager.aux-services 
        mapreduce_shuffle 
     
     
        yarn.nodemanager.aux-services.mapreduce.shuffle.class 
        org.apache.hadoop.mapred.ShuffleHandler 
     
     
        yarn.resourcemanager.address 
        127.0.0.1:8032 
     
     
        yarn.resourcemanager.scheduler.address 
        127.0.0.1:8030 
     
     
        yarn.resourcemanager.resource-tracker.address 
        127.0.0.1:8031 
     

image.png

启动

  • 格式化namenode

hdfs namenode -format

image.png

有successfully formatted代表格式化成功。Existing with 1代表有错误。

  • 启动hdfs

start-all.sh

验证:

image.png

有6个进程代表正确。

访问:http://192.168.225.129:50070(这里的ip是你虚拟机的ip)

image.png

输入 http://192.168.225.129:8088/, 出现如下页面

image.png

至此Hadoop已经完全搭建成功。

Word Count测试

a) 启动HDFS
start-all.sh

b) 产看HDFS下面包含的文件目录
hadoop dfs -ls /
第一次运行hdfs什么都没有

image.png

c) 在HDFS中创建一个文件目录input,将/usr/local/hadoop/README.txt上传至input中,此时再用ls查看就发现多了个input目录
hdfs dfs -mkdir /input
hadoop fs -put /usr/local/hadoop/README.txt /input

image.png

d) 执行一下命令运行wordcount 并将结果输出到output中。
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /input /output

之后查看:

hadoop fs -cat /output/part-r-00000

本文参考了https://blog.csdn.net/kh896424665/article/details/78765175。

原创文章,转载请编辑原处。

你可能感兴趣的:(Hadoop伪分布式环境搭建—Ubuntu16.04)