Hadoop部署方式:
1.关闭防火墙
2.修改ip
3.修改hostname
4.设置ssh自动登录
5.安装JDK
6.安装Hadoop
伪分布式安装【用root登录】:
1.Host-only设置静态IP:
虚拟网络编辑器->仅主机模式->设置子网网段->在windows下的网络连接中VMware Network Adapter VMnet1设置相应的网段,但注意主机和宿主机不要设置一样的ip->在linux中设置静态ip->设置完成后重新启动网卡 service network restart 然后主机和宿主机互ping如果不能ping通,见下方问题1
2.修改主机名:
hostname 显示当前用户名
hostname liuke 修改当前主机名为liuke,但是只对于当前系统修改了,如果想一劳永逸则需要修改配置文件 vim /etc/sysconfig/network 然后重启,但是如果要ping liuke还是不行的,因为没有把主机名和ip绑定起来,所以要vim ./etc/hosts 在最后增加一行 192.168.80.88 liuke保存后再ping liuke 是 没问题的
3. 关闭防火墙:
因为在操作hadoop的时候要用到很多的端口,所以直接把防火墙关闭就不用麻烦了,
查看防火墙状态:service iptables status
关闭防火墙:service iptables stop 然后再次验证service iptables status
但是要防止开机自动重启
查看开机配置状态:chkconfig --list
查看开机防火墙状态:chkconfig --list | grep iptables
关闭所有的防火墙自启情况:chkconfig iptables off
验证是否关闭自启: chkconfig --list | grep iptables 全部显示off则是成功状态
4. SSH(secure shell)的免密码登录
《1》执行命令产生秘钥 ssh-keygen -t rsa 产生秘钥,位于~/.ssh文件中
《2》执行命令 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
《3》验证 ssh localhost exit退出
5.安装JDK和Hadoop
《1》清空/usr/local中内容 rm -rf * -r代表递归删除-f代表强制删除
《2》用WinSCP软件讲jdk和hadoop移动到/usr/local中
《3》解压jdk ./jdk-6u24-linux-i586.bin发现权限不够, 增加执行权限 chmod u+x jdk-6u24-linux-i586.bin
《4》解压./jdk-6u24-linux-i586.bin 重命名解压出来的文件 mv jdk1.6.0_24 jdk
《5》配置jdk到环境变量中 vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
保存退出
《6》让配置立即生效 source /etc/profile java -version验证
6. 安装hadoop
《1》解压hadoop tar -zxvf hadoop-2.8.0.tar.gz
《2》重命名解压出来的文件 mv hadoop-2.8.0 hadoop
《3》配置环境变量 vim /etc/profile
export HADOOP_HOME=/usr/local/jdk
export PATH=.:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
《4》让配置生效 source /etc/profile
《5》修改hadoop 4ge配置文件,配置伪分布式 (需要注意,2.x版本的配置文件在/usr/local/hadoop/etc/hadoop/)
1.hadoop-env.sh
export JAVA_HOME=/usr/local/jdk/
2.core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://liuke:9000</value>
<description>change your own hostname</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
3.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
4.mapred-site.xml
需要从mapred-site.xml.template 拷贝mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>liuke:9001</value>
<description>change your own hostname</description>
</property>
</configuration>
7. 然后对hadoop进行格式化 hadoop namenode -format
格式化的时候遇到的问题比较多,但最后还是解决了,主要是 1. 2.x已经不用hadoop namenode -format来格式化了,反而用的是 hdfs namenode format
2. 我用的是hadoop2.8版本,但是当我用jdk-6u24-linux-i586.bin的时候,不能格式化,当我换成jdk-8u111-linux-x64.tar.gz时还是报错,所以应该是版本号不兼容64位和32位的问题,所以我换了jdk-7u79-linux-i586.tar.gz,成功格式化。
8.start-all.sh开启hadoop
在2.0以后的版本中开启的服务不会是 namenode datanode secondarynamenode jobtracker tasktracker了,而是用了YARN
namenode datanode secondarynamenode nodemanager resourcemanager
namenode与resourcemanager放在一起,secondarynamenode单独运行,datanode与nodemanager在每台salve服务器上运行。
9.在linux浏览器中输入 liuke:50070 liuke:8088
小知识点:
1. linux系统中如何进入退出vim编辑器
第一种方法:ESC->冒号wq
第二种方法:ESC->冒号x
第三种方法:ESC->ZZ
2. pwd 显示当前路径
遇到的问题和解决方法:
1.host-only模式下虚拟机ping不通主机 主机却可以ping通虚拟机 解决方案
解决方案:在控制面板->Windows防火墙->允许程序或功能通过Windows防火墙->文件和打印机共享
2.start-all.sh开启hadoop是报错 ould not resolve hostname you: Temporary failure in name resolution 很多错误
解决方案:在 /etc/profile 中添加如下信息:
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
执行 source /etc/profile 使之立即生效。
3.多次格式化会错误
解决方案:删除/usr/local/tmp