当前位置:   article > 正文

Hadoop伪分布式搭建_hadoop伪分布式环境

hadoop伪分布式环境
安装虚拟机及linux系统(本文以CentOS为例)

  请自行百度.


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

  切换到hadoop用户登陆linux.


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

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

修改映射
sudo vim /etc/hosts
# 在文件中添加本机Ip(ifconfig可以查看ip) 和用户名
# 例:
192.168.160.130  ylitech
  • 1
  • 2
  • 3
  • 4
配置ssh免密码登陆

首先测试ssh是否安装,

rpm -qa | grep ssh
  • 1

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

sudo yum install openssh-clients
sudo yum install openssh-server
  • 1
  • 2

接着执行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     # 修改文件授权.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这时再用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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

若环境变量配置正确,在终端输入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组.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

若安装成功,在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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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

vim yarn-site.xml

<configuration>
<property>
    <!-- mapreduce执行shuffle时获取数据的方式 -->
    <name>yarn.nodemanager.auxservices</name>
    <value>mapreduce_shuffle</value>
</property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

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

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

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

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


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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/651130
推荐阅读
相关标签
  

闽ICP备14008679号