创建单节点Hadoop集群

Posted 清箫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建单节点Hadoop集群相关的知识,希望对你有一定的参考价值。

1   安装JDK

首先,你得先确认机器是否已经安装了JDK,如果没有安装,则需要安装,以Ubuntu-16.04为例,:

$ sudo apt-get installdefault-jdk

用java –version,发现系统提示我装的是JDK1.8,默认装到了/usr/lib/jvm/java-8-openjdk-amd64。

https://www.digitalocean.com/community/tutorials/how-to-install-java-on-ubuntu-with-apt-get

2   添加Hadoop系统用户组和用户

$ sudo addgroup hadoop_

$ sudo adduser –ingrouphadoop_ hduser_

创建组hadoop_,新用户hduser_,密码系统会提示你输入,后面其他用户信息可以随意填。

3   安装SSH服务

如果收到这个响应ssh: connect to host localhost port22: Connection refused,说明SSH服务没装。

$ sudo apt-get installopenssh-server

4   配置SSH - 切换为hduser_

为了在集群管理节点,Hadoop需要SSH访问。首先切换为hduser_用户:

$ su hduser_

$ cd ~

创建新的秘钥:

$ ssh-keygen -t rsa -P""

参数含义:-t rsa表示使用RSA算法;-P ""表示旧密码为空,这意味着Hadoop主从节点采用无密码登录的方式。

使用这个秘钥启用SSH访问本地计算机:

$ cat/home/hduser_/.ssh/id_rsa.pub >> /home/hduser_/.ssh/authorized_keys

验证是否配置成功:

hduser_@ubuntu$ sshlocalhost

这一步可能会失败,收到Connection to localhost closed byremote host。检查/va/log/secure,如果是这种错:pam_sss(sshd:account): Access denied for user local 10 (User notknown to the underlying authentication module),则需要配置一下/etc/pam.d/sshd,添加如下记录:

account sufficient pam_localuser.so

5   安装Hadoop

http://hadoop.apache.org/releases.html下载稳定版本,一般是下载二进制版本的。我先本地下载,然后用putty上传到了/tmp目录。

解压,移动到/usr/local目录并重名名(这个时候要切换回原来的登录账号,因为hduser_没有sudo权限):

$ tar xzfhadoop-3.0.0.tar.gz

$ sudo mv Hadoop-3.0.0/usr/local/hadoop

6   修改~/.bashrc文件– 切换至主账号

添加如下设置:

#Set HADOOP_HOME

exportHADOOP_HOME=/usr/local/hadoop

#Set JAVA_HOME

exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

#add bin/ directory ofHadoop to PATH

exportPATH=$PATH:$HADOOP_HOME/bin

执行.bashrc,做当前环境的配置:

~/.bashrc

7   配置关联HDFS – 切换至主账号

首先在在文件 /usr/local/hadoop/etc/hadoop/hadoop-env.sh 中设置JAVA_HOME

#Set JAVA_HOME

exportJAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

然后,编辑/usr/local/hadoop/etc/Hadoop/core-site.xml,添加两个参数:

'hadoop.tmp.dir'- 用于指定目录让Hadoop 来存储其数据文件。

'fs.default.name'- 指定默认的文件系统

<configuration>

  <property>

    <name>hadoop.tmp.dir</name>

    <value>/app/hadoop/tmp</value>

    <description>Parent directory forother temporary directories.</description>

  </property>

  <property>

    <name>fs.defaultFS</name>

   <value>hdfs://localhost:543210</value>

    <description>The name of he dfaultfile system</description>

  </property>

</configuration>

再然后,创建/app/Hadoop/tmp目录,并授予目录权限:

$ sudo mkdir –p /app/hadoop/tmp

$ sudo chown –R hduser_:hadoop_/app/hadoop/tmp

$ sudo chmod 750 /app/hadoop/tmp

8   配置Map Reduce – 切换至主账号

首先,需要配置HADOOP_HOME的路径:

$ sudo vi/etc/profile.d/hadoop.sh

添加以下内容:

export HADOOP_HOME=/usr/local/hadoop

再执行以下命令:

sudo chmod +x/etc/profile.d/hadoop.sh

验证是否OK:

$ echo $JAVA_HOME

$ echo $HADOOP_HOME

编辑$HADOOP_HOME/etc/hadoop/mapred-site.xml文件,添加以下内容:

<property>

   <name>mapreduce.jobtracker.address</name>

   <value>localhost:54311</value>

   <description>MapReduce job tracker runs at this host and port.

   </description>

</property>

再打开$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件,添加以下内容:

<property>

   <name>dfs.replication</name>

   <value>1</value>

   <description>Default block replication.</description>

</property>

<property>

   <name>dfs.datanode.data.dir</name>

   <value>/home/hduser_/hdfs</value>

</property>

创建以上配置指定的目录,并分配权限:

$ sudo mkdir -p/home/hduser_/hdfs

$ sudo chown -Rhduser_:hadoop_ /home/hduser_/hdfs

$ sudo chmod 750/home/hduser_/hdfs

9   格式化HDFS – 切换至主账号

$ sudo$HADOOP_HOME/bin/hdfs namenode -format

10  启动Hadoop的单节点集群 – 切换至hduser_

切换到用户hduser_,然后执行:

$ su hduser_

$ $HADOOP_HOME/sbin/start-dfs.sh

$ $HADOOP_HOME/sbin/start-yarn.sh

使用jps工具验证是否所有Hadoop相关的进程正在运行:

/usr/local/jdk1.8.0_60/bin/jps

如果 Hadoop 成功启动,那么 jps 输出应显示: NameNode, NodeManager, ResourceManager, SecondaryNameNode,DataNode.

可能会报错,所没有权限写入/usr/local/hadoop/logs,执行:

/usr/local/jdk1.8.0_60/bin/jps

11  停止、关闭Hadoop – 切换至hduser_

$HADOOP_HOME/sbin/stop-dfs.sh

$HADOOP_HOME/sbin/stop-yarn.sh

 

以上是关于创建单节点Hadoop集群的主要内容,如果未能解决你的问题,请参考以下文章

创建单节点Hadoop集群

创建单节点Hadoop集群

Hadoop Single Node Cluster——Hadoop单节点集群的安装

如何安装单节点的hadoop

Hadoop伪集群(单节点集群)安装(Centos7)

Hadoop伪集群(单节点集群)安装(Centos7)