Hadoop Single Node Cluster的安装
c.NotebookApp.password = u'sha1:fc7089583f37:60e920d6132346258b951e6303157131d189bc21'
jupyter notebook & --ip=0.0.0.0 --no-browser --allow-root
jupyter notebook
后台运行:nohup jupyter notebook
1、安装JDK 因为Hadoop是使用Java开发的,所以必须先安装JDK
2、设置SSH无密码登录 Hadoop必须通过SSH与本地计算机以及其他主机连接,所以必须设置SSH
3、下载安装Hadoop 到Hadoop官网下载Hadoop2.6.4,并安装到Ubuntu中
4、设置Hadoop环境变量 设置每次用户登录时必须要设置的环境变量
5、Hadoop配置文件的设置 在Hadoop的/usr/local/hadoop/ect/hadoop目录下有很多配置设置文件,通过编译这些文件 来启用基本或是更高级的功能
6、创建并格式化HDFS目录 HDFS目录是存储HDFS文件的地方,在启动Hadoop之前必须先创建并格式化HDFS目录
7、启动Hadoop 全部设置完成就可以开始启动Hadoop,并查看Hadoop相关进程是否已经启动
8、打开Hadoop Web界面 Hadoop界面可以让我们查看当前Hadoop的状态:Node节点、应用程序、任务状态
1.安装JDK
java -version 查询Java版本
sudo apt-get update 连接到APT Server,更新软件包信息
sudo apt-get install default-jdk 使用apt-get安装JDK
java -version 查询Java版本
update-alternatives --display java 查询Java安装位置
2.设置SSH无密码登录
sudo apt-get install ssh 安装SSH
sudo apt-get install rsync 安装rsync
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 产生SSHKey(密钥)进行后续身份验证
ll ~/.ssh 查看产生的SSH Key(密钥)
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 将产生的Key放置到许可证文件中
3.下载安裝Hadoop (https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz)
wget http://archive.apache.org/dist/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz 下载Hadoop-2.6.4.tar.gz
sudo tar -zxvf hadoop-2.6.4.tar.gz 解压hadoop-2.6.4.tar。gz至hadoop-2.6.4目录
sudo mv hadoop-2.6.4 /usr/local/hadoop 移动hadoop-2.6.4 目录到/usr/local/hadoop
ll /usr/local/hadoop 查看Hadoop安装目录/usr/local/hadoop
bin/ 各项运行文件,包括Hadoop、HDFS、YARN等
sbin/ 各项shell运行文件,包括start-all.sh、stop-all.sh
etc/ etc/hadoop子目录包括Hadoop配置文件,例如hadoop-env.sh、core-site.xml、YARN-site.xml、
mapred-site.xml、hdfs-siet.xml
lib/ Hadoop函数库
logs/ 系统日志,可以查看系统运行状况,运行有问题时可以从日志找出错误原因
4.设置Hadoop环境变量
修改~/.bashrc
sudo gedit ~/.bashrc 编辑~/.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
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# 设置HADOOP其他环境变量
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_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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
让~/.bashrc修改生效
source ~/.bashrc
5.修改Hadoop配置设置文件
接下来要进行Hadoop配置设置,包括Hadoop-env.sh、core-site.xml、YARN-site.xml、mapred-site.xml、hdfs-site.xml
5.1修改hadoop-env.sh
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh 编辑Hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 修改
5.2修改core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
设置HDFS的默认名称,当我们使用命令或程序要存取HDFS时,可使用此名称
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
5.3 修改yarn-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml 编辑YARN-site.xml
yarn-site.xml文件中含有MapReduce2(YARN)相关的配置设置
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
5.4修改mapred-site.xml
mapred-site.xml 用于设置监控Map与Reduce程序的JobTrecker 任务分配情况以及TaskTracker任务运行情况。Hadoop提供了设置的模板文件,可以自行复制修改
复制模板文件:由mapred-site.xml.template至mapred-site.xml
sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
编辑mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
设置mapreduce框架为yarn
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5.5修改hdfs-site.xml
hdfs-site.xml用于设置HDFS分布式文件系统
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
默认的blocks副本备份数量是每一个文件在其他node的备份数量,默认值为3.
<configuration>
<!--设置blocks副本备份数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置NameNode数据存储目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<!--设置DataNode数据存储目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
</configuration>
6.创建并格式化HDFS目录
6.1创建namenode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
6.2创建datanode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
6.3将Hadoop目录的所有者更改为hduser
sudo chown hduser:hduser -R /usr/local/hadoop
6.4将HDFS进行格式化
hadoop namenode -format
7.启动Hadoop
分别启动HDFS、YARN,使用start-dfs.sh(启动HDFS)、start-YARN.sh(启动YARN)
同时启动HDFS、YARN,使用start-all.sh
7.1启动HDFS
start-dfs.sh
7.2启动Hadoop MapReduce框架Yarn
start-yarn.sh
7.3同时启动HDFS、Yarn
start-all.sh
7.4关闭命令
hadoop-daemon.sh stop namenode //关闭namenode进程
hadoop-daemon.sh stop datanode //关闭当前机器上的datanode
hadoop-daemons.sh stop datanode //关闭所有机器上的datanode
或者
stop-dfs.sh // 关闭namenode+datanode进程
查看NameNode、DataNode进程是否启动
jps
启动进程的说明:因为只有一台服务器,所以所有功能都集中在这台服务器中
HDFS功能:NamNode、SecondaryNameNode、DataNode已经启动。
MapReduce2(YARN):ResourceManager、NaodeManager已经启动
8.打开Hadoop Resource-Manager Web界面
Hadoop ResourceManager Web界面可用于查看Hadoop的状态:Node节点、应用程序、进程运行状态。
Hadoop ResourceManager Web界面网址
http://localhost:8088/
9.NameNode HDFS Web界面
HDFS Web界面可以查看当前HDFS于DataNode的运行情况。
HDFS Web UI网址
http://localhost:50070/
=================================================================================================================
安装多台机器的hadoop集群(Hadoop Multi Node Cluster),以及Hadoop资源管理(ResourceManager)与NameNode HDFS Web界面
Hadoop Multi Node Cluster 规划由多台计算机组成
1、有一台主要的计算机master,在HDFS担任NameNode角色、在MapReduce2(YARN)担任ResourceManager角色。
2、有多台辅助计算机data1、data2、data3,在HGFS担任DataNode角色、在MapReduce2(YARN)担任NodeManager角色。
master HAFS:NameNode
192.168.56.100 MapReduce2:ResourceManager
HDFS:DataNode HDFS:DataNode HDFS:DataNode
YARN:NodeManager YARN:NodeManager YARN:NodeManager
data1 data2 data3
192.168.56.101 192.168.56.102 192.168.56.103
规划:
服务器名称 内部IP HDFS YARN
master 192.168.56.100 NameNode ResourceManager
data1 192.168.56.101 DataNode NodeManager
data2 192.168.56.102 DataNode NodeManager
data3 192.168.56.103 DataNode NodeManager
1、复制single Node Cluster 到data1 为了节省安装时间,我们将创建的Single Node Cluster Hadoop 复制到data1,创建 data1虚拟机
2、VirtuaBox 适配卡设置 设置两块适配卡:
1.适配卡1:设置为“NAT适配卡”,可以通过Host主机连接至外部网络
2.适配卡2:设置为“内部网络适配器”,用于建立内部网络
3、设置data1服务器 设置Multi Node Cluster 服务器,配置设置文件共同的部分(固定IP、hostname、
core-site.xml、YARN-site.xml、mapred-site.xml、hdfs-site.xml)
4、复制data1服务器至 我们已经设置了data1服务器、配置设置文件共同的部分,为了节省安装时间,所以复 data2、data3、master 制data1到data2、data3、master
5、设置data2服务器 设置data2固定ip、hostname
6、设置data3服务器 设置data3固定ip、hostname
7、设置master服务器 设置NameNode服务器(master):设置固定IP、hostname、hdfs-site.xml、master、 slaves
8、master连接到data1、data2、 重新启动master与data1、data2、data3后,master通过SSH连接data1、data2、data3
data3创建HGFS目录 并创建HDFS目录
9、建立与格式化NameNode HDFS目录 创建NameNode HDFS 目录,并且格式化HDFS目录
10、启动Hadoop Multi Node cluster 启动Hadoop Multi Cluster 并使用jps查看当前所运行的进程
11、打开Hadoop Resource Manager Web Hadoop ResourceManagerWeb界面可用于查看当前Hadoop:Node节点、应用程序、进程
界面 运行状态
12、打开NameNode Web界面 HDFS Web界面,可以检查当前HDFS与DataNode运行情况
设置data1服务器
设置 Multi Node Cluster 服务器,配置设置文件共同的部分:固定IP、hostname、core-site.xml、YARN-site.xml、mapred-stie.xml、hdfs-site.xml
1、设置data1虚拟主机每次开机都是使用固定IP:192.168.56.101
编辑interfaces网络配置文件
sudo gedit /etc/network/interfaces
设置网卡1
设置为“NAT网卡”,可以通过Host主机连接至外部网络(internet),设置为eth0,并设置dhcp自动获得IP地址。
设置网卡2
设置为“仅主机适配器”,用于建立内部网络,内部网络连接虚拟主机(master、data1、data2、data3)与Host主机。设置为eth1,并设置为static,即指定固定IP地址。
# NAT interface
auto eth0
iface eth0 inet dhcp
# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
设置hostname(必须设置data1的hostname--主机名)
编辑hostname主机名
sudo gedit /etc/hostname
设置hosts文件
建立的Hadoop Multi Node Cluster中有4台计算机,如何让网络中所有的计算机都知道其他计算机的主机名与IP呢?可以编辑hosta文件或者设置DNS。hosts文件通常用于补充或取代网络中DNS的功能,和DNS不同的是,计算机的用户可以直接对hosts文件进行控制。hosts文件可存储计算机网络中各节点的信息,负责将主机名映射到对应的IP地址(名字解析)。
编辑hosts文件
sudo gedit /etc/hosts
192.168.56.100 master
192.168.56.101 data1
192.168.56.102 data2
192.168.56.103 data3
编辑core-site.xml
在core-site.xml中,我们必须设置HDFS的默认名称,当使用命令或程序来存取HDFS时,可使用此名称。之前Single Node Cluster因为只有一台计算机,所以我们设置namenode位置为localhost即可,但是现在有多台计算机,所以必须指定主机名。
编辑core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
编辑YARN-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8050</value>
</property>
</configuration>
ResourceManager 主机与NodeManager 的连接地址为8025.
ResourceManager 与ApplicationMaster 的连接地址为 8030.
ResourceManager 与客户端的连接地址为 8050.
编辑mapred-site.xml
mapred-ssite.xml 用于设置监控Map与Reduce程序的JobTracker任务分配情况,以及TaskTracker任务运行状况。
编辑mapred-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:54311</value>
</property>
</configuration>
编辑hdfs-site.xml
hdfs-site.xml用于设置HDFS分布式文件系统的相关配置。之前在Single Node Cluster中因为只有一台服务器,所以同时身兼NameNode与DataNode角色。但是data1现在只是单纯的DataNode,所以请删除NameNode的设置,只保留DataNode的设置。
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<!--设置blocks副本备份数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置DataNode数据存储目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
</configuration>
重启:
ifconfig
复制data1服务器到data2、data3、master
因为目前data1已经设置了Hadoop Multi Node Cluster共同的部分,为了节省安装时间,所以复制data1到data2、data3、master。如果不适用虚拟机,也可以重复之前的步骤来创建data2、data3、master。
设置data2服务器
设置data2的固定IP、hostname
编辑interfsces网络配置文件
sudo gedit /etc/network/interfaces
# NAT interface
auto eth0
iface eth0 inet dhcp
# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.102
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
编辑hostname文件
sudo gedit /etc/hostname
data2
ifconfig
设置data3服务器
设置data2的固定IP、hostname
编辑interfsces网络配置文件
sudo gedit /etc/network/interfaces
# NAT interface
auto eth0
iface eth0 inet dhcp
# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.103
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
编辑hostname文件
sudo gedit /etc/hostname
data3
ifconfig
设置master服务器
在NameNode服务器(master)中需要设置固定IP地址、hostname、hdfs-site.xml、masters、slaves。
设置master固定IP地址
我们必需设置master虚拟主机每次开机使用固定IP地址192.168.56.100
编辑master的insterfaces网络配置文件
sudo gedit /etc/network/interfaces
# NAT interface
auto eth0
iface eth0 inet dhcp
# host only interface
auto eth1
iface eth1 inet static
address 192.168.56.100
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
编辑hostname文件
sudo gedit /etc/hostname
master
设置hdfs-site.xml
hdfs-site.xml 用于设置HDFS分布式文件系统相关配置的设置。因为master现在只是单纯的NameNode,所以请删除DataNode的HDFS设置,并加入NameNode额度HDFS设置。
编辑hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<!--设置blocks副本备份数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--设置namenode HGFS存储目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
</configuration>
编辑masters文件
master文件主要告诉Hadoop系统哪一台服务器是NameNode
编辑master文件
sudo gedit /usr/local/hadoop/etc/hadoop/masters
master
编辑slaves文件
sudo gedit /usr/local/hadoop/etc/hadoop/slaves
data1
data2
data3
master连接到data1、data2、data3创建HGFS目录
我们创建了master与data1、data2、data3服务器。接下来,创建NamNode(master)的SSH连接到DataNode(data1、data2、data3),并创建HGFS相关目录
master通过SSH连接到data1虚拟机
ssh data1
连接到data1创建HDFS相关目录
登录data1后,我们将在data1创建HDFS相关目录。
删除HDFS所有目录
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
创建DataNode存储目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
将目录的所有者跟改为hduser
sudo chown -R hduser:hduser /usr/local/hadoop
中断data1连接,回到master
exit
data2、data3
创建并格式化NameNode HDFS目录
重新创建NameNode HDFS目录
删除之前的HDFS目录
sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
创建NameNode目录
mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
将目录的所有者更改为hduser
sudo chown -R hduser:hduser /usr/local/hadoop
格式化NameNode HDFS目录
之前我们已经创建了DataNode与NameNode的HGFS目录,接下来,需要格式化HGFS目录。
格式化NameNode HDFS目录
hadoop namenode -format
启动Hadoop Multi Node Cluster
分别启动HDFS与YARN
命令 说明
start-dfs.sh 启动HDFS
start-YARN.sh 启动Hadoop MapReduce框架YARN
同时启动HDFS与YARN
命令 说明
start-all.sh 同时启动HDFS与YARN
查看master(NameNode)进程(process)
jps(Java Virtual Machine Process Status Tool)可以用于查看当前所运行的进程.
查看master(NameNode)的进程(process)是否启动
jps
HDFS功能:NameNode、SecondaryNameNode已经启动。
MapReduce2(YARN):ResourceManager已经启动
查看data1(DataNode)进程
HDFS功能:DataNode已经启动。
MapReduce2(YARN):NodeManager已经启动。
打开Hadoop ResourceManager Web界面
Hadoop ResourceManager Web界面可用于查看当前Hadoop的状态:Node节点、应用程序、进程运行状况
打开ResourceManager Web界面
ResourceManager Web 界面网址
http://master:8088/
查看已经运行的节点Nodes
当点击Nodes时,会显示当前的节点。当前共有3个节点Nodes:data1、data2、data3.
打开NameNode Web界面
HDFS Web加密那可用于检查当前的HDFS与DataNode运行情况
HDFS Web用户界面网址
http://master:50070/
查看Datanode
单击Datanode,可以看到当前启动了3个节点Datanode
停止Hadoop Multi Node Cluster
stop-all.sh