一、java环境搭建

参考博客:http://blog.csdn.net/best3c/article/details/72848540

1、安装JDK

1.1新建一个java文件夹名字叫java7u79

1
mkdir /usr/java7u79

1.2将linux版本的jdk安装包从宿主机复制进客人机(客户机),一般直接可以拖进来,
然后拷贝·进/usr/java7u79目录

1
cp /home/jiang/桌面/jdk-7u79-linux-x64.tar.gz /usr/java7u79

1.3 进入/usr/java7u79目录解压jdk包

1
tar xvf jdk-7u79-linux-x64.tar.gz

1.4 进入配置文件

1
vim ~/.bashrc

"图一"
1.5 配置完后,esc退出编辑模式,:wq保存退出环境配置

1.6检测java环境

1
java –version

"图二"

二、 hadoop环境搭建

本教程使用 Ubuntu 14.04 64位 作为系统环境

  1. 创建hadoop用户

1.1 如果安装ubuntu时没有创建hadoop用户,此时就增加一个hadoop用户。

1
sudo useradd -m hadoop -s /bin/bash

1.2 为hadoop用户设置密码

1
sudo passwd hadoop

1.3 为hadoop用户添加管理员权限,方便部署,避免一些新手关于权限的麻烦

1
sudo adduser hadoop sudo

1.4 shut –h now 关机

2、安装SSH、配置SSH无密码登录
2.1 节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server

1
sudo apt-get install openssh-server

2.2登录本机

1
ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。
2.3登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的 ssh localhost

1
2
3
su 到管理员权限 #避免不必要的权限干扰
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以cat ./id_rsa.pub >> ./authorized_keys # 加入授权,如果提示没有该目录,重新exit一下,步骤重新做一遍

2.4再次ssh localhost就可以不用密码登录

3、hadoop下载安装

Hadoop各版本:http://archive.apache.org/dist/hadoop/core/

3.1 解压hadoop.x.y.tar.gz

我这里解压到/usr下
tar –zxvf hadoop-2.6.0.tar.gz
解压到指定目录时,直接 tar –zxvf hadoop-2.6.0.tar.gz –C /usr

#可以试着修改文件名,我这里先不用修改了
mv ./hadoop-2.6.0 ./hadoop

3.2 切换到hadoop文件目录查看hadoop版本信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
./bin/Hadoop version
```
!["图三"](/images/C.png)
4、hadoop伪分布式配置(配置文件一定仔细仔细)
简介:Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
4.1 修改配置文件 core-site.xml
``` bash
gedit ./etc/hadoop/core-site.xml(通过 gedit 编辑会比较方便,也可以使用vim等)
```
!["图四"](/images/D.png)
!["图五"](/images/E.png)
4.2 Hadoop配置文件说明
Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。
此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。
4.3 配置完成后,执行 NameNode 的格式化
``` bash
./bin/hdfs namenode -format

成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
"图六"

4.4开启NameNode和DataNode守护
./sbin/start-dfs.sh
这个步骤就算JAVA_HOME没有配置错误也可能会找不到JAVA路径
Hadoop安装完后,启动时报Error: JAVA_HOME is not set and could not be found.
解决办法:修改/etc/hadoop/hadoop-env.sh中设JAVA_HOME
路径改为绝对路径
Export JAVA_HOME=${JAVA_HOME}改为Export JAVA_HOME=/usr/java7u79/java1.7.0_79
"图七"

启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
4.5 成功启动
可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
4.6打开或者关闭hadoop
切换到hadoop目录下
./sbin/stop-dfs.sh
./sbin/start-dfs.sh
5、YARN启动(伪分布式不启动 YARN 也可以,一般不会影响程序执行)
5.1 YARN简介
YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性
通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。

5.2 修改配置文件 mapred-site.xml,这边需要先进行重命名

1
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml

5.3 然后再进行编辑 vim ./etc/hadoop/mapred-site.xml
"图八"
5.4修改配置文件 yarn-site.xml
"图九"
5.5启动YARN(启动之前先启动hadoop)

1
2
./sbin/start-yarn.sh # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver # 开启历史服务器,才能在Web中查看任务运行情况

5.6 ps查看,可以看到多了 NodeManager 和 ResourceManager 两个后台进程,如下图所示。
"图十"
5.7 YARN启动和关闭(单机若无需要不建议开启YARN,使用反而会使程序变慢)
![“图十一”](/images/K.png
./sbin/mr-jobhistory-daemon.sh stop historyserver
stopping historyserver
```
5.8 hadoop目录下/etc/hadoop slaves文件配置
localhost
5.9 /etc/hosts文件配置
127.0.0.1 localhost
本机ip hadoop-master
本机ip ubuntu

博客初心:

此次归纳大多结合java核心技术卷一,总结知识要点,最主要的是通过博客的方式让自己知识记得更加牢固。

一. 基础篇

1.编译方式

1.1 DOS编译:

(1)在某文件中创建记事本
(2)打开记事本编写java代码,使用 类.java 作为文件名保存
(3)进入DOS,切换路径到文件路径
(4)

1
2
javac 类.java
java 类

1.2 eclipse和idea编译

现在最主流的java编译工具:eclipse和idea,前者适用范围广,后者方便功能强大,各有优点

常用eclipse快捷键:
(1)alt + / :自动提示代码
(2)ctrl + o:查询特定的类和方法
(3)ctrl + shift + r :打开工作空间所有的.java文件,输入对应的回车进入
(4)ctrl + e :打开正在编辑栏的 .java文件
(5)ctrl + pageup/pagedown : java编辑栏.java文件之间的切换
(6)ctrl + d : 删除当前行
(7)ctrl + shift + enter : 保持光标不变,在当前行下创建空白行
(8)alt + 上下方向键 : 移动选中代码块,默认光标一行
(9)ctrl + m :当前编辑页面最大化,最小化之间的切换
(10)ctrl + / :注释一行或多行代码
(11)ctrl + shift + /:注释多行代码/ /方式
+\ :取消注释
(12)ctrl + shift + x | Y :英文字母大小写转化
(13)ctrl + shift + o : 导入代码中需要的包
(14)ctrl + shift + f: 格式化当前代码

2.字符,字符串

java字符串就是unicode字符序列

2.1 子串的提取(SubString)

1
2
字符串.SubString(下标1,下标2);
#下标1代表从哪开始提取,下标2代表不提取的第一个位置

例如:
String a = “hello”;
b = a.SubString(0,3);

#b输出hel,属于下标0,1,2

2.2 字符串拼接(join)

注 : 字符串与字符串拼接用”+”;与非字符串自动拼接,此时非字符串自动转化为字符串
特地的:

1
2
3
#自定义拼接方式
String all = String.join("/","s","M","L");
#"/"可以自己定义拼接方式,此时all输出s/M/L

2.3 字符串是否相等(euqals())

默认的equals()方法区分大小写,使用equalsIgnoreCase()不区分
注:equals()区别于”==”,equals()只是比较数值,而”==”比较引用对象的位置和数值

2.4 空串和null串

空串是java对象,串长度为0内容为空,例如:String a = “”;
null串,表示没有任何对象与该变量关联,常常做为对象初始化,例如: String b = null;

2.5 构建字符串(StringBuilder)

#建立一个空构造器
StringBuilder a = new StringBuilder();

#添加内容
a.append();

#构建字符串,b为新的字符串
String b = a.toString();

2.6 输入与输出

import引入java包的原因:使用的类不是定义在基本java.lang包

Dos中完成密码不可见输入(eclipse中不适用,会报错):
Console cons = System.console();
String Username = cons.readLine();
char[] Passwd = cons.readPassword();

#为了安全起见,返回的密码存放在一维数组中

一. 准备相关工具

1.注册一个github账号 (用户名关系到仓库名和网址);
github注册
2.安装node.js;
3.安装git(git终端执行命令行方便快捷);

二. 创建github仓库

仓库格式为 (用户名.github.io),比如说你的用户名为:zhangsan,那么仓库名为:zhangsan.github.io,将来的网站地址: https://zhangsan.github.io ,刚刚创建的仓库有默认的实例页面,以后你的网站所有代码都是放在这个库仓里了。

注:
A. 注册的邮箱一定要验证,否则不会成功;
B. 仓库创建成功不会立即生效,需要过一段时间;
C. 每一个github账户最多只能创建一个这样可以直接使用域名访问的仓库。

三. 绑定域名

域名绑定增加博客格调,可以现在绑定,也可以搭建好博客后绑定,或者使用默认的(用户名.github.io)访问是一样的。绑定域名国内的阿里云挺不错了,价格也不贵第一年基本便宜,续费贵点,如果博客使用很长时间,那么多买几年划算。这块我就不多说了,详细参考域名绑定吧。

这篇域名绑定不错:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
网址:http://www.jianshu.com/p/cea41e5c9b2a?open_source=weibo_search
注:现在的域名要实名认证,通过大概要两周时间。
四. 配置SSH KEY
配置SSH密钥,原因在于提交代码肯定要拥有github权限才行,直接使用用户名和密码不安全,因此我们使用SSH KEY来解决本地和服务器的连接问题。
温馨提示: 所有命令操作都是在git终端(安装了git,鼠标右键,git bash here)进行,切换到hexo目录下
``` bash
$ cd ~/. ssh #检查本机已存在的ssh密钥
提示:No such file or directory 说明你是第一次使用git。
$ ssh-keygen -t rsa -C "邮件地址"
然后连续3次回车,最终会生成一个文件在用户目录下,打开用户目录,找到.ssh\id_rsa.pub文件,
记事本打开并复制里面的内容,打开你的github主页,进入个人设置 -> SSH and GPG keys -> New SSH key:
将刚复制的内容粘贴到key那里,title随便填,保存。
在git终端测试:
$ ssh -T git@github.com # 注意邮箱地址不用改
提示: Are you sure you want to continue connecting (yes/no)?,输入yes。
SSH KEY配置成功会看到:
Hi zhangsan! You've successfully authenticated, but GitHub does not provide shell access.
继续在终端输入:
$ git config --global user.name "zhangsan"// 你的github用户名,非昵称
$ git config --global user.email "xxx@qq.com"// 填写你的github注册邮箱
配置完成。

五. 配置与使用hexo
到这了,说明你已经翻越了很多高山和跳过隐藏大坑了,继续加油吧!点击ReadMore

Read More