Hadoop伪分布式搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Thus_/article/details/78397495

安装虚拟机及linux系统(本文以CentOS为例)

  请自行百度.


创建hadoop用户

# 创建hadoop用户(su root用户创建)
useradd -m hadoop -s /bin/bash
# 设置密码
passwd hadoop

  切换到hadoop用户登陆linux.


修改主机名

sudo vim /etc/hostname
# 在haotname中输入用户名,再次以 ylitech为例.

# (若不能使用sudo:)
# 切换到root用户,为/etc/sudoers文件添加写权限:
chmod u+w /etc/sudoers
# vim /etc/sudoers
# 复制 root ALL ... 那一行
# 把root改为自己的用户名.保存退出:wq

修改映射

sudo vim /etc/hosts
# 在文件中添加本机Ip(ifconfig可以查看ip) 和用户名
# 例:
192.168.160.130  ylitech

配置ssh免密码登陆

首先测试ssh是否安装,

rpm -qa | grep ssh

若返回的结果中包括SSH client和SSH server ,则不需要再安装.
若为安装,通过:

sudo yum install openssh-clients
sudo yum install openssh-server

接着执行ssh localhost 测试ssh是否可用,exit 可以退出ssh。

设置免密码登陆:

cd ~/.ssh
ssh-keygen -t rsa   # 通过ssh-keygen命令来生成密钥对在.ssh目录下(会有提示,回车即可)。
# 此命令执行后,会在~/.ssh目录下生成私钥id_rsa 和公钥id_rsa.pub
cat id_rsa.pub >> authorized_keys   # 将id_rsa.pub中的公钥信息保存到authorized_keys中.
chmod 600 ./authorized_keys     # 修改文件授权.

这时再用ssh localhost命令,无需密码即可直接登陆。


JDK的安装.

到网上下载jdk,本例使用的是jdk-9.0.1

# 首先使用tar命令解压jdk到/usr/local目录下.
sudo tar -zxvf jdk-9.0.1_linux-x64_bin.tar -C /usr/local

# 接着需要配置JAVA环境变量.
vim ~/.bashrc
# 在文件最后添加
export JAVA_HOME=/usr/local/jdk-9.0.1-1
export PATH=$JAVA_HOME/bin:$PATH

# 接下来需要使用source命令是环境变量生效.
source ~/.bashrc

若环境变量配置正确,在终端输入java -version即可查看java版本.


安装hadoop

同上,在网上下在hadoop,(在此以hadoop-2.8.2为例)

sudo tar -zxvf hadoop-2.8.2.tar.gz -C /usr/local
# 将hadoop解压到/usr/local
sudo mv hadoop-2.8.2 hadoop 
# 将文件夹重命名为hadoop(可选,方便后续添加环境变量)
sudo chown hadoop:hadoop hadoop 
# 将hadoop文件夹所属用户和组修改为hadoop用户和hadoop组.

若安装成功,在cd /usr/local/hadoop 文件夹下输入./bin/hadoop version 即可查看hadoop版本.


Hadoop伪分布式配置

1> 配置环境变量

vim ~/.bashrc
# 在文件最后添加:
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
# 保存推出 :wq
# 使用source命令,是环境变量生效.
source ~/.bashrc

2> 修改/usr/local/hadoop/etc/hadoop 文件夹下的core-site.xml配置文件.

默认情况下,Hadoop将数据保存在/tmp下,当重启系统时,/tmp中的内容将被自动清空,所以我们需要制定自己的一个Hadoop的目录,用来存放数据。另外需要配置Hadoop所使用的默认文件系统,以及Namenode进程所在的主机。

<configuration>
<property>
    <!-- 指定hadoop运行时产生文件的存储路径 -->
    <name>hadoop.tmp.dir</name
    <value>file:/usr/local/hadoop/tmp</value>
    <description>A base for other temporary directories.</description>
</property>
<property>
    <!-- hdfs namenode的通信地址 -->
    <name>fs.defaultFS</name>
    <value>hdfs://ylitech:9000</value>
</property>
</configuration>

3> 修改hdfs-site.xml配置文件.
该文件指定与HDFS相关的配置信息。需要修改HDFS默认的块的副本属性,因为HDFS默认情况下每个数据块保存3个副本,而在伪分布式模式下运行时,由于只有一个数据节点,所以需要将副本个数改为1;否则Hadoop程序会报错。

<configuration>
<property>
    <!-- 指定HDFS存储数据的副本数目,默认情况下是3份-->
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <!-- name node 存放 name table 的目录 -->
    <name>dfs.namenode.name.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<!-- data node 存放数据 block 的目录 -->
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>

4> mapred-site.xml配置
在该配置文件中指定与MapReduce作业相关的配置属性,需要指定JobTracker运行的主机地址。
/usr/local/hadoop/etc/hadoop文件夹中并没有mapred-site.xml文件,但提供了模板mapred-site.xml.template 将其重命名为mapred-site.xml 即可。

mv mapred-site.xml.template mapred-site.xml

vim mapred-site.xml
# 修改配置文件:
<configuration>
<property>
    <!-- 指定mapreduce 编程模型运行在yarn上 -->
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>

5> 修改yarn-site.xml配置文件

vim yarn-site.xml

<configuration>
<property>
    <!-- mapreduce执行shuffle时获取数据的方式 -->
    <name>yarn.nodemanager.auxservices</name>
    <value>mapreduce_shuffle</value>
</property>
</configuration>

Hadoop namenode格式化

hdfs namenode -format
# 成功的话会看到"successfully formatted""Exitting with status 0" 的提示,若为 "Exitting with status 1" 则是出错。

关闭防火墙

sudo service iptables stop      # 关闭防火墙服务。
sudo chkconfig iptables off     # 禁止防火墙开机自启。

Hadoop启动

cd /usr/local/hadoop/sbin
./start-all.sh      # 启动所有的hadoop服务,包括hdfs和yarn.

命令执行完成后输入jps命令若有5个进程:namenode、secondarynamenode、datanode、resourcemanager、nodemanager,则表示启动成功。

可以通过web访问http://ylitech:50070 查看NameNode和DataNode信息。

访问web界面:http://ylitech:8088 可以查看mapreduce运行情况。


至此hadoop伪分布式即安装成功。

阅读更多

没有更多推荐了,返回首页