转载至:https://blog.csdn.net/lllllyt/article/details/80673234
https://blog.csdn.net/xuan314708889/article/details/80500006
https://www.cnblogs.com/SunHuaJ/p/7340396.html
https://blog.csdn.net/weixin_42248302/article/details/80953798
https://blog.csdn.net/baymax_007/article/details/81136830
这是我目前所看的最新的Ubuntu 18.04 server上配置Hadoop分布式环境较好的几篇大牛的博客,收集到一起,方便查看
(提示:一定要配置完一台虚拟机后,然后在克隆几台虚拟机结点,要不然会累死的,我真是个智障,顺序反了,一台一台配置体力严重不透支。。。)
一、配置JDK
- 解压JDK压缩包到当前目录下:
tar -zxvf jdk-8u121-linux-x64.tar.gz .
- 将JDK包 移动到配置目录下(自己建)
//这是我的配置目录
sudo mv jdk1.8.0_181/ /usr/loccal/lib/
- 配置环境变量
sudo vim ~/.bashrc
末尾加入以下配置(JAVA_HOME 后的路径就是jdk的文件位置)
#set Java environment
export JAVA_HOME=/usr/local/lib/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
- 修改完成之后wq保存关闭,并输入以下命令使环境变量立即生效
source ~/.bashrc
输入java -version,显示JDK版本说明恭喜你,环境变量配置正确
这样配置只对当前有效,重启后会不行的,还得配置下一步:
//同样配置上面一样
sudo vim /etc/environment
//注意一定要看正确,最好直接复制粘贴这一段
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME=/usr/local/lib/jdk1.8.0_181
同样,需要使用命令使环境变量立即生效
source /etc/environment
输入命令进入全局的配置文件,操作和刚才的差不多
vim /etc/profile
- 复制粘贴,和上面一样这一段:
#set Java environment
export JAVA_HOME=/usr/local/lib/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
同样,需要使用命令使环境变量立即生效
source /etc/environment
最后不同用户下都能正常显示,说明配置成功:
二、配置Hadoop
- 先创建一个hadoop文件夹(自己建):
sudo mkdir /usr/local/
- 解压Hadoop压缩包到这个新建的Hadoop目录:
sudo tar -zxvf hadoop-2.9.1.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-2.9.1 /usr/local/hadoop #mv 实现重命名
- 修改Hadoop用户使用权限最高:
sudo chown -R feiyan /usr/local/hadoop
- 先输出一下,看安装是否成功:
cd /usr/local/hadoop/
./bin/hadoop version
输出这样的信息,说明安装目前是成功的:
- 修改 slaves 文件,让 hadoop 知道自己可以聚合的节点名(保证与 hosts 里的角色 名一致):
vim /usr/local/hadoop/etc/hadoop/slaves
6. 修改 core-site.xml 文件如下:
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
- 修改hdfs-site.xml文件如下,看清再做修改,不要直接复制粘贴上去,修改成你自己的目录和IP地址:(启用所有节点作为DataNode,故replication=4):
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>4</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>192.168.146.10:50070</value>
</property>
</configuration>
- 修改 mapred-site.xml 文件如下(建议复制粘贴):
vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>
/usr/local/hadoop/share/hadoop,
/usr/local/hadoop/share/hadoop/common/*,
/usr/local/hadoop/share/hadoop/common/lib/*,
/usr/local/hadoop/share/hadoop/hdfs/*,
/usr/local/hadoop/share/hadoop/hdfs/lib/*,
/usr/local/hadoop/share/hadoop/mapreduce/*,
/usr/local/hadoop/share/hadoop/mapreduce/*,
/usr/local/hadoop/share/hadoop/yarn/*,
/usr/local/hadoop/share/hadoop/yarn/lib/*
</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
</configuration>
- 修改 yarn-site.xml 文件如下(启用 yarn 资源管理器):
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
- 修改 hadoop-env.sh 文件,将24行JAVA_HOME 的值换成 jdk 所在的路径:
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/usr/local/jvm/jdk1.8.0_171
# Location of Hadoop. By default, Hadoop will attempt to determine
# this location based upon its execution path.
# export HADOOP_HOME=
# Location of Hadoop's configuration information. i.e., where this
# file is living. If this is not defined, Hadoop will attempt to
# locate it based upon its execution path.
# NOTE: It is recommend that this variable not be set here but in
# /etc/profile.d or equivalent. Some options (such as
# --config) may react strangely otherwise.
#
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
- 启动及验证 hadoop:
对 hadoop 进行 NameNode 的格式化:
master进行格式化,node1和node2不需要
/usr/local/hadoop/bin/hdfs namenode -format
启动 hdfs 和 yarn,并在各个节点上输入 jps 查看启动的服务:
master,node1,node2都需要启动
/usr/local/hadoop/sbin/start-dfs.sh
/usr/local/hadoop/sbin/start-yarn.sh
jps # 每个节点都查看一次
权限不够吗???
这次直接卡死。。。。无语
太晚了,后面再找问题