java程序员的AI之路-大数据篇
hadoop安装
最近AI(人工智能)是一大风口啊,乌镇互联网大会各个大佬们记们谈论点都是AI了,在这样的行情下,怎么能不沾一沾Ai的潮流,拥抱人工智能的热浪中去呢。好吧,那么问题来了,该从哪入手呢,感觉跟以前走的路完全不同啊,于是开始找各种方式来找学习ai的路线。嗯,首先是语言,貌似python是最适合搞ai的,虽然也学过一点,但貌似并不专业啊。我可是JAVA程序员。我认为java是无所不能的(java才是最好的编程语言 O(∩_∩)O哈哈~),好,就用java开搞。决定了语言然后改从哪个角度去学习呢?框架、算法?我感觉AI的培养必然与建立在数据的基础上,人工智能必然拥抱大数据,因此我打算从AI的食粮入手,大数据。毕竟大数据已经有几年的积累,入手还算简单。
当然说起大数据当然不得不提起hadoop,还好大学的东西没全还给老师。那就开始第一步开始搭建hadoop的环境吧。我只想说新的虚机安装hadoop还是有很多坑的。。。
一、安装包准备
VM虚拟机、centOS7系统安装包, jdk1.8,hadoop2.8.2(我没用最新的,不知道安装的时候会出现什么幺蛾子。。。)
下载地址
hadoop:http://download.csdn.net/download/b379685397/10145213
http://mirror.bit.edu.cn/apache/hadoop/common/
jdk8 : http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
二、windows安装VM虚拟机
Windows下面安装虚拟机并且安装好centOS7系统。这些没什么好说的。
但是这里会有个问题,就是虚机系统安装好之后会连不上网络。这个时候我们需要配置一下网络。
1、首先打开虚机编辑-》虚拟网络编辑器
2、然后点击更改设置使用管理员权限
之后变成下图
3、选择VMent0位桥接模式
选择VMent8设置为nat模式。
之后点击确定保存。
4、进入虚机系统执行命令cd /etc/sysconfig/network-scripts/
查看该目录下是否存在ifcfg-enoXXX的文件,使用vi编辑(刚安装的虚机只有vi),按照下图进行修改。之后按esc 然后wq!保存退出。
在执行service network restart命令重启网络服务。
之后网络应该就配置完毕。然后就可以使用 yum insatll 开始安装自己喜欢的软件把。(在现在这家公司已经练就了一身运维的功夫,真心感觉linux是好用啊)
三、安装jdk
1、Jdk安装很简单,将安装包放到指定目录解压。我是安装在/usr/etc/目录下面
2、设置环境变量,vim /etc/profile
在最后添加下面几行,根据java的安装目录。
JAVA_HOME=/usr/etc/jdk1.8.0_151
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
3、验证环境变量,输入java -version ,如果出现以下内容说明安装成功
四、设置ssh免密登录
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
1. cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
2. ssh-keygen -t rsa # 会有提示,都按回车就可以
3. cat ./id_rsa.pub >> ./authorized_keys # 加入授权
Shell 命令
~的含义
在 Linux 系统中,~ 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释。
此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了。
五、安装hadoop
其实hadoop的安装还是很简单的,但是中间会出现一些异常的坑。。。
1、首先将安装包放在/usr/etc/下面,解压
2、配置hadoop配置文件
1)配置hadoop-env.sh
该"hadoop-env.sh"文件位于"hadoop/etc/hadoop/"目录下。在文件里添加JAVA_HOME java环境变量。
2)配置core-site.xml文件
修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。
3)配置hdfs-site.xml文件
修改Hadoop中HDFS的配置,配置的备份方式默认为3。
4、最后修改环境变量
执行 vim ~/.bashrc
在文件里新增以下内容。Java环境变量,以及hadoop的安装路径。
这里我在/etc/profile里面也配置过,按理说应该和在~/.bashrc配置效果一样,但是在/etc/profile配置就会出现hadoop读取不到配置的异常。这个待研究。
export JAVA_HOME=/usr/etc/jdk1.8.0_151
export HADOOP_INSTALL=/usr/etc/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
然后在执行source ~/.bashrc
使配置生效。
六、启动hadoop
进入hadoop的安装路径 /usr/etc/hadoop/bin 执行hdfs namenode -format
进行格式化,出现以下信息说明格式化成功。
进入/usr/etc/hadoop/sbin 执行start-dfs.sh,成功执行
检验是否执行成功输入jps,执行成功如下图
之后打开浏览器,输入虚机ip+端口50070便进入管理页面
至此hadoop已经安装完毕,但安装过程中肯定会遇到一些不可描述的错误。我大概总结了一些,欢迎各位道友再来补充,或者大家安装过程中出现其他问题还请给我留言,我会尽量解答。
1、启动hadoop出现类找不到的情况。
多半是java_home设置有问题。查看hadoop-env.sh配置文件查看java_home配置是否正确,如正确查看全局变量是否按照该文档进行设置。配置之后记得使用source使其立即生效。
2、启动hadoop出现节点找不到的情况。
可能是hadoop读取路径有问题或者core-site.xml配置文件配置有误。
路径问题的话修改hadoop-env.sh文件里的 HADOOP_CONF_DIR,修改为你的hadoop的安装目录。
3、启动成功但是windows链接不到虚机地址,连不上50070端口
虚机防火墙添加一下对外开放的段口,如下命令所示
firewall-cmd --zone=public --add-port=50070/tcp --permanent