转载地址
这篇文章只是自用,更详细的上面地址
1、设定SSH免密登录
[root@master ~]# yum install rsync
[root@master ~]# ssh-keygen -t rsa -P ‘ ‘ -f ~/.ssh/id_rsa
[root@master ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
注:①第一行命令rsync是一个文件同步和传输工具。rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法
②第二行命令用于产生秘钥,-t(type)表示加密类型,rsa是对称加密,若是dsa为整数加密;-P表示密码,空字符串表示不使用密码,-f(file)表示生成秘钥放在哪个文件中
③第三行命令用于把生成的(公钥和私钥)中的公钥(.pub)放到需要无密码免登录的账户中,其中authorized_keys不能更改。
④设置完SSH后记得用ssh localhost命令验证一下,如果直接登录不需要密码,则说明设置成功,如下所示:
[root@master ~]# ssh localhost
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Last login: Sun Nov 25 21:12:21 2018 from 159.226.50.246
2、下载安装Hadoop
[root@master ~]# wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz
[root@master ~]# tar -zxvf hadoop-3.0.3.tar.gz
[root@master ~]# mv hadoop-3.0.3 /usr/local/hadoop
[root@master ~]# ll /usr/local/hadoop
注:①第二行命令用于解压下载好的hadoop,参数z表示有gzip属性的,x表示解压,v表示显示全部过程,f(必须排在所有参数之尾)后面跟档案名
②第三行命令用于将解压好的hadoop转移到公共目,mv(move)。
3、hadoop配置文件设定
所有配置文件都在安装目录下的 /etc/hadoop 目录中
3.1 修改hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
export HADOOP_HOME=/usr/local/hadoop
3.2 修改core-site.xml
在< configuration ></ configuration >标签中粘贴如下代码
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
如果是Hadoop2.x.x版本,则还需要在core-site.xml中追加如下键值对,并在对应目录建立tmp目录,否则SecondaryNameNode启不来。
<property>
<name>hadoop.tmp.dir</name>
<value> file:/usr/local/hadoop/tmp/</value>
</property>
3.3 修改yarn-site.xml
yarn-site文件存储的是管理程序、资源管理如CPU资源、内存资源等。
<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>
3.4 修改mapred-site
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3.5 修改hdfs-site.xml
hdfs-site为分布式系统配置文件。
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
4、建立与格式化HDFS目录
在安装路径下创建 data/hdfs/namenode 和 data/hdfs/datanode
[root@master ~]# mkdir -p /usr/local/hadoop/data/hdfs/namenode
[root@master ~]# mkdir -p /usr/local/hadoop/data/hdfs/datanode
[root@master ~]# hadoop namenode -format
注:其中mkdir用于创建文件或目录,-p(parents)表示创建的是目录,若没有此目录,则按照后面路径创建下去;hadoop namenode -format用于格式化目录,其会初始化namenode中一些文件和目录。
5、启动hadoop
[root@master ~]# start-dfs.sh
[root@master ~]# start-yarn.sh
[root@master ~]# start-all.sh
启动后,输入jps命令后,若出现6个节点则,启动成功,否则查看之前配置文件的修改是否有误。
[root@localhost sbin]# jps
62196 SecondaryNameNode
61846 NameNode
62503 ResourceManager
62634 NodeManager
61983 DataNode
63839 Jps
如果启动报错如下,则是之前设置Hadoop目录权限的时候设置用户名和组名都为root了。
[root@master ~]# start-dfs.sh
Starting namenodes on [localhost]
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 [master]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-11-26 09:29:54,896 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解决办法:
1)则需要修改start-dfs.sh和stop-dfs.sh启动文件,在文件顶部加入如下四行参数。
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2)还需要修改start-yarn.sh和stop-yarn.sh启动文件,在文件顶部加入如下三行参数。
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
6、开启Hadoop Web界面
ResourceManager地址:http://localhost:8088/
NameNode HDFS Web地址:http://localhost:9870/
打开本机浏览器,分别输入上面两个链接出现如下页面则启动成功。
小结:
datanode(数据节点)主要负责数据的存储。
namenode(命名节点)主要负责三个功能,分别是:(1)管理元数据;(2)维护目录树;(3)响应客户请求
7、Hadoop环境变量的设定方法
可以不做,主要是为了操作简单,不用进 /sbin 目录
vim ~/.bashrc
在文章结尾添加
# Set Java Environment
# java安装路径
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# Hadoop
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64/jre
# Hadoop安装路径
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_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
保存退出,使环境变量的配置生效
source ~/.bashrc