学习教程地址:  http://www.shouce.ren/api/view/a/11357

命令手册 https://hadoop.apache.org/docs/r1.0.4/cn/commands_manual.html

HDFS的常用操作–hdfs下的文件操作常用命令总结 http://www.aboutyun.com/blog-4073-518.html

hadoop HDFS常用文件操作命令 https://segmentfault.com/a/1190000002672666

安装

设定IP:

服务器

打通本机到虚拟机的信道:

进入51服务器, 打通虚拟机51到其他服务器的信道

从51服务器拿到ssh配置信息:

全部安装基础工具:

全部关闭防火墙:

禁用IP6:

每个系统追加配置hosts:

配置时钟同步:

重启所有系统,然后测试时钟同步 关于时钟更多信息  http://cn.linux.vbird.org/linux_server/0440ntp.php

 

1:  创建本地库

测试: 访问 http://192.168.0.51/ 能打开,表示成功

本机传文件到hadoop的51服务器, 用来做本地库和ambar-server的服务器

创建见本地库

执行完成后,我们可以看到hdp目录会多一个repodata的新目录。

2: 安装Ambari Server

准备本地库的repo信息, 先在本机创建, 然后在复制到所有hadoop和ambari server服务器

上传必要的文件到51服务器

3: 创建集群

A:  Select Stack 步奏, 选择2.3版本,  Advanced Repository Options选项选择redhat6, 修改两个url为:
http://192.168.0.51/hdp/HDP/centos6/2.x/updates/2.3.0.0
http://192.168.0.51/hdp/HDP-UTILS-1.1.0.20/repos/centos6
同时勾选Skip Repository Base URL validation (Advanced),

然后下一步配置Target Hosts: H2  H3 H4(分三行录入), 并上传在51服务器做打通信道得到的配置文件id_rsa, 然后开始Confirm Hosts.   如果成功confirm的话, 表格的Status是绿色.

B: 注意是否有警告, 下一步

C: 选择带集群的机器, 这一步到底是选择3个服务器还是4个服务器? 应该选择4个.

D: Choose Services 选择:
基础: HDFS, YARN + MapReduce2, ZooKeeper, Ambari Metrics, Spark
hive: Tez, Hlive, Pig

D: 配置集群服务器结构

E: 配置Assign Slaves and Clients, 选择52做NodeManager, 其他服务器选择DataNode,Client

F: Customize Services , 这里提示输入hive密码

G:  最后Deploy部署, 如果没有错误, 安装成功

4: 安装后修改配置:

A: 修改服务器字符编码: 修改为 en_US.UTF_8. 最好所有服务器都修改.

B: 修改几个配置信息
* In Ambari Web, browse to Services > YARN > Configs –>* Filter for the yarn.timeline-service.store-class property and set to org.apache.hadoop.yarn.server.timeline.LeveldbTimelineStore value.  –> * Save the configuration change and restart YARN.
* In Ambari Web, browse to Services > HDFS > Configs –>* Filter for the dfs.permissions property and set to false value.  –> * Save the configuration change and restart YARN.

*  TEZ / Configs / Advanced tez-site –> Locate the configuration ” tez.history.logging.service.class” –> Replace the value “org.apache.tez.dag.history.logging.ats.ATSV15HistoryLoggingService” with the new value: “org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService

C: 重启所有Service.

 

测试:

 

1. 安装eclipse插件.  下载插件让如plugins文件夹, 下载hadoop 2.7版本, 解压到一个路径.   配置eclipse, 到底应该要什么账户: 服务器的root账户?  服务器的hdfs账户, 还是本机登录用户? user name要跟虚拟机里运行hadoop的用户名一致,我是用hadoop身份安装运行hadoop 2.6.0的,所以这里填写hadoop,如果你是用root安装的,相应的改成root.

D:  执行, 要求切换到su hsfs, 可是没存在这个账户. 原文写错, 应该是:su hdfs ;

执行完后, 可以去看执行结果.

E: 查看job执行结果: http://192.168.0.32:19888/jobhistory

 

2. 例子:

打包得到HadoopTest.jar, 上传到31服务器的/var/tmp

3: 测试Hive

4: 使用jdbc方式访问

 

问题:

 

A: 输入hive命令,开始初始化出现错误: SessionNotRunning: TezSession has already shutdown , 解决方式: https://discuss.pivotal.io/hc/en-us/articles/221806047-Hive-Cli-fails-to-start-with-the-message-TezSession-has-already-shutdown-

B: hive无法导入本地数据, 因为报错,先不解决.

C: 把文件放到hdfs里面, 然后在导入到hive(用制表\t符号隔开), 去hive查看表, 都是NULL数据, 何解? 看这里提示: http://jingyan.baidu.com/article/624e7459b705f734e8ba5a1d.html  hive的数据导入与数据导出:http://blog.csdn.net/longshenlmj/article/details/41519503