hadooop.apache.org :hadoop下载页面
https://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/192.168.159.130:50070 :hadoop系统页面访问端口
192.168.159.130:8088windows无法访问节点域名时,需要进行域名映射:
c/WINDOWS/SYSTEM32/drivers/hosts:添加:192.168.159.130 hadoop.cyang113
1. ls :list缩写,显示所有文件 uname -a : 查看系统版本信息
2. ls -a: 包括隐藏文件在内
3. ls -al: 显示文件的全名
4. mkdir -p : 创建文件, -p是如果不存在所输入的路径,先创建路径目录,
5. rm -rf:强制删除文件 (rm=remove)
6. mv : 重命名&剪切 (move)
7. cp : 拷贝一个文件
8. cp -r : 拷贝一整个文件夹 (copy)
9. tar -zxvf : 打包 mkdir /usr/java 在根目录创建文件夹 tar -zxvf ...... -C /usr/java
10. -C / : 解压文件后接目录
11. vi / : 编辑文件
12. service network restart : 重启网络
13. vi /etc/hosts : 配置主机名与IP地址的映射关系
14. hostname+空格+主机名 : 此方法可以临时更改主机名(想要永久修改去13中的文件中修改)
15. service iptables status : 查看防火墙状态(SSH协议默认22端口)
1 : 修改主机名:主要IP不变,通过主机名映射IP就可以访问机器。
vi /etc/sysconfig/network (a : 进入编辑模式 esc :退出编辑模式 shift+zz退出文件夹)2 : 配置网络: vi /etc/sysconfig/network-script/ifcfg-eth0
3 : 仅主机模式: ONBOOT=yes:允许网络连接
BOOTPROTO=static :静态IP
IPADDR= :IP地址
NETMASK=255.255.255.0 子网掩码 (这种模式仅虚拟机与主机通信,虚拟机无法连接网络) 桥接模式 : 在仅主机模式的情况下添加如下:
GATEWAY= :网关
DNS1=114.114.114.114
DNS2=8.8.8.8 (1是国内免费DNS 2是国外免费DNS) 4 : 配置主机名与IP地址的关系(地址映射)
按'o'添加一行
192.168.159.130(ip地址)+空格+hadoop.cyang113(主机名)5 : 防火墙关闭:
service iptables status:首先查看防火墙状态
service iptables stop : 临时关闭防火墙,重启还会自动启动
设置防火墙开机不启动:
chkconfig iptables --list : 查看开启会启动的选项 (3代表防火墙)
chkconfig iptables off : 关闭开机会启动的选项
注意:文件修改后不会立即生效,一般重启后会生效6. 安装JDK
mkdir /usr/java 在根目录创建文件夹 接着解压 tar -zxvf jdk_1.8 -C /usr/java7. 修改环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk_1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
注意,分隔符:window用;分号 linux用:冒号
source /etc/profile 刷新环境变量,(配置完环境变量后必须通过此命令行进行刷新~~)
输入java -version 配置成功
8. hadoop下比较重要的几个文件夹:
a. sbin:启动或停止hadoop相关服务的脚本
b. bin:对hadoop相关服务(HDFS,YARN)进行操作的脚本
c. etc :hadoop的配置文件目录(不要跟根目录下的etc文件夹弄混)
d. share:hadoop的依赖jar包和文档,文档可以被删掉,但jar包不能
f. lib:hadoop的本地库(对数据进行压缩解压功能)
9. 配置hadoop(伪分布式),修改其中5个配置文件即可
1. 进入hadoop的etc目录下进行配置文件的修改: cd /bigdata/hadoop-2.6.0/etc/hadoop
2. 修改5个配置文件: a. hadoop-evn.sh ----->修改export JAVA_HOME=绝对路径(/usr/java/jdk1.8.0_181)
b. core-site.xml(core-default.xml会将这个文件覆盖掉) ----->
<configuration>
<作用是:配置hdfs中namenode的地址>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop.cyang113:9000</value>
</property>
<配置hadoop运行时产生数据的存储目录 (所谓的账本)>
<property>
<name>hadoop.tmp.dir</name>
<value>/bigdata/tmp</value>
</property>
</configuration>
c. hdfs-site.xml ------>
<configuration>
<作用是:设置数据备份的个数,一般是备份3份,>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<配置hadoop运行时产生数据的存储目录>
<property>
<name>hadoop.tmp.dir</name>
<value>/bigdata/tmp</value>
</property>
</configuration>
d. 先将mapred-site.xml.template 重命名为 mapred-site.xml (因为mapreduce在2.0之后不再必不可少)
mv mapred-site.xml.template +空格+ mapred-site.xml\
mapred-site.xml ------>
<configuration>
<作用是:指定mapreduce以后运行在yarn框架上>
<property> <name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
e. yarn-site.xml ----->
<configuration>
<指定yarn中resourcemanager的地址>
<property> <name>yarn.resourcemanager.hostname</name>
<value>hadoop.cyang113</value>
</property>
<mapreduce执行shuffle时获取数据的方式(shuffle将各个存储主机上数据汇总的方法 --系统的默认方法)>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
10. 将hdfs进行初始化
切换文件目录: cd /bigdata/hadoop-2.6.0/bin
./hdfs namenode-format :这句命令行会通过修改后的配置文件,
生成一系列新的文件,其中针对namenode和datanode会生成一些信息,例如clusterID ,
一定要保持namenode和datanode的clusterID保持一致。
至此已经布置完成。
11. 切换至hadoop-2.6.0目录下 通过sbin/start-dfs.sh 或 sbin/start-yarn.sh启动服务
在浏览器内通过192.168.159.130:50070访问dfs的管理界面
192.168.159.130:8088访问yarn的管理界面
----------------------------------
至此遇到的问题:start-dfs.sh 后 通过jps查看进程,发现没有datanode:原因是因为作者因为配置文件中的一些小问题对配置文件进行了修改,
然后通过步骤10将配置文件进行第二次format操作,系统会在第一次format操作后对namenode和datanode生成同意的clusterID,而之后如果
再进行format操作,系统则会对namenode生成新的clusterID,而datanode的clusterID却保持不变,(当namenonde和datanode的clusterID
相等时,才能启动datanode进程,因此需要在tmp/dfs/data/current/VERSION中修改datanode的clusterID,让其与namenode中的ID一致。
当然,也可以将name或data中的文件删掉,然后重新format。
12. ssh免密码登陆:实质上是通过秘钥进行三次握手完成身份认证
生成秘钥:ssh-keygen -t rsa
之后会生成一个/root/.ssh目录(/root/.ssh=~/.ssh),该目录下有两个文件:1. id_rsa 2. id_rsa.pub
然后将公钥发送给需要免登录的server,-----> ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.159.129
(授权用户就用root,普通用户则用普通用户的名称)