HPC专题

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

2019-07-24  本文已影响0人  CPinging

Pseudo-Distributed Operation

搭建准备

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

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

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

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

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

搭建工作

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

此时我们能用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

并进行检验:

image.png image.png

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

Hadoop配置

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

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

末尾添加:

JAVA_HOME=/usr/java/jdk1.8.0_191

sudo vim /usr/local/hadoop/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>
image.png

sudo vim /usr/local/hadoop/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>
image.png

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

<configuration> 
<!-- Site specific YARN configuration properties -->
    <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.address</name> 
        <value>127.0.0.1:8032</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.scheduler.address</name> 
        <value>127.0.0.1:8030</value> 
    </property> 
    <property> 
        <name>yarn.resourcemanager.resource-tracker.address</name> 
        <value>127.0.0.1:8031</value> 
    </property> 

image.png

启动

hdfs namenode -format

image.png

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

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

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

上一篇下一篇

猜你喜欢

热点阅读