@[TOC](第四章Hadoop Single Node Cluster的安装)
Hadoop Single Node Cluster的安装(只以一台机器来建立Hadoop环境,可以使用相关命令但是无法发挥多台机器的威力)。
根据安装步骤
#4.1安装JDK
首先配置Java环境
启动终端检查Java版本
java –version
没有返回版本信息即需要安装。
关于sudo apt-get update
在Linux中既可以使用apt进行管理,也可以使用apt-get下载软件安装包(套件)。首先需要运行apt-get update 更新软件包信息。sudo apt-get update
运行apt-get必须具有superuser的权限,但是因该账户权限太大,为了安全考虑我们一般不会使用该账户登陆系统。因此我们加上“sudo”命令,询问superuser密码,并且短暂获取权限。sudo apt-get install default-jdk
输入y确认。
安装完后检查并查询Java安装的位置update-alternatives --display java
“链接目前指向 /usr/lib/jvm/java-7-openjdk-amd64”
稍后在~/.bashrc文件中设置此路径。
4.2设置ssh无密码登录
Hadoop是由多台服务器所组成的,当我们启动Hadoop系统时,NameNode必须与DataNode连接并管理这些节点。系统会要求用户输入密码,为了让系统不需要要手动输入密码运行而将SSH改成无密码登录。
无密码登录并不是不需要密码,而是事先交换得到SSH Key(密钥)来进行身份验证。
通过SSH会对所有的传输数据进行加密,利用SSH协议可以防止远程管理系统时信息外泄的问题。
安装SSHsudo apt-get install ssh
安装rsyncsudo apt-get install rsync
产生SSH Key 调用ssh-keygen
-t type Specify type of key to create. (此处采用的是DSA加密方法)
-P phrase Provide old passphrase.
-f filename Filename of the key file.ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
生成对应密钥。
查看密钥,一般产生在用户根目录下,/home/hduser
ll ~/.ssh
将产生的key放到许可证当中。cat ~/.ssh/id_dsa.pub
~/.ssh/authorized_keys
该命令会将~/.ssh/id_dsa.pub 附加到~/.ssh/authorized_keys
Tips:
Linux 的输出重定向附加功能命令的格式如下:
命令>>文件
重定向符号“>>”将会在命令
4.3下载安装Hadoop
这里下载的版本为2.6.4,因为要配合Spark2.0 所以作者建议系在2.6.4
进入hadoop官网 查看镜像选择2.6.4的版本,选择hadoop-2.6.4.tar.gz文件进行复制。
地址如下:
https://archive.apache.org/dist/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
而后在Linux中执行“wget + 上述网站”下载命令。
解压缩hadoop-2.6.4.tar.gz 到hadoop-2.6.4目录sudo tar –zxvf hadoop-2.6.4.tar.gz
移动hadoop-2.6.4目录到/usr/localsudo mv hadoop-2.6.4 /usr/local/hadoop
查看安装目录ll /usr/local/hadoop
4.4设置Hadoop环境变量
在~/.bashrc 文件中设置每次登录时都自动运行一次环境变量设置,以避免每次重新登录都要重新设置一遍。
编辑~/.bashrc文件sudo gedit ~/.bashrc
在最后加入
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=
HADOOP_HOME/bin
export PATH=
HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=
HADOOP_HOME
export HADOOP_HDFS_HOME=
HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=
HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=
JAVA_LIBRARY_PATH
点击保存,关闭窗口。
运行
source ~/.bashrc
让修改文件生效。
环境变量设置说明:
设置JDK安装路径
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
设置HADOOP_HOME 为Hadoop的安装路径/usr/local/hadoop
export HADOOP_HOME=/usr/local/hadoop
设置PATH(可以让你在其他的目录时仍然能够运行Hadoop命令)
export PATH=
HADOOP_HOME/bin
export PATH=
HADOOP_HOME/sbin
设置HADOOP其他环境变量
HADOOP_HOME
export HADOOP_COMMON_HOME=
HADOOP_HOME
export YARN_HOME=
HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=
HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
4.5修改hadoop配置设置文件
主要包括文件Hadoop-env.sh、core-site.xml、YARN-site.xml、mapred-site.xml、hdfs-site.xml
编辑Hadoop-env.sh
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
将export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
编辑core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
在中加入下列代码:
fs.default.name
hdfs://localhost:9000
设置HDFS的默认名称。
修改yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandlersudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
修改mapred-site.xml
mapred-site.xml用于监控Map和Reduce程序的JobTracker任务分配情况以及TaskTracker任务运行情况。
因Hadoop提供了模板文件所以直接复制即可。
sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
在文件中加入下列代码:
mapreduce.framework.name
yarn
设置hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
加入下述代码:
1.设置blocks副本备份数量
dfs.replication
3
设置NameNode数据库存储目录
dfs.namenode.name.dir
file:/usr/local/hadoop/hadoop_data/hdfs/namenode
设置DataNode数据存储目录
dfs.datanode.data.dir
file:/usr/local/hadoop/hadoop_data/hdfs/datanode
默认的blocks副本备份数量是每一个文件在其他的Node的备份数量。默认值3.
4.6创建并格式化HDFS目录
创建namenode、datanode数据存储目录:
创建namenodesudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
创建datanodesudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
用chown函数更改所有者为当前用户我的linux计算机名为tc,因此变更为tc:tcsudo chown tc:tc -R /usr/local/hadoop
把HDFS进行格式化(删除所有已有的数据)hadoop namenode -format
4.7启动hadoop
启动HDFSstart-dfs.sh
启动Yarnstart-yarn.sh
同时启动start-all.sh
jps(Java virtual Machine Process Status Tool)查看所有当前运行的进程。。
4.8打开Hadooop Resource-Manager Web界面
http://localhost:8088/
点击Nodes显示当前节点。
4.9NameNode HDFS web界面
http://localhost:50070/
查看Live Nodes 常看当前已经启动的节点。
点击DataNodes显示当前已经启动的Datanode