Hadoop伪分布式搭建

来源:互联网 发布:怎么复制淘宝宝贝视频 编辑:程序博客网 时间:2024/05/14 19:35

安装虚拟机及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-clientssudo yum install openssh-server

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

设置免密码登陆:

cd ~/.sshssh-keygen -t rsa   # 通过ssh-keygen命令来生成密钥对在.ssh目录下(会有提示,回车即可)。# 此命令执行后,会在~/.ssh目录下生成私钥id_rsa 和公钥id_rsa.pubcat 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-1export 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/localsudo 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/hadoopexport HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport 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.xmlvim 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伪分布式即安装成功。