Linux安装并启动Hadoop
下载并解压软件包因为Hadoop的软件版本和jdk版本是绑定的,所以安装Hadoop版本之前先查看对应的jdk版本。这里我们安装的是hadoop-3.2.2版本对应的jdk是8Hadoop下载地址:https://www.apache.org/dist/hadoop/common/jdk下载地址:https://www.oracle.com/java/technologies/javase-dow
下载并解压软件包
因为Hadoop的软件版本和jdk版本是绑定的,所以安装Hadoop版本之前先查看对应的jdk版本。
这里我们安装的是hadoop-3.2.2版本对应的jdk是8
Hadoop下载地址:https://www.apache.org/dist/hadoop/common/
jdk下载地址:https://www.oracle.com/java/technologies/javase-downloads.html
下载完成之后,保存到需要安装的服务器,这里我是保存到了/home/tmp目录下,并解压到/usr/local目录下
cd /usr/local
tar xvf /home/tmp/jdk-8u291-linux-x64.tar.gz
tar xvf /home/tmp/hadoop-3.2.2.tar.gz
配置Hadoop
配置jdk
配置jdk的方法有两个,一个是全局配置jdk版本(不推荐),另一个是为Hadoop单独配置jdk路径
全局配置方法:
vi /etc/profile
## 增加下面这行
export JAVA_HOME=/usr/local/jdk1.8.0_291/
## 使配置生效
source /etc/profile
为Hadoop单独配置
cd /usr/local/hadoop-3.2.2
vi etc/hadoop/hadoop-env.sh
## 增加下面这行
export JAVA_HOME=/usr/local/jdk1.8.0_291/
设置为分布模式(Pseudo-Distributed Operation)
在/usr/local/hadoop-3.2.2
目录下
修改etc/hadoop/core-site.xml
配置文件,修改如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
</property>
</configuration>
修改etc/hadoop/hdfs-site.xml
配置文件,修改如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
</configuration>
如果这里没有配置dfs.http.address且绑定为0.0.0.0的话是无法通过ip访问到的
修改etc/hadoop/mapred-site.xml
配置文件,修改如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改etc/hadoop/yarn-site.xml
配置文件,修改如下:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>0.0.0.0</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
如果这里配置yarn.resourcemanager.hostname的是localhost的话是无法通过ip访问到的。
设置主机允许无密码SSH连接
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
可以通过ssh localhost
来判断,如果不需要输入密码且连接成功则说明配置成功。
格式化文件系统
在首次使用Hadoop之前,必须格式化文件系统,命令如下
cd /usr/local/hadoop-3.2.2
bin/hdfs namenode -format
启动/关闭HDFS
./sbin/start-dfs.sh
./sbin/stop-dfs.sh
可以通过浏览hadoop/logs目录中的日志文件来检查进程是否启动,将会启动三个进程:一个活动namenode、一个辅助namenode,一个datanode。
或者通过查看http://localhost:50070判断是否启动成功。
如果启动出现以下类似错误的话:
Starting namenodes on [hadoop]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-07-16 05:45:04,628 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
解决方法两个,一个是全局配置,一个是单独配置。
全局配置:
vi /etc/profile
## 增加以下内容
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
## 使配置生效
source /etc/profile
单独配置:
## 修改./sbin/start-dfs.sh和./sbin/stop-dfs.sh
## 增加以下内容:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
## 修改./sbin/start-yarn.sh和./sbin/stop-yarn.sh
## 增加以下内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
特别的,如果出现配置正确,但是还是无法启动成功的情况可以执行以下命令:
## 清空Hadoop缓存
rm -rf /tmp/hadoop-root/*
## 重新格式化文件系统
cd /usr/local/hadoop-3.2.2
bin/hdfs namenode -format
启动/关闭YARN
./sbin/start-yarn.sh
./sbin/stop-yarn.sh
可以通过浏览hadoop/logs目录中的日志文件来检查进程是否启动,将会启动两个个进程:一个resourceManage(资源管理器),一个nodeManager(节点管理器)。
或者通过查看http://localhost:8088判断是否启动成功。
启动/关闭历史服务器(MapReduce)
./sbin/mr-jobhistory-daemon.sh start historyserver
./sbin/mr-jobhistory-daemon.sh stop historyserver
更多推荐
所有评论(0)