大数据分析实践课堂笔记
环境准备
开发环境准备
- 创建Maven项目,jdk1.8
- 导入pom.xml依赖
- hadoop-common
- hadoop-client
- hadoop-hdfs
- hadoop-mapreduce-client-core
- 在
https://mvnrepository.com/
找到所需要的包写入pom.xml文件
伪分布式搭建
普通用户创建
- 普通用户赋予sudo权限
关闭、禁用防火墙sudo
```
sudo systemctl stop firewalld
sudo systemctl disable firewalld1
2
3
4
5
6
7
8
9
- ![image-20210914092622730](http://markdowntc.wanqqq29.cn//image-20210914092622730.png)
### 修改hostsname ->/etc/hostname
- ```
sudo vi /etc/hostname
修改hosts文件,添加node1 ->/etc/hosts
```
sudo vi /etc/hosts1
2
3
4
5
6
7
8
- ![image-20210914092858718](http://markdowntc.wanqqq29.cn//image-20210914092858718.png)
### 固定ip
- ```
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
sudo systemctl reboot network
安装jdk
配置用户环境变量
为解决多用户下系统变量冲突问题,现要求配置用户的环境变量
- ```
用户目录下:
vi .bashrc1
2
3
4
5
6
7
8
9
- ![image-20210914093909268](http://markdowntc.wanqqq29.cn//image-20210914093909268.png)
- 生效环境变量
- ```
source .bashrc
- ```
配置免密登录
```
ssh-keygen -t rsa -P “”
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
service sshd restart1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- 私钥 除数-1,公钥 随机的一个数
### 安装hadoop伪分布式
- 解压
- 配置环境变量
- ![image-20210914095737019](http://markdowntc.wanqqq29.cn//image-20210914095737019.png)
- 更改hadoop配置 /etc/hadoop/env.sh、yarn-env.sh -> javahome
- ```
vi hadoop/etc/hadoop/hadoop.env.sh
vi hadoop/etc/hadoop/yarn-env.sh
修改以上文件的JAVA_HOMEhdfs-site.xml
- ```
dfs.namenode.name.dir /home/map/hdfs/namenode dfs.datanode.data.dir /home/map/hdfs/datanode dfs.replication 3 mkdir -p /home/map/hdfs/namenode1
2
3
- 新建目录
mkdir -p /home/map/hdfs/datanode1
2
3
4
5
6
7
8
9
10
11
12
13
- core-site.xml
- ```
<?xml version="1.0"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000/</value>
</property>
</configuration>
- ```
mapred-site.xml
- ```
mv mapred-site.xml.template mapred-site.xml1
2
3
4
5
6
7
8
9
10
- ```
<?xml version="1.0"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- ```
yarn-site.xml
- ```
yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce_shuffle.class org.apache.hadoop.mapred.ShuffleHandler yarn.resourcemanager.hostname node1 1
2
3
4
5
6
7
8
9
10
11
12
13
-
- 格式化
- ```hadoop
hadoop namenode –format
- 启动
- ```
start-all.sh
start-yarn.sh
- ```
验证
遇到问题
免密登录不生效
查看系统安全日志,定位问题
执行 sudo cat /var/log/secure 查看系统的安全日志,然后在安全日志中看到SSH登录过程中提示了如下错误:
找到问题:Authentication refused: bad ownership or modes for directory /home/map
后面的目录代表权限不匹配
解决:
(替换成你log中的目录)执行如下:
1
2
3chmod g-w /home/map
chmod 700 ./.ssh
chmod 600 ~/.ssh/authorized_keys重启SSH服务 $ service sshd restart
mapreduce 开发
python-hadoop参考文档
map部分与sh
- https://www.cnblogs.com/kaituorensheng/p/3826114.html
- https://www.cnblogs.com/wuxie1989/p/5785093.html
- https://www.cnblogs.com/airnew/p/9540982.html
Partitioner
- 2.7.6官方文档
- http://hadoop.apache.org/docs/r1.0.4/cn/streaming.html#%E5%8F%AA%E4%BD%BF%E7%94%A8Mapper%E7%9A%84%E4%BD%9C%E4%B8%9A
- https://blog.csdn.net/whaoXYSH/article/details/25482753
- http://www.cppblog.com/MemoryGarden/archive/2010/01/24/106312.html
- https://www.cnblogs.com/hrhguanli/p/3790985.html
成果
数据清洗
把旧球队名替换为新球队名
分别给东西部球队添加标记;1970年之前的球队统一添加M标记
1 |
|
1 |
|
1 |
|
分类
通过Partitioner分类存放,这次Partitioner只实现了把M根EW分开,EW还是在一个文件夹内
1 |
|
1 |
|
1 |
|
只分类1970年后的
1 |
|
1 |
|
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!