Centos配置单机Hadoop
Centos配置单机Hadoop
注意:VMware+Centos6.5
部分图片,内容不符,截图着急,仅供参考,以文字为准
打通网络
1、
登录
2、
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0
按i进入输入模式
3、
注释掉硬件地址 #HWADDR=00:1C:…
4、
UUID删掉
5、
网卡修改为可用模式 ONBOOT=yes
6、
将地址改为静态的(不是动态配置的) BOOTPROTO = static
7、
IPADDR = …
打开编辑-虚拟网络适配器-NET模式-子网ip的前三组,后面的一位写3-254之间的任意一个
8、
NETMASK = 255.255.255.0
9、
GATEWAY = …
打开编辑-虚拟网络适配器-NET模式-NET设置-网关IP
10、
DNS1 = 114.114.114.114
11、
保存退出编辑
按esc到编辑模式
shift+ZZ保存并退出
12、
加载配置文件
service network restart
13、
查看配置情况
ifconfig
会看到eth0和lo接口
14、
(虚拟条件)关闭防火墙
永久关闭
chkconfig iptables off
15、
(虚拟条件)关闭selinux
打开
vi /etc/selinux/config
修改
SELINUX=disabled
16、
(虚拟条件)删除硬件地址
打开
cd /etc/udev/rules.d/
删除
rm -f 70-persistent-net.rules
17、
(虚拟条件)关机拍照克隆
再打开
18、
测试网络
按crtl+C结束
看到64 bytes from 61.135.169.121: icmp_seq=3 ttl=128 time=48.6 ms说明正确,看不到就前面配错了
配Java环境
17、
下载Xshel和Xftp
安装包:网上下载或者,联系qq:574529447
18、
打开Xshell
19、
用ssh连接
ssh root@192.168.206.105
注意192.168.206.105是写你刚才配的ip地址,我是这个你不一定是
20、
输入密码
21、
连接成功
22、
点击文件传输
找到jdk-8u241-linux-x64.rpm拖到右边linux上
23、
在家目录ls就能看见刚才的jdk-8u241-linux-x64.rpm(其他文件的是我自己的,忽略)
24、
rpm -i jdk-8u241-linux-x64.rpm
25、
使用rpm安装之后会自动进行软连接,将安装的包链接到/usr/java
但是rpm的软连接是不完全的,需要我们手动配置
vi /etc/profile相当于环境变量
26、
G到最后o新开一行
26、
使用rpm安装之后会自动进行软连接,将安装的包链接到/usr/java
export JAVA_HOME=/usr/java/jdk1.7.0_67
jdk1.7.0_67名字要写自己的,不知道写这么看下一步
27、
可以再开一个
用ssh连接
ssh root@192.168.206.105
注意192.168.206.105是写你刚才配的ip地址,我是这个你不一定是
去user里面看看是什么名字
发现是jdk1.8.0_241-amd64
28、
所以回来开始写
export JAVA_HOME=/usr/java/jdk1.8.0_241-amd64
我是这个名字,你的不一定
29、
继续写
export PATH=$PATH:$JAVA_HOME/bin
完整的:
30、
保存退出
按esc到编辑模式
shift+ZZ保存并退出
31、
source /etc/profile更新环境变量
32、
输入java出现一堆字就配成功了
配Host名
33、
配上host就不用写IP地址了,直接写名字就行,就是给ip地址起了个别名
vi /etc/hosts
前两行不要管
34、
后面写上 ip地址 空格 别名,随便起(我有好多机器就有好多行,你就写一行就行)
35、
保存退出
ping node05 测试对不对
如果出现下面一堆字,就弄对了
Crtl+C结束
免秘钥
36、
免秘钥
要是不做免秘钥自己登陆自己也要密码
使用 ssh root@node05(使用ssh协议连接,以root的名义连接,连接地址是后面的node05)(后面那个node05可以写host名也可以写ip地址)试着登陆一下,特别麻烦,所以要做免秘钥,就是不要密码的登陆
我是node05,大家使用192.168.206.105,也就是IP地址,换成自己的,例如ssh root@192.168.206.105 要是登进去了,输入exit退出登陆
37、
免秘钥
生成秘钥
ssh-keygen -t dsa -P ‘’ -f /root/.ssh/id_dsa
dsa形式
-P密码
''密码为空
-f文件
放到家目录的.ssh隐藏文件夹下
进去看看
38、
放到公钥里面
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cat读取
id_dsa.pub公钥文件
>>追加
authorized_keys新建一个文件
意思就是拷贝一份
39、
进去看看
cat authorized_keys能看看里面有什么,看看就行,不用操作
40、
再登陆就不需要密码了(使用ssh协议连接,以root的名义连接,连接地址是后面的node05)(后面那个node05可以写host名也可以写ip地址)
配hadoop
41、
配hadoop
42、
吧hadoop拖过去
在家目录ls就能看见刚才的hadoop-2.10.0.tar.gz(其他文件的是我自己的,忽略)
43、
解压
tar xf hadoop-2.10.0.tar.gz
ls一下就能看到解压的文件了
44、
移动到/opt/sxt目录
mv hadoop-2.10.0 /opt/sxt
45、
去/opt/sxt/就能看到
46、
cd进去看看
bin
角色功能可执行脚本
sbin
管理脚本
47、
配置环境变量
pwd复制
在Xshell中复制用Alt+EC,粘贴用Alt+EP
48、
打开vi /etc/profile
G到最后o新开一行
export HADOOP_HOME=/opt/sxt/hadoop-2.10.0
/opt/sxt/hadoop-2.10.0是刚才复制的
49、
在下面添加:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
前面有冒号冒号冒号
50、
配置完后
保存退出ESC shift+ZZ
source /etc/profile或者. /etc/profile刷新配置文件
51、
配置hadoop的系统环境
cd /opt/sxt/hadoop-2.10.0/etc/hadoop
ls看看
这些都是hadoop的配置文件
52、
vi hadoop-env.sh
把{$JAVA_HOME}改成绝对路径/usr/java/jdk1.8.0_241-amd64
53、
vi mapred-env.sh
把{$JAVA_HOME}改成绝对路径/usr/java/jdk1.8.0_241-amd64
54、
vi yarn-env.sh
把{$JAVA_HOME}改成绝对路径/usr/java/jdk1.8.0_241-amd64
55、
配置hadoop
先明确概念:
namenode在哪启动
core-site.xml
datanode在哪启动
slaves
secondanode在哪启动
hdfs-site.xml
56、
配core-site.xml:
vi core-site.xml 打开core-site.xml
G到达行末,o新开一行,把下面的复制上,到xshell里面Alt+EP粘贴,ESC退出编辑,Crtl+ZZ保存,一气呵成
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
</configuration>
解释:
fs.defaultFS 默认的文件系统
hdfs://node01:9000访问的网址,前面node01是IP地址的别名,写你自己的,冒号后面是端口号,就按我写9000就写
写错怎么办:按ESC返回编辑模式,按u撤销,弄完记得按i进入编辑模式,出去记得保存
57、
vi hdfs-site.xml
vi hdfs-site.xml 打开 hdfs-site.xml
G到达行末,o新开一行,把下面的复制上,到xshell里面Alt+EP粘贴,ESC退出编辑,Crtl+ZZ保存,一气呵成
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
解释:
value里面是副本数
写错怎么办:按ESC返回编辑模式,按u撤销,弄完记得按i进入编辑模式,出去记得保存
58、
启动机器的名称
vi slaves
修改为node01(我是这个你写你的ip地址或者host地址)
保存退出
59、
由于默认namenode存储在tmp文件夹,而tmp文件夹内核会自动删除,所以要修改默认路径
vi core-site.xml
在内添加
G到最后一行,O到上一行,把下面的复制上,到xshell里面Alt+EP粘贴,ESC退出编辑,Crtl+ZZ保存,一气呵成
<property>
<name>hadoop.tmp.dir</name>
<value>/var/sxt/hadoop/local</value>
</property>
注意:
路径可以不存在,会自动创建,但必须是空的必须是空的必须是空的
60、
配置访问地址
vi hdfs-site.xml
在内添加
G到最后一行,O到上一行,把下面的复制上,到xshell里面Alt+EP粘贴,ESC退出编辑,Crtl+ZZ保存,一气呵成
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node01:50090</value>
</property>
60、
格式化namenode
hdfs namenode -format
完了一定要看一眼successfully formatted
看见了才是正确的,要是错误也是出一堆字,但是没有successfully formatted
61、
启动hadoop
进入:
cd /opt/sxt/hadoop-2.10.0/sbin
启动进程:
start-dfs.sh
如果项目中出现任何问题,要看log文件,不要看out文件
jps查看java进程,测试是否成功
62、
测试:
浏览器访问
192.168.206.105:50070(这里不能写host名,例如node01:50070, 除非你在win配了hosts,要配的在C:\Windows\System32\drivers\etc\hosts里面加上192.168.206.10 node01(写你的))
出现类似下面的东西就对了,里面的字是我设置的,和你可能不一样,但不是404就行
这里能看hdfs文件系统
Successfully
使用hdfs
使用
hdfs dfs
操纵hdfs文件系统,后面接命令
hdfs dfs -mkdir -p /user/root
-mkdir
创建目录
-p
支持多层创建
linux中的家目录的home,hdfs中是user
我是root用户,所以我创建一个root目录
hdfs dfs -D dfs.blocksize=1048576 -put 文件名
hdfs dfs可以 设置KV属性,可以设置块的大小是1M
1M是1024*1024的1048576
-put是推送文件
关闭hdfs
stop-dfs.sh
下次再启动
cd /opt/sxt/hadoop-2.10.0/sbin
start-dfs.sh