在一切开始之前给用户建议设置一下权限,减少后面权限引发的问题
visudo
找到 root ALL=(ALL) ALL
在这一行下添加一条 比如 : hadoop ALL=(ALL)ALL
保存之后,注销一下用户,再登录回来。
1.虚拟机CentOS设置静态ip
主要有三点:
-
1.设置成NAT模式
通过 虚拟网络编辑器→ NAT模式→ NAT设置,看一下网关号,比如192.168.21.2
子网IP设置一下192.168.21.0
前两位和自己本机一样就行。
-
2.修改配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eno***
在里面修改:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.21.xx #(xx自己定义)
GATEWAY=192.168.21.2 #(网关号和之前的网关相同)
DNS1=192.168.21.2 #(DNS1和网关相同)
然后修改配置文件 /etc/resolv.conf
nameserver 192.168.21.2 (和网关相同)
最后执行
service network restart
试试可不可以ping通外网,再试试外面可不可以ping进来
2.配Java环境
java -version
发现有jdk环境,建议删掉
rpm -qa | grep java
搜到了很多
用 指令把他们删除掉
rpm -e --nodeps 后面加上你要删除的
再执行
java -version
发现没有环境了,就可以配置自己下载的jdk了。将tar包复制到某目录下 例如: /opt/soft/
执行 tar -zxvf 安装包名
进行解压
建议改文件夹的名,因为带着版本号不好写环境变量 弄好了之后就是 /opt/soft/java
执行shell vim /etc/profile
在末尾增加java的环境变量
export JAVA_HOME=/opt/soft/java
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
执行 source /etc/profile
使环境变量生效
这里注意一点,每次打开终端都要执行source profile
使我们环境变量生效,所以很烦,建议做以下步骤
执行vim /etc/bashrc
在末尾追加
source /etc/profile
并保存
执行
java -version
出现版本号,证明配置成功。
3.Hadoop安装
先去官网下载个hadoop的tar包,bin的就行
然后类似java的安装,我是拷贝到 /opt/soft/ 目录下
然后解压缩
4.Hadoop配置环境变量
执行vim /etc/profile
在末尾增加hadoop的环境变量 例如:
export HADOOP_HOME=/opt/soft/hadoop-3.1.1
export HADOOP_INSTALL=$HADOOP_HOME
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 PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
(注意修改路径)
执行source /etc/profile
执行hadoop version
有版本信息提示的效果,证明成功了
5.配SSH
建议先配一下ssh,就可以免密码登录。
分别执行:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
6.Hadoop配置文件
Hadoop的配置文件在 hadoop 根目录下的etc/hadoop/ 目录里
以下文件都在那个目录!!!配置中记得注意自己的hadoop目录!!!!注意修改自己的ip和端口!!!!!
先修改 core-site.xml 文件
hadoop.tmp.dir
/usr/local/hadoop/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://**你的ip地址**:9000
!!!说明一下,tmp.dir下面value下的路径要自己配置好,这个是自定义的,不要盲目粘贴!它是hadoop文件系统依赖的基本配置,很多配置路径都依赖它!
再修改**hdfs-site.xml **文件
dfs.replication
1
dfs.namenode.name.dir
/usr/local/hadoop/tmp/dfs/name
dfs.datanode.data.dir
/usr/local/hadoop/tmp/dfs/data
!!!同理这俩路径也是要自己配置好的!
name.dir是namenode的信息,data.dir是datanode的信息,不要乱写!!
官方是这么解释的:
- name.dir:这个参数用于确定将HDFS文件系统的元信息保存在什么目录下。
如果这个参数设置为多个目录,那么这些目录下都保存着元信息的多个备份。- data/dir: 这个参数用于确定将HDFS文件系统的数据保存在什么目录下。
我们可以将这个参数设置为多个分区上目录,即可将HDFS建立在不同分区上。
配置好之后,执行一下,格式化命令
./bin/hdfs namenode -format
然后执行一下namenode和datanode的守护进程
./sbin/start-dfs.sh
成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
查看是否成功可以通过两个方面去看,一个是上面的办法,还有一个是执行 jps 命令
应该出现NameNode、DataNode、SecondaryNameNode ,如果没有则检查配置文件并尝试重新格式化并启动。
执行 jps
查看是否启动守护进程
当然如果启动后 localhost:50070 不出现web界面,则通过以下方式检测:
执行 netstat -ant
如 50070 没启动,尝试修改配置文件:
在 mapred-site.xml 文件添加以下:
mapred.job.tracker.http.address
主机的IP:50030
mapred.task.tracker.http.address
主机的IP:50060
在hdfs-site.xml文件添加以下:
dfs.http.address
0.0.0.0:50070
即可成功打开web界面。
url为 : 虚拟机ip:50070
最后可以开启YARN
mapred-site.xml 文件添加以下:
mapreduce.framework.name
yarn
yarn-site.xml 文件添加以下:
yarn.nodemanager.aux-services
mapreduce_shuffle
然后执行:
./sbin/start-yarn.sh
即可看到resourcemanager和nodemanagers在启动
执行命令:
./sbin/mr-jobhistory-daemon.sh start historyserver
即可开启历史服务器
ok,执行jps可以看到ResourceManager和NodeManagers
启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务。启用 YARN 之后,“mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:
虚拟机ip:8088/cluster