创建单节点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,添加两个参数:
l 'hadoop.tmp.dir'- 用于指定目录让Hadoop 来存储其数据文件。
l '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集群的主要内容,如果未能解决你的问题,请参考以下文章