Hadoop Single Node Cluster是只以一台机器,建立hadoop环境,您仍然可以使用hadoop命令,只是无法发挥使用多台机器的威力。 因为只有一台服务器,所以所有功能都在一台服务器中,安装步骤如下:
-
安装JDK
-
设定 SSH 无密码登入
-
下载安装Hadoop
-
设定Hadoop环境变数
-
Hadoop组态档设定
-
建立与格式化HDFS目录
-
启动Hadoop
-
开启Hadoop Web接口
(1)安装JDK
java -version # 查看java版本
sudo apt-get update # 出 Sub-process returned an error code错误请看Tips2
sudo apt-get install default-jdk #安装jdk
java -version # 证明安装成功
update-alternatives --display java # 查询安装路径 #/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
(2)设定 SSH 无密码登入
Hadoop是由很多台服务器所组成的,当我们启动Hadoop系统时,NameNode必须和DataNode连接并管理这些节点。此时系统会要求用户输入密码。为了让系统顺利运行不用手动输入密码,我们可以将SSH设置无密码登陆。(以事先交换的SSH Key来进行身份验证而已)
sudo apt-get install ssh # 安装SSH
sudo apt-get install rsync # 安装rsync
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa # 使用ssh-keyge产生密钥,密钥存在主目录下的.ssh文件夹里面,可以用ctrl+h看到
ll ~/.ssh
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys # 将产生的key放到许可文件里
**(3)下载安装Hadoop **
# Hadoop官网 https://hadoop.apache.org/releases.html
# 注意Hadoop和Spark的版本匹配
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
sudo tar -zxvf hadoop-2.8.5.tar.gz
sudo mv hadoop-2.8.5 /usr/local/hadoop
ll /usr/local/hadoop
PS:常用的目录说明如表:
目录 | 说明 |
---|---|
bin/ | 各项运行文件,包括Hadoop、HDFS、YARN等 |
sbin/ | 各项shell运行文件 |
etc/ | 各种配置文件 |
lib/ | 函数库 |
logs/ | 系统日志,可以查看系统运行情况,运行有问题的时候可以从日志里面找出错误 |
(4)设定Hadoop环境变数
# 修改~/.bashrc
sudo gedit ~/.bashrc
# 输入下列内容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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组态设定档
# Step1 修改hadoop-env.sh
sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# 输入下列内容:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
#Step2 修改core-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
# 在 <configuration></configuration>之间,输入下列内容:
# 设置HDFS的默认名称,我们使用命令或者程序要存取HDFS时可以使用这个名称
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
# Step3 修改yarn-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
# 在<configuration></configuration>之间,输入下列内容:
<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>
# Step4 修改mapred-site.xml
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
# 在<configuration></configuration>之间,输入下列内容:
# 设置Mapreduce框架为yarn
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
# Step5 修改hdfs-site.xml
sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
# 在<configuration></configuration>之间,输入下列内容:
# 设置blocks副本备份数量 默认值是3,blocks副本备份数量是每个文件在其他node的备份数量
<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>
(6)建立与格式化HDFS 目录
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
sudo chown hadooptest:hadooptest -R /usr/local/hadoop
# 格式化Namenode
hadoop namenode -format
(7)启动Hadoop
# 启动start-dfs.sh,再启动 start-yarn.sh
# 第一次执行会询问是否联机,选择yes
start-dfs.sh
start-yarn.sh
#启动全部
start-all.sh
# 查看目前所执行的行程
jps
(8)开启Hadoop ResourceManager Web接口
# Hadoop Resource Manager Web接口网址
http://localhost:8088/
9.NameNode HDFS Web接口
# 开启HDFS Web UI网址
http://localhost:50070/
** Tips1:** 设置ubutu系统的分辨率,因为在vm里面安装完ubuntu后屏幕特别的小,所以需要调整分辨率
xrandr -s 1280x960
**Tips2:**ubuntu16.04在使用 sudo apt-get update
出现错误Sub-process returned an error code
错误内容:
Problem executing scripts APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi’
E: Sub-process returned an error code
解决措施:
sudo pkill -KILL appstreamcli
wget -P /tmp https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.de
sudo dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb /tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb
**Tips3:**解决hadoop启动时的dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.错误
错误内容:
解决措施:
在etc/hadoop/core-site.xml中增加如下配置:
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>